我想确保我rsync
在 Linux 上使用了正确的命令。我不想运行rsync
并最终丢失数据,因为我是 Linux 新手,而且现在没有备份。
在 Linux Mint 上,我想将/home/nasser/
其下面的所有内容备份到/home/BACKUP/
我安装了备份磁盘的位置。
因此,我想最终得到:
/home/nasser/file1
/home/nasser/file2
/home/nasser/A/file1
到
/home/BACKUP/file1
/home/BACKUP/file2
/home/BACKUP/A/file1
这应该包括保留所有权和权限的所有隐藏文件和目录。我确保它/home/BACKUP/
归我所有(用户和组)。 (我刚刚使用它创建sudo
并更改了所有者和组并安装了备份磁盘)。
我计划使用的命令是:
rsync -apvr --delete --chmod=ugo=rwX /home/nasser/ /home/BACKUP/
我将使用我的用户帐户而不是 root 身份运行它。
上面的命令是否正确地执行我想要的操作,因此我最终在各个方面都会出现重复的文件?我计划将其用于定期备份,因此每次我想确保备份是最新的时都会使用此命令。
作为参考,这些是我为准备备份而执行的完整步骤。
- 买了一个USB外置盘。回家并插入电脑
- 跑
dmesg
并看到 [172850.144032] sd 9:0:0:0: >[sdc] [172850.170378] sd 9:0:0:0: >[sdc] 连接的 SCSI 磁盘 - 确定新磁盘被识别为
/dev/sdc
删除现有分区并创建新的主分区。
# sudo fdisk /dev/sdc
命令(m 寻求帮助):d
选定分区 1命令(m 寻求帮助): n
分区类型:
p 主分区(0 个主分区、0 个扩展分区、4 个空闲分区)
e 扩展
选择(默认 p): p
分区编号(1-4,默认 1):选择默认使用整个磁盘。
命令(m 寻求帮助):w
...
正在同步磁盘。- 创建ext4文件系统
# sudo mkfs.ext4 /dev/sdc1
- 创建挂载点
# sudo mkdir /home/BACKUP
- 安装并将所有内容分配给我,只需完成一次
# sudo mount -t ext4 /dev/sdc1 /home/BACKUP/
# sudo chgrp -R nasser /home/BACKUP/
# sudo chown -R nasser /home/BACKUP/
答案1
需要注意的是一致性。例如,如果您在 Firefox 更新数据库时进行备份,它们可能会损坏。其中包括 Firefox 的书签。因此,您可能会在运行备份之前关闭其他正在运行的应用程序,现在的软件正在使用数据库,包括 KDE 桌面,因此它开始变得有点尴尬。
man rsync
告诉我这-a
已经暗示了-r
和-p
。我用-a
和--delete
。我认为这对于大多数目的来说应该没问题。
看起来您的备份将可供任何用户读取和写入。恢复备份后,这可能会导致某些工具出现问题。 SSH 就是一个例子,它可能会拒绝运行,直到您修复其配置以使其再次安全。所以我个人不会使用 chmod 选项。
您可能还喜欢 rdiff-backup。它与使用 rsync 类似,但您不需要指定-a --delete
,并且“额外的反向差异存储在目标目录的特殊子目录中,因此您仍然可以恢复前一段时间丢失的文件。”