2

Я использую rsync (cygwin) для передачи файлов между сервером и моим ПК.

Rsync запускается каждые 2 минуты, и иногда есть файлы для передачи, иногда нет. Мне нужно выполнить некоторые действия, но только если файлы были перенесены с сервера на ПК.

Как я знаю, были ли файлы переданы или нет?

PS Я пытался использовать коды выхода rsync, но он возвращает 0 как при передаче файлов, так и когда их нет.

3 ответа3

5
rsync -rtv <source> <dest> | wc -l

Если результат больше 4, то что-то изменилось

3

Я использую опцию

 rsync ....  --log-file=/path/to/log/file

Это добавляет к лог-файлу, так что вы можете узнать, было ли вообще что-либо перенесено, и, если да, что именно, даже намного позже, чем когда произошло резервное копирование.

1

rsync --stats

Вы можете использовать опцию --stats или --info=stats2 конце концов фильтруя с помощью grep.

  rsync -avr ORIG DEST  --stats | grep "Number of created files"

Количество созданных файлов: 14


Из руководства rsync вы можете прочитать

--stats
Это говорит rsync напечатать подробный набор статистических данных о передаче файлов, что позволяет вам сказать, насколько эффективен алгоритм rsync для дельта-передачи ваших данных. Эта опция эквивалентна --info = stats2, если объединяется с параметрами 0 или 1 -v, или --info = stats3, если объединяется с параметрами 2 или более -v.

Дальнейшие заметки:
Я предлагаю вам использовать логфайл , как предложено по MariusMatutiae в случае , если вы будете иметь любопытство , чтобы увидеть , какие файлы были переданы.
Для фильтра grep вы можете выбрать каждую интересующую вас строку:

  • Пример вывода с некоторым переданным файлом:

    Количество файлов: 15 (рег: 14, каталог: 1)
    Количество созданных файлов: 14 (рег: 14)
    Количество удаленных файлов: 0
    Количество обычных переданных файлов: 14
    Общий размер файла: 280 860 байт
    Общий размер переданного файла: 280 860 байт.
    Литеральные данные: 280 860 байт.
    Совпадающие данные: 0 байт
    Размер списка файлов: 0
    Время создания списка файлов: 0,001 секунды.
    Время передачи списка файлов: 0,000 секунд
    Всего отправлено байт: 281 842
    Всего байт получено: 285

  • Та же команда без переданного файла:

    Количество файлов: 15 (рег: 14, каталог: 1)
    Количество созданных файлов: 0
    Количество удаленных файлов: 0
    Количество обычных переданных файлов: 0
    Общий размер файла: 280 860 байт
    Общий размер переданного файла: 0 байт
    Литеральные данные: 0 байтов
    Совпадающие данные: 0 байт
    Размер списка файлов: 0
    Время создания списка файлов: 0,001 секунды.
    Время передачи списка файлов: 0,000 секунд
    Всего отправлено байт: 357
    Всего байт получено: 12

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .