我有:
$ rsync -azv zope@myserver:/smb/Data/*/*/* ~/rsynced_samples/
我希望它永远运行,在myserver上显示时立即同步任何新文件:
(指定一个轮询间隔,例如4秒就可以了)
答案 0 :(得分:2)
您可以使用inotifywait而不是rsync,它使用特定于内核的文件更改触发器。
这个脚本(inotify.sh)可以给出一个想法:
#!/bin/bash
directory=$1
inotifywait -q -m --format '%f' -e modify -e move -e create -e delete ${directory} | while read line
do
echo "doing something with: $line";
# for example:
# cp $line to <somewhere>
您可以通过这种方式调用此脚本指定“monitor”目录
./inotify.sh ~/Desktop/
$ line 变量包含完整的文件路径。
如果您想仅限制新创建的文件,可以在“ -e create ”标志上使用
答案 1 :(得分:0)
使用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&gt;&gt; log.txt //这会将文件的输出传输到日志文件并每分钟运行一次。
希望有所帮助