你能看到什么 rsync 不能看到的东西?
我想复制整个 Linux 服务器,该服务器将通过网络退役,这样我们就可以确保不会丢失任何内容。
我做了 du /
并被告知 / 下面有 60 GB
然后我做了 rsync -r / root@newserver:/old-server
并在做 du 时
在 old-server
目录中我有 22 GB。
那么为什么会有这样的差异呢? 是否存在 du
可以看到但 rsync
无法复制的内容?
I want to copy an entire linux server that is going to be decommissioned over the network so we are sure nothing is lost.
I did du /
and was told there are 60 GB of under /
Then I did rsync -r / root@newserver:/old-server
and when doing du
in the old-server
dir I got 22 GB.
So why is that difference? Is there something that du
can see but rsync
can't copy?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可能已经删除了尚未释放的文件,因为它们上有打开的文件句柄。 (我之前不知道 du 会看到这些用法,但一些测试表明确实如此。)您可以使用 lsof。 根据我的经验,造成这种情况的两个主要原因是在不启动 httpd 的情况下删除 Apache 日志,以及从文件系统中删除 mysql 表,而不是使用 DROP TABLE。
You probably have deleted files that can't yet be deallocated because there are open filehandles on them. (I didn't previously know that du would see the usage from those, but some testing showed that it does.) You can research this using lsof. The two main causes of this from my experience are deleting Apache logs without kicking the httpd and deleting mysql tables from the filesystem rather than by using DROP TABLE.
如果您有一点时间,您可以准确地弄清楚其中的区别:运行
cd /; 寻找 。 > /tmp/old
在旧服务器上,cd /old-server; 寻找 。 > /tmp/new
在新服务器上,然后vimdiff
这两个文件以查看发生了什么变化。If you've got a bit of time on your hands, you could figure out exactly what the difference is: run
cd /; find . > /tmp/old
on the old server,cd /old-server; find . > /tmp/new
on the new server, thenvimdiff
the two files to see what's changed.有一些特殊的文件系统应避免使用
rsync
进行复制,例如/proc
、/sys
、/tmp< /代码>。 他们可能会解释你所看到的差异,尽管无论如何,它看起来太大了。
可能存在一些不可读的目录(例如,其中没有
r
或x
)。 我不记得以 root 权限运行的进程是否可以在不先修复权限的情况下访问此类目录。更好地生成和比较文件列表及其 md5 和。
There're some special filesystems which you should avoid copying with
rsync
, for example,/proc
,/sys
,/tmp
. They may account for the difference you see, although, it seems too big anyway.There could be some unreadable directories (for example, without
r
orx
on them). I don't remember whether process running withroot
rights can access such directories without fixing permissions first.Better generate and compare list of files and their md5 sums.
一些建议:
/proc
和/sys
(使用--排除,或者更好的是 -x 并分别备份每个文件系统)我倾向于在类似情况下使用 rsync -axHSW --numeric-ids 。
Some suggestions:
/proc
and/sys
(use --exclude or, better, -x and backup each filesystem separately)I tend to use
rsync -axHSW --numeric-ids
in similar circumstances.