我处于红帽环境中。 当文件在文件夹F中可用时,我需要将文件从服务器A移动到服务器B.
这对所使用的方法没有任何限制。是否可以在python或任何其他脚本中触发此事件?
它可以作为守护进程运行,但我不知道该怎么做。
有任何建议吗?
答案 0 :(得分:2)
答案 1 :(得分:1)
如果您的文件夹F
位于计算机A
上,请使用inotify进行监视,然后将其复制。你不需要python。这是一个贝壳衬里为你做的。
if [ $(inotifywait -e create . --format %f) = "your_special_file" ]
then
# Run command to copy your special file
fi
你可以坚持使用while循环来永远运行守护进程风格。
inotifywait是inotify-tools套件的一部分,它可以在Debian中使用,也可能在RedHat中使用。
答案 2 :(得分:0)
您有两种选择:
在您的脚本中,您可以拥有一个休眠几秒钟(甚至5分钟)的循环,然后检查该文件是否存在。这称为“忙等待”,但由于您让进程在检查之间休眠,计算机将不会注意到。
您可以使用像inotify(Python module)这样的系统服务将脚本置于睡眠状态,除非文件更改/已创建。
后一种方法使用的资源较少,但要复杂得多。
答案 3 :(得分:0)
Linux的inotify系统旨在帮助完成这样的任务。一个适合您需求的工具,即使它有点旧,也是fsniper
。你可以阅读它并从这里下载:
http://files.minuslab.net/doc.html
值得一提的是正确测试此工具,以及您可能想要尝试的其他方式,以便它不会复制不完整的文件。我在过去遇到过这方面的问题,例如当目的是从临时FTP服务器复制文件时,如果没有适当的检查,则经常发生文件被复制到其上传的中途。只是想提到它,因为它经常被忽视,而且它与腐败的文件混淆。 :P
答案 4 :(得分:-1)
这是cron的工作。 Cron man,man cron!