我正在尝试在执行 rsync 后创建日志文本文件。我尝试使用命令行:
rsync -av /source/ /dest/ > log.txt
创建的文本文件仅显示源文件夹和目标文件夹之间“不同”的文件名,这与我想要的很接近。
有没有办法创建一个日志文件,将“不同”的文件分组到已修改和创建的文件中?
答案1
使用该--log-file
选项。man rsync
详情请参阅。示例用法:
rsync -av /source/ /dest/ --log-file=mylog.log
请注意连续运行将附加到日志文件,而不是覆盖它。此外,rsync 日志两个都stderr 和 stdout 类型的信息输出到指定的日志文件。
答案2
主要思想
对于任意现代的 rsync
可以使用--info
代替-v
,例如:
rsync --info=COPY2,DEL2,NAME2,BACKUP2,REMOVE2,SKIP2 -a source/ dest/ > log.txt
# or eventually with --log-file=mylog.txt
一些额外的操作
生成的输出/文件将类似于
file1.zip is uptodate
file2.odt
Dir1/
Dir1/file3.txt
然后您可以使用grep
过滤结果,例如使用类似
grep 'is uptodate' mylog.txt | sed 's/is uptodate//g' > Already_Uptodate.txt
grep -v 'is uptodate' mylog.txt > Updated_Now.txt
在第一行中,我用 sed 删除了字符串“is uptodate”,以便获得更干净的输出。如果您有一个名为“已是最新'当然:-)必须以不同的方式处理......
多说几句
您可以选择信息和信息级别您希望每个选项
在一个现代的
rsync
,该-v
选项相当于--info和--debug选项组的设置。您可以选择使用这些较新的选项 除了,或者代替使用
--verbose
,作为任何细粒度的设置覆盖的隐含设置-v
。和
--info
都有--debug
一种寻求帮助的方法,可以准确地告诉您每次增加详细程度时设置了哪些标志。
rsync --info=help
下面报告了获得的列表,而rsync --debug=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(客户端-服务器)不够用现代的您必须付出更多v
努力。实际上,您可以使用-vv
,-vvv
,-vvvv
每次增加详细程度,但解析将更加复杂。
仅当您正在调试 rsync 时才应使用两个以上的 -v 选项
真正有用的讲座可能man rsync
在讨论选项的部分-v
,尤其是--info=FLAGS
。