Я должен создать сценарий, который выполняет периодически (каждые 5 секунд) rsync между двумя каталогами.
Одно требование - то, что я должен записать, с меткой времени, скопированными файлами в файл журнала, но я не могу найти способ получить результат rsync
скопированные файлы. Существует ли способ знать, какие файлы были скопированы?
Можно использовать -v
опция (--verbose
) rsync
для получения, какие файлы копируются.
Для получения конкретным вывод, rsync
имеет --info
опция.
, Например, для получения только файлов, которые, как предполагалось, были скопированы, successful/unseccessful оба показанные:
rsync --info=name /source /destination
Для получения только статистики передачи:
rsync --info=stat /source /destination
можно использовать верхний регистр в значении опции также (например, --info=NAME
) и добавить 2
после значения опции для увеличения многословия, если возможный (например, --info=NAME2
).
существует много других возможностей также, проверяет man rsync
и особенно rsync --info=help
:
% rsync --info=help
Use OPT or OPT1 for level 1 output, OPT2 for level 2, etc.; OPT0 silences.
BACKUP Mention files backed up
COPY Mention files copied locally on the receiving side
DEL Mention deletions on the receiving side
FLIST Mention file-list receiving/sending (levels 1-2)
MISC Mention miscellaneous information (levels 1-2)
MOUNT Mention mounts that were found or skipped
NAME Mention 1) updated file/dir names, 2) unchanged names
PROGRESS Mention 1) per-file progress or 2) total transfer progress
REMOVE Mention files removed on the sending side
SKIP Mention files that are skipped due to options used
STATS Mention statistics at end of run (levels 1-3)
SYMSAFE Mention symlinks that are unsafe
ALL Set all --info options (e.g. all4)
NONE Silence all --info options (same as all0)
HELP Output this help message
Options added for each increase in verbose level:
1) COPY,DEL,FLIST,MISC,NAME,STATS,SYMSAFE
2) BACKUP,MISC2,MOUNT,NAME2,REMOVE,SKIP
<час> Пример:
% rsync --info=name test.txt foobar:/spamegg/
test.txt
% rsync --info=stats test.txt foobar:/spamegg/
sent 86 bytes received 41 bytes 254.00 bytes/sec
total size is 10 speedup is 0.08
Используйте эти -v
флаг, в дополнение к тому, в чем других флагах Вы нуждаетесь.
От man rsync
:
-v, - подробный
Эта опция увеличивает объем информации, который Вам дают во время передачи. По умолчанию rsync работает тихо. Сингл -v даст Вам информацию о том, какие файлы передаются и краткий обзор в конце. Два -v опции дадут Вам информацию о том, какие файлы пропускаются и немного больше информации в конце....
В случае, если кому-то когда-либо нужен он... После многих тестов я иду для чего-то как:
#!/bin/bash
rm out.log
touch out.log
while :
do
rsync --log-file=out.log -a /tmp/test /tmp/backup
counter=`wc -l < out.log`
echo $counter
rm out.log
if [[ $counter -gt 2 ]]; then
rsync --log-file=out.log -a /tmp/test /tmp/backup
fi
sleep 5
done