我并不是一名优秀的 Linux 用户,我只是试图在驱动器发生故障时备份我的服务器文件。我目前有一个 SSD 正在为媒体服务器运行 docker 容器,媒体存储在 RAIDZ 阵列中的 4 个驱动器的 ZFS 池中。我正在尝试弄清楚如何将我的 crontab 目录 rsync 到 ZFS 池,并且可能还将其放在 usb 上,以确保如果 SSD 发生故障,我的 .env 文件不会丢失。我不知道我是否正确地表达了我想要表达的所有内容,非常抱歉!我想这样做更有意义,只需将其作为 /home /mnt(zpool 的名称)。
rsync -av --delete /home /mnt-
这个命令看起来正确吗?
下面是我的 Docker 备份 cronjob 以及 ZFS 清理的样子。
# m h dom mon dow command
0 2 * * * /home/<USER>/.docker/main.sh -b max
# zpool scrub every month
0 2 1 * * /sbin/zpool scrub mnt
0 13 1 * * /sbin/zpool status
提前致谢!
答案1
如果您希望rsync
定期使用备份文件,您可能需要进行一些更改。--delete
将删除您已删除的文件,这意味着如果你不小心删除了所有文件然后 rsync -av --delete /home /mnt-
运行它将删除你所有的备份。如果您只想复制一份,那么这种方法是可行的,而且它可能会让您免于磁盘故障,但您应该考虑一下您要保护自己免受什么伤害。如果您将其用作rsync
常规备份工具,我建议您查看 stack overflow 上的这篇文章使用 rsync 进行备份而不覆盖。
我知道有很多文章建议你做你正在做的事情,极客 linux.com虽然这非常适合一次性备份,而且当您知道计算机处于您可以接受的状态时,如果您想手动运行备份也是可以的。但自动执行备份是有风险的。我建议使用内置备份工具(只需搜索备份)因为它处理错误删除或覆盖文件的情况,您可以将其设置为每周/每月等运行,并可以设置要保留备份的时间。但如果您只是想防止磁盘故障,那么您所拥有的可能就没问题了。
答案2
rsync(1) 有一个出色的“--archive”选项。
当我偶尔想查看过去某个时间的文件情况时,它为我提供了主要的备份方式。
我碰巧使用了一个永久插入到我的显示器背面的 USB,但如果我想要一个完整的备份来恢复文件系统,它可能是一个物理上不靠近我的计算机的单独设备。
这是我用于备份的脚本,每天 23:45 以 root 身份运行:
#!/bin/bash -e
# This is run as root at the end of the day
do what you want.
( echo ">>>>>>>>>>>>>>>>>>>>>>>" $(date)
today=$(date +%Y-%m-%d)
month=$(date +%Y-%m)
# USB backups
cd /media/ray/Backup-Ray
rsync --archive --one-file-system --delete --backup --backup-dir="../../$today/etc" "/etc/" "mostrecent/etc/"
rsync --archive --one-file-system --delete --backup --backup-dir="../../$today/home" --exclude=".config/google-chrome/" --exclude=".cache/" --exclude=".local/share/zeitgeist/" --exclude="Downloads/" "/home/" "mostrecent/home/"
rsync --archive $today/ $month/
echo "<<<<<<<<<<<<<<<<<<<<<<<" $(date)
) &>>/home/ray/Log/root.out
exit 0
所有更改和删除的文件都会被保留。使用标准 unix 工具检查和恢复文件非常简单:
$ cd /media/ray/Backup-Ray
$ ls -l {,*}/home/ray/public/Log/wait.xhtml
-rw-r--r-- 1 ray ray 14002 Dec 3 21:04 2018-12-16/home/ray/public/Log/wait.xhtml
-rw-r--r-- 1 ray ray 14102 Dec 16 09:28 2018-12-17/home/ray/public/Log/wait.xhtml
-rw-r--r-- 1 ray ray 14202 Dec 17 20:47 2018-12-20/home/ray/public/Log/wait.xhtml
-rw-r--r-- 1 ray ray 14302 Dec 20 15:12 2018-12-25/home/ray/public/Log/wait.xhtml
-rw-r--r-- 1 ray ray 14402 Dec 25 21:21 2018-12-26/home/ray/public/Log/wait.xhtml
-rw-r--r-- 1 ray ray 14402 Dec 25 21:21 2018-12/home/ray/public/Log/wait.xhtml
-rw-r--r-- 1 ray ray 14452 Dec 26 18:43 /home/ray/public/Log/wait.xhtml
-rw-r--r-- 1 ray ray 14452 Dec 26 18:43 mostrecent/home/ray/public/Log/wait.xhtml
只有“mostrecent”目录较大。
每月累积目录(2018-12)包含整个月的最新变化。没有必要执行此步骤,但是当我需要节省空间时,它允许我删除该月的所有每日更新(一年后,我可能会关心 12 月底的情况,但不会太关心当月的变化。)
显然,您需要更改频率、时间戳等,但相同的机制应该提供定期备份。