进行服务器备份,并使用rsync保留所有者

时间:2015-09-12 04:48:01

标签: server backup rsync

我最近配置了一个小服务器来测试一些服务,现在,在升级或安装新软件之前,我想要制作我的文件的完整副本,包括所有者,组和权限,以及符号链接。

我尝试使用rsync来保留所有者和组,但是在收到副本的机器中我丢失了它们。

rsync -azp -H /directorySource/ myUser@192.168.0.30:/home/myUser/myBackupDirectory

我的意图是使用/文件夹,以保持我的所有配置以防万一,我有3个服务,拥有它自己的用户,并可能在其外的文件夹中进行修改。

在我的目标用户显示的目标文件夹中,我是否从服务器执行副本,就像我从目的地执行此操作,它不会保留用户和组!,我创建了相同的用户,尝试过用sudo,即使是朋友也试过777文件夹:)

理论上cp服务相同,但不能在ssh上工作,无论如何我试图在服务器上做,但有很多错误。我记得命令tar也保留了权限和所有者,但是由于服务器正常工作而有错误,恢复过程并不是那么快。我也记得魔法dd命令,但我做了一个很大的分区。 Rsync看起来是最好的选择,并保持同步备份。我看到新版本中的rsync与所有者配合得很好,但我已经升级了包。

任何人都知道我是如何做到这一点的,或者正常的过程如何保持我自己的服务器备份,恢复只是再次进行分区?

服务是taiga,项目经理平台,git存储库,代码审阅者等等,所有这些服务都适用于nginx而不是Ubuntu Server。我没有看过其他备份方法,因为我认为使用cron作业的rsync可以完成工作。

1 个答案:

答案 0 :(得分:0)

您的命令没问题,但您需要在远程端以 root 用户身份运行(只有root有权设置文件所有者):

rsync -az -H /directorySource/ root@192.168.0.30:/home/myUser/myBackupDirectory

您还需要确保使用rsync的-o选项来保留所有者,并-g保留组,但是-a隐含了这些选项,您的命令就可以了。我删除了-p,因为-a也暗示了这一点。

您还需要在本端进行root访问才能进行反向传输(如果要还原文件)。

如果这对您不起作用(无root访问权限),那么您可以考虑使用tar执行此操作。正确的存档可能是作业的正确工具,并将包含所有正确的用户数据。同样,需要root访问权才能将其写回文件系统。