rsync:轮询新文件
我有:
<代码> $ rsync -azv zope@myserver:/smb/Data/*/*/* ~/rsynced_samples/
我希望它永远运行,一旦任何新文件出现在我的服务器上就同步它:(
指定轮询间隔,例如 4 秒是一个不错的组合)
I've got:
$ rsync -azv zope@myserver:/smb/Data/*/*/* ~/rsynced_samples/
And I want it to run forever, syncing any new file as soon as it appears on myserver:
(specifying a poll interval, such as 4 seconds would be an ok comprise)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用 inotifywait 来代替 rsync,它使用内核特定的文件更改触发器。
这个脚本(inotify.sh)可以给你一个想法:
你可以调用这个脚本指定“monitor”目录,这样
$line 变量就包含了完整的文件路径。
如果您想限制为仅新创建的文件,您可以在标志“-e create”上使用
Instead of rsync you can use inotifywait which use kernel specific file changes triggers.
This script (inotify.sh) can you give an idea:
You can invoke this script specifying the "monitor" directory, in this way
The $line variable contains the full file path.
If you want to limit to only newly created files you can use on the flag "-e create"
使用 cron 根据您的时间间隔设置检查(例如,也许每分钟?)。此链接应该有所帮助: http://www.cyberciti.biz/faq/how-do-i-add-jobs-to-cron-under-linux-or-unix-oses/
请注意,设置了 cron 选项卡在你的机器端,而不是在你的 bash 脚本中
也有用: http://benr75.com/pages/using_crontab_mac_os_x_unix_linux
这里是一个代码示例:
1) crontab -e // 这会打开当前的 crontab,如果不存在则创建一个
2)输入:*** * * * file.sh>> log.txt // 这会将文件的输出通过管道传输到日志文件并每分钟运行一次。
希望有帮助
Use cron to set up a check based on your time interval (say, every minute, perhaps?) . This link should help: http://www.cyberciti.biz/faq/how-do-i-add-jobs-to-cron-under-linux-or-unix-oses/
Note that a cron tab is set up on your machine side, not in your bash script
also useful: http://benr75.com/pages/using_crontab_mac_os_x_unix_linux
and here is a code example:
1) crontab -e // this opens up your current crontab or creates one if it does not exist
2) enter: * * * * * file.sh >> log.txt // this would pipe the output of your file to a log file and run it every minute.
hope that helps