gpt4 book ai didi

linux - Bash 脚本 : Check if shared file is open on another server

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:39:05 26 4
gpt4 key购买 nike

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

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

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

最佳答案

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

ssh user@host lsof | grep filename
if [ $? -eq 0 ]
then
docommand
else
dontdoit
fi

关于linux - Bash 脚本 : Check if shared file is open on another server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10215588/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com