rsync复制已更改的文件


42

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

我的命令如下

# rsync --update -raz --progress /var/lib/mysql/mysql-bin.*  /dbdata/binarylog/

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

Answers:


51

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

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

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

因此:

rsync -uanv /var/lib/mysql/mysql-bin.*  /dbdata/binarylog/

当您满意地在空运行中正确列出文件后,请删除nv

rsync -ua --progress /var/lib/mysql/mysql-bin.*  /dbdata/binarylog/

3
正如其在手册页中所说的那样,该--dry-run标志最常与该--verbose标志结合使用
本杰明·莱恩韦伯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.