某些文件不能通过在两台服务器之间使用rsync进行传输

我使用带-av参数的rsync将网站从一台服务器迁移到另一台服务器。 没有显示错误,但文件夹的大小是不一样的,网站无法正常工作。 所以缺less一些东西。 有一个参数谁真的复制一切? 我有双方的sudo帐户。

我用du -s dir检查文件夹大小,大小如下:

 old server : 2554620 new server : 2547676 

它是以字节为单位的。 我如何pipe理确切的副本?

Wordcount输出:

 old server : 2663 3105 175534 new server : 2665 3107 175594 

它可能有些文件不符合rsync的默认大小和date。 取而代之的是rsync传输基于校验和。 它会变慢,但如果文件已经改变了,它将被转移。

 rsync -cav <source> <destination> 

如果您想检查它是否将传输所需的文件,请在命令末尾添加-n以执行空运行。 然后你可以检查丢失文件的列表,或者更容易,如果你有一个特定的文件名,你知道以前没有被转移,只是grep的!

 rsync -cav <source> <destination> -n | grep some-missing-filename 

更新:如果您不确定文件夹的内容是否相同,则可以使用以下方法轻松检查:

在每台服务器上:

 cd /to/root/of/your/website find . | md5sum 

然后比较输出的md5校验和,如果数字相同,那么你有相同的文件(例如server1和server2上的file1),虽然这不考虑文件内容不同

如果你想看看哪一个文件存在,而不是另一个,那么你当然可以输出目录列表到文件:

 cd /to/root/of/your/website find . > server1.txt 

…在两台服务器上,然后

 diff server1.txt server2.txt 

只有一个最后的想法:

 scp -r user@server1:/path/to/website /path/to/website