使用 cygwin、rsync 和 SSH,我设置了一个备份机制,将所有 vServers(运行 Debian)内容复制到我的本地 NTFS 硬盘(运行 Windows 10),并且它可以运行。部分。
我使用这个命令:
rsync -avzu --no-perms \
--exclude 'bin' \
--exclude 'dev' \
[...]
--exclude 'sys' \
--exclude 'tmp' \
--exclude 'var/tmp' \
--exclude 'var/cache' \
[user]@[domain]:/ /var/vserver-backup
当然,它会使所有文件在复制时失去其权限(这是由于参数的原因--no-perms
)。另外,我不太确定我是否能够正确地将符号链接复制回 vServer。
我想要的是,本地文件(副本)我自己可以在本地计算机上访问(使用 NTFS)。由于 Linux 权限将被广泛映射到我的任何本地计算机帐户,因此可能无法访问,因此使用 NTFS-ACL 似乎不是一个好主意,对吗?另一方面,我想能够干净地恢复该备份,包括 ACL 和符号链接。是的,vServer 已在某些文件甚至目录上设置了扩展 ACL(使用 设置setfacl
)。
tar
如果我使用而不是,这可能是可行的rsync
,不是吗?但这将花费大量时间,因为它不仅会传输增量,对吗?(我完全不确定是否tar
有可能......)
那么,在 Debian 上是否有办法自动创建一个包含所有文件权限和符号链接位置的文件,以便在恢复备份后执行它?我想象它是这种格式的 shell 脚本:
chown root:root /var
chmod 0755 /var
chown root:root /var/data
chmod 0755 /var/data
[...]
ln -s /etc/some/file /etc/path/to/symlink
[...]
chown root:root /www
chmod 0700 /www
setfacl -d -m g:www-data:rx /www
该文件当然会在服务器端创建,并通过 rsync 命令与所有其他文件一起复制到本地硬盘。
有没有已知的方法可以做到这一点?或者您还有其他建议吗?您会怎么做?