综合使用(用于定时任务同步文件)
SERVERS="test2 test4"
echo -n "$SERVERS" | parallel -d ' ' --jobs 5 --timeout 60 --joblog /var/log/parallel/parallel.job 'echo {} $(date "+\%Y\%m\%d \%H:\%M:\%S");rsync -Cauvz /root/test_send/123.txt {}:/root/test_recv/' >> /var/log/rsync/rsync.log 2>&1;ERROR=$(awk '{ if (NR > 1 && $7 !=0) {print $10}}' /var/log/parallel/parallel.job | xargs -I {} echo -n _{})rsync 命令
1.常用参数:
-C 或 --checksum:在传输文件之前,计算源文件和目标文件的校验和(checksum),如果它们不相同,则进行传输。这个选项可以确保数据的完整性,但会增加一些计算开销。
-a 或 --archive:归档模式,等同于 -rlptgoD。它保留了原始文件的权限、时间戳、软硬链接、用户组信息等。
-u 或 --update:仅当源文件比目标文件新或者目标文件不存在时,才进行更新。
-v 或 --verbose:详细模式,显示更多的信息,包括正在传输的文件列表。
-z 或 --compress:在传输过程中压缩数据,以减少传输的数据量,这在传输大量数据或通过慢速网络连接传输时很有用。
-r 或 --recursive:递归地复制文件。当你需要同步整个目录(包括子目录中的所有文件)时,这个选项非常有用。
-t 或 --perms:保留文件的权限。这个选项会尝试在目标位置复制源文件的权限。
-l 或 --links:保留软链接。如果你在同步时遇到了软链接,这个选项会复制链接本身而不是链接指向的文件。-v: 写日志必用,方便知道同步成功与否
2.常用组合:
rsync -Cauvz (以归档模式传输文件,保留文件属性;仅更新目标位置中不存在或较旧的文件;在传输前后计算校验和以确保数据完整性;显示详细的传输信息;在传输过程中压缩数据)
rsync -rtluv (递归地复制文件和目录;保留软链接;仅更新目标位置中不存在或较旧的文件;显示详细的传输信息)
rsync -ravz
rsync -Cauv
rsync -r
rsync -avz
rsync -auv3.使用:
单个主机:
rsync -Cauvz /root/test_send/123.txt server1:/root/test_recv/ >> /var/log/rsync/rsync.log
多个主机:
for host in server1 server2 ; do rsync -ravz /root/test_send/123.txt ${host}:/root/test_recv/ >> /var/log/rsync/rsync.log ; done