rsync: опрос новых файлов - PullRequest
       18

rsync: опрос новых файлов

1 голос
/ 25 августа 2010

У меня есть:

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

И я хочу, чтобы он работал вечно, синхронизируя любой новый файл, как только он появляется на моем сервере:

(указав интервал опроса, например, 4 секунды, все в порядке)

Ответы [ 2 ]

2 голосов
/ 25 августа 2010

Вместо rsync вы можете использовать inotifywait, который использует специфичные для ядра триггеры изменения файлов.

Этот скрипт (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 "

0 голосов
/ 02 октября 2012

Используйте 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 // это перенаправит вывод вашего файла в файл журнала и запускает его каждую минуту.

надеюсь, что это поможет

...