rsync!

rsync!

/home/jbruni在运行 Ubuntu Server 10.04 LTS(Lucid Lynx)的 VPS 中有一个文件夹。

我即将关闭这个 VPS,并将一些东西从它转移到一个新的 VPS,也运行相同的 Ubuntu 版本。

目前,我想将所有内容/home/jbruni从“旧” VPS 移动到新的 VPS。

1)我想保留所有文件权限和所有权设置(转移后我不想使用任何chown) 。[注意:新的 VPS 已经拥有相同的用户/组,它们具有相同的 UID/GID。]chmod

2)我想保留所有符号链接和硬链接,尽管我相信在这种情况下没有一个硬链接。我有很多符号链接,既有文件也有文件夹,都指向自己/home/jbruni文件夹内的位置。

3)我非常想保存日期和时间(mtime、atime、ctime)。[如果不可能,那也没那么糟糕。]

4) 在转移“旧”VPS 之前,我没有足够的磁盘空间来创建一个包含其中所有内容的大文件(就像一个大 tarball)。无论如何,如果真的非常需要,我可能会获得这个临时的额外空间。

因此,我想要的是源文件夹的“镜像”。有没有办法轻松实现这一点?(或者甚至不那么容易?)

谢谢你!

答案1

rsync

rsync -azv -e ssh ./localdirectory/ user@otherserver:/remote/dir

-a是这里的坏孩子。它实际上是一个元论证,它调用了-rlptgoD以下内容:

  • 递归
  • 保留符号链接
  • 保留权限
  • 保留修改时间
  • “保留”组
  • 保留所有者
  • 并保存特殊的东西

它不会保留硬链接,因为硬链接是文件(其实它就是一个指向存储文件名的 inode 的指针 - 但常规文件也是如此 - 当您创建硬链接时,您只是为 inode 提供了一个额外的文件名)。这对您来说应该不是问题,因为在我看来它们非常罕见。

-z将尝试压缩流中的数据(稍微加快速度)。

-v将确保它给你足够的输出。

答案2

我会使用 rsync 来实现这一点。我相信它是在 Ubuntu 中默认安装的,但如果没有,那么您可以从存档中安装它。

相关内容