我有一个 EC2 实例,其中的数据我想同步到已安装但远程的卷作为备份。
rsync
似乎是解决这个问题的方法,因此作为测试,我获取了我的测试文件(Postgres pg_dump 文件)并将rsync -v
其复制到已安装的卷:
[ec2-user work]$ rsync -v dump.sql.1 ../backup/dump.sql
dump.sql.1
sent 821704315 bytes received 31 bytes 3416650.09 bytes/sec
total size is 821603948 speedup is 1.00
然后,我再次运行它,希望看到最少的发送/接收数字,因为它只是校验和。然而……
[ec2-user work]$ rsync -v dump.sql.1 ../backup/dump.sql
dump.sql.1
sent 821704315 bytes received 31 bytes 3402502.47 bytes/sec
total size is 821603948 speedup is 1.00
我是新手,rsync
所以也许我忽略了一些东西,但这个想法不是检查源文件和目标文件是否存在差异,然后生成补丁并将其应用于目标文件吗?为什么这不会将“发送”的数据量减少到校验和的大小?
以下列出一些相关背景:
已安装的卷正在使用s3fs,装上s3fs <bucketname> backup
。
答案1
rsync 默认复制所有内容。您可以使用 -t 或 -c 等标志使其检查文件的时间戳,并且不重新传输上次修改时间戳未更改的文件(-t),或校验和仍然相同(-c)。另一个有用的选项是 -a(我总是使用它),它设置 -t 和一些其他对存档/备份有用的选项。