rsync 复制已更改的文件

Zam*_*ues 42 rsync file-copy

我需要每天将某些文件从特定目录复制到不同位置。我只想复制更改,因此计划使用rsync. 这些文件遵循以下命名约定mysql-bin.*

我的命令如下

# rsync --update -raz --progress /var/lib/mysql/mysql-bin.*  /dbdata/binarylog/
Run Code Online (Sandbox Code Playgroud)

我的困惑是因为我打算只从目录中复制几个文件而不是完整的目录内容,所以我曾经* 只复制所需的文件。只是想知道我的命令是否正确实现相同。

gar*_*Red 51

看起来没问题。尽管您为什么使用该-z选项来压缩传输?当您通过慢速网络复制到远程 rsync 服务器时,通常会使用此选项。在这种情况下,它将压缩并立即解压缩文件,这只会增加您的 CPU 使用率而没有任何好处。

-a(存档)选项隐含-r(递归)选项,所以没有必要明确指定命令行上。

您可以使用-n选项(或--dry-run)来检查您的命令。它将显示无需实际复制任何文件即可执行的操作。要实际查看会发生什么,您还应该使用-v选项(或--verbose)。

所以:

rsync -uanv /var/lib/mysql/mysql-bin.*  /dbdata/binarylog/
Run Code Online (Sandbox Code Playgroud)

一旦您对文件在试运行中正确列出感到满意,请删除nv

rsync -ua --progress /var/lib/mysql/mysql-bin.*  /dbdata/binarylog/
Run Code Online (Sandbox Code Playgroud)

  • 正如手册页中所说,`--dry-run` 标志最常与`--verbose` 标志结合使用 (3认同)