-v
例1. rsync内置了 --log-file选项,它会将详细的传输信息发送到日志文件中,同时也会将输出发送到您的终端。
--log-file
$ rsync -avUXX --log-file=rsync同步日志.log /src /dst
之后,检查日志文件以查看有关传输了哪些文件的信息。日志文件中也会显示详细的输出,因此您可以查看文件的修改时间、权限等是否发生了更改。
$ cat rsync同步日志.log sending incremental file list src/test1.txt src/test2.txt sent 241 bytes received 55 bytes 592.00 bytes/sec total size is 22 speedup is 0.07 2023/11/22 22:19:00 [1655] building file list 2023/11/22 22:19:00 [1655] cd+++++++++ src/ 2023/11/22 22:19:00 [1655] >f+++++++++ src/test1.txt 2023/11/22 22:19:00 [1655] >f+++++++++ src/test2.txt 2023/11/22 22:19:00 [1655] sent 244 bytes received 58 bytes 604.00 bytes/sec 2023/11/22 22:19:00 [1655] total size is 22 speedup is 0.07
实施例2. 如果你不想使用rsync的 --log-file参数,你可以不使用它。记录rsync输出的最基本方法是使用 >操作符重定向标准输出。这是你的命令看起来像什么。
>
$ rsync --progress -avUXX /src /dst > rsync同步日志.log
然后,您可以检查日志文件以查看有关rsync传输的详细信息。
$ cat rsync同步日志.log sending incremental file list src/ src/test1.txt src/test2.txtsent 241 bytes received 55 bytes 592.00 bytes/sec total size is 22 speedup is 0.07
这里有一个潜在的问题,那就是错误消息(stderr)仍然会显示在终端中,而不是日志文件中。下一个例子解决了这个问题。
实施例3. 要将rsync输出以及错误消息重定向到日志文件,请使用以下命令语法。
$ rsync --progress -avUXX /src /dst > rsync同步日志.log 2>&1
实施例4. 也可以将输出同时发送到终端和日志文件。为此,我们可以使用如下所示的 tee命令。
tee
$ rsync --progress -avUXX /src /dst | tee rsync同步日志.log 2>&1
使用这个命令意味着rsync的标准输出(stdout)和标准错误(stderr)将同时发送到我们的终端和日志文件。
**实施例5.**如果传输期间错误,需要排查哪些文件没有传输,且源或目的地都没有改变,一个选项是使用rsync开关再次运行 -n试运行,看看在不复制数据的情况下会传输什么。添加 -q将抑制常规输出,禁止显示非错误消息,仅显示无法传输的文件。
-n
-q
rsync --progress -avUXXqn /src /dst
只把错误消息输出到日记,请参考上面的例子加 qn参数即可
qn
--progress
-vv
-vvv
-U
-XX
使用rsync同步的时候出现无法同步的问题:首先在服务端:配置/etc/rsyncd.conf 设置 Charset = UTF-8 ;中文识别,配合命令$rsync -avz --iconv=utf-8,GBK
Charset = UTF-8
接着在在客户机中运行加上iconv参数 \
$rsync -avz --delete --iconv=UTF-8,GBK [email protected]:/data/test /data/test/
+++++++++ 主要原因是因为Windows和Linux端文件名编码不同导致的!
rsync在3.0版本之后,提供了一个选项,可以进行文件编码的转换,格式如下: --iconv=, local指本地编码,remote指远程机器编码,参考示例如下:
从Linux sersync推到Windows时: Linux端sersync confxml.xml配置 Windows端rsyncd.conf配置文件中添加charset = UTF-8
charset = UTF-8
Windows端从Linux端拉过来时: Windows端cwRsync要有--iconv=UTF-8,GBK选项 Linux端rsyncd.conf要添加charset = GBK
--iconv=UTF-8,GBK
charset = GBK
遇到问题:从Linux推到Windows端时,中英文的文件都正常,但是如果在Linux端删掉文件,Windows端的中文文件不会被删除!
如果出现同步错误,切提示里面有乱码,deepin下 可以加入 --iconv=GBK,UTF-8 就可以定位到错误文件的正常路径显示
--iconv=GBK,UTF-8
rsync --progress -avUXX --iconv=GBK,UTF-8 /src /dst > rsync同步日志.log 2>&1
建议添加到 wiki
很好的教程
Popular Ranking
Popular Events
-v
(verbose)选项时,您将在终端中看到相关的输出。但是,如果您需要保存这个输出,或者是因为您想以后引用它,或者您需要检查无人值守的rsync传输,该怎么办呢?在本指南中,我们将看到如何在Linux上记录rsync传输。日志rsync输出
例1. rsync内置了
--log-file
选项,它会将详细的传输信息发送到日志文件中,同时也会将输出发送到您的终端。之后,检查日志文件以查看有关传输了哪些文件的信息。日志文件中也会显示详细的输出,因此您可以查看文件的修改时间、权限等是否发生了更改。
实施例2. 如果你不想使用rsync的
--log-file
参数,你可以不使用它。记录rsync输出的最基本方法是使用>
操作符重定向标准输出。这是你的命令看起来像什么。然后,您可以检查日志文件以查看有关rsync传输的详细信息。
这里有一个潜在的问题,那就是错误消息(stderr)仍然会显示在终端中,而不是日志文件中。下一个例子解决了这个问题。
实施例3. 要将rsync输出以及错误消息重定向到日志文件,请使用以下命令语法。
实施例4. 也可以将输出同时发送到终端和日志文件。为此,我们可以使用如下所示的
tee
命令。使用这个命令意味着rsync的标准输出(stdout)和标准错误(stderr)将同时发送到我们的终端和日志文件。
**实施例5.**如果传输期间错误,需要排查哪些文件没有传输,且源或目的地都没有改变,一个选项是使用rsync开关再次运行
-n
试运行,看看在不复制数据的情况下会传输什么。添加-q
将抑制常规输出,禁止显示非错误消息,仅显示无法传输的文件。rsync --progress -avUXXqn /src /dst
只把错误消息输出到日记,请参考上面的例子加
qn
参数即可参数简介:
--progress
在传输过程中显示传输进度-v
参数表示输出细节。-vv
表示输出更详细的信息,-vvv
表示输出最详细的信息。-U
这告诉rsync将目标文件的访问(使用)时间设置为 与源文件相同的值。-XX
此选项使rsync更新目标扩展属性, 与源代码相同。 请注意,-X选项不会复制rsync的特殊xattr值(例如: --fake-super使用的那些),除非您重复该选项(例如-XX)。 此“复制所有xattrs”模式不能与--fake-super一起使用。-q
禁止显示非错误消息,此选项可减少在传输过程中提供的信息量,特别是禁止来自远程服务器的信息消息。从 cron 调用 rsync 时,此选项很有用。-n
在不进行任何更改的情况下执行试运行,这使得 rsync 执行不进行任何更改的试运行(并产生与实际运行大致相同的输出)。它最常与 -v、--verbose 和/或 -i、--parameterize-changes 选项结合使用,以查看 rsync 命令在实际运行之前将要做什么。Windows和Linux端rsync推拉同步时中文乱码解决方法
使用rsync同步的时候出现无法同步的问题:首先在服务端:配置/etc/rsyncd.conf 设置
Charset = UTF-8
;中文识别,配合命令$rsync -avz --iconv=utf-8,GBK接着在在客户机中运行加上iconv参数
\
+++++++++
主要原因是因为Windows和Linux端文件名编码不同导致的!
rsync在3.0版本之后,提供了一个选项,可以进行文件编码的转换,格式如下:
--iconv=,
local指本地编码,remote指远程机器编码,参考示例如下:
从Linux sersync推到Windows时:
Linux端sersync confxml.xml配置
Windows端rsyncd.conf配置文件中添加
charset = UTF-8
Windows端从Linux端拉过来时:
Windows端cwRsync要有
--iconv=UTF-8,GBK
选项Linux端rsyncd.conf要添加
charset = GBK
遇到问题:从Linux推到Windows端时,中英文的文件都正常,但是如果在Linux端删掉文件,Windows端的中文文件不会被删除!
如果出现同步错误,切提示里面有乱码,deepin下 可以加入
--iconv=GBK,UTF-8
就可以定位到错误文件的正常路径显示