rsync:轮询新文件

时间:2010-08-24 21:50:37

标签: background daemon rsync polling

我有:

$ rsync -azv zope@myserver:/smb/Data/*/*/* ~/rsynced_samples/

我希望它永远运行,在myserver上显示时立即同步任何新文件:

(指定一个轮询间隔,例如4秒就可以了)

2 个答案:

答案 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 //这会将文件的输出传输到日志文件并每分钟运行一次。

希望有所帮助