Linux 命令行为 rsync 创建日志文件

Linux 命令行为 rsync 创建日志文件

我正在尝试在执行 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

相关内容