我需要每天将一些文件从特定目录复制到不同的位置。我只想复制更改,因此计划使用rsync
.这些文件遵循以下命名约定mysql-bin.*
我的命令如下所示
# rsync --update -raz --progress /var/lib/mysql/mysql-bin.* /dbdata/binarylog/
我的困惑是,因为我计划仅从目录中复制几个文件而不是完整的目录内容,所以我过去*
只复制所需的文件。只是想知道我的命令是否正确以实现相同的目的。
答案1
看起来还不错。尽管为什么要使用-z
压缩传输的选项?当您通过慢速网络复制到远程 rsync 服务器时,通常使用此选项。在这种情况下,它会压缩并立即解压缩文件,这只会增加您的 CPU 使用率,而没有任何好处。
-a
(archive) 选项意味着( -r
recursive) 选项,因此无需在命令行上显式指定。
您可以使用-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/