linux - 两台 linux 服务器访问同一个驱动器。文件可见性问题
问题描述
我在两台 linux 服务器上安装了 NAS 驱动器。文件是 ftp 到这个驱动器。我在这两个处理这些文件的服务器上有 shell 脚本。
在处理文件之前,我创建了一个锁定文件夹,以便两个服务器都不会选择相同的文件。文件处理完成后,我删除锁定文件夹。哪个服务器能够创建一个锁定文件夹来执行该过程,而其他服务器只是跳过该文件。
#!/bin/bash
for entry in /abc/commondrive
do
file_name=$(basename $entry)
if [ -f "$entry" ] && mkdir /abc/lock_folder/file_name
then
#process file and move to another directory.
#remove /abc/lock_folder/file_name
fi
done
处理完文件后,第一台服务器会将文件移动到另一个目录(/abc/output)。这里的问题是这个文件对其他服务器仍然可见。if [-f "$entry"]
给出“真”但实际上文件已移动。除非其他服务器执行“mv”,否则它不会抱怨文件在当前目录中不可用。这主要发生在小尺寸文件上。
有什么解决方案来处理这个延迟问题?
解决方案
推荐阅读
- powershell - 如何查找使用 Google 搜索图像的总页数?
- android - 使用 Hilt 时出现 UninitializedPropertyAccessException
- java - Spring security:激活 csrf 保护会破坏其他功能
- reactjs - 如何将富文本编辑器数据保存到 DRF - postgresql 数据库并在 React 中显示
- javascript - React Router 5+ HashRouter 处理浏览器后退按钮
- python - Python中的CountIfs
- python - 如何更改班级助手中按钮的颜色?基维,Python
- angular - tsconfig 中使用 TypeScript 路径映射的短导入
- android - 如何不每次都创建一个新对象?
- r - 在 R Shiny 应用程序中下载 ggplot2 和 plotly 对象