首页 > 解决方案 > 两台 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”,否则它不会抱怨文件在当前目录中不可用。这主要发生在小尺寸文件上。
有什么解决方案来处理这个延迟问题?

标签: linuxbashshellsyntaxscripting

解决方案


推荐阅读