1

所以我有 3 个服务器,s1、s2 和 d1,其中 d1 是一个 samba 服务器。我的过程是在 s1 上运行的脚本生成文件并将它们复制到 d1,s2 然后从 d1 中提取这些文件并在它们上运行一些进程。

我的问题是,在 s2 上,我需要确保 s1 已将文件完全写入 d1,然后再将其拾取。这些有时是大文件,因此根据我在 s2 上的 crontab 设置,当 s2 准备好接收文件时,s1 仍在尝试复制文件的位置可能会重叠。

我的第一个倾向是使用 lsof ,但这只会告诉我运行命令的服务器正在使用哪些文件,而不是另一个服务器是否正在使用该文件。关于如何编写此文件检查脚本的任何想法?

4

1 回答 1

0

如果您在远程计算机和用户的 authorized_keys 文件中有本地计算机和用户的公钥,您可以通过 ssh 和 grep 运行 lsof 作为文件名

ssh user@host lsof | grep filename
if [ $? -eq 0 ]
    then
        docommand
    else
        dontdoit
fi
于 2012-04-18T18:55:33.480 回答