如何使用 rsync 将我的 Mac 备份到 NAS?

如何使用 rsync 将我的 Mac 备份到 NAS?

我需要将一堆目录备份到我的 NAS(它基本上在 Finder 中显示为网络共享)。我不想让它可启动,只需要备份几个目录。我还想让它每晚运行。我试过查看 rsync 的文档,但还没能搞清楚。

我也查看了 rsyncx,但无法安装。也不关心 Time Machine 支持,只需要一个简单的备份。

答案1

您的 NAS 是否设置了 rsync 服务?有些 NAS 支持该服务(例如 ReadyNAS)。如果是,您可以执行以下操作:

#!/bin/sh

DEST=xx.xx.xx.xx::backup/swilliams/
RSYNC_OPTS='-vaC --exclude ".DS_Store"'

/usr/bin/rsync $RSYNC_OPTS --exclude "build/" --exclude "dist/" --exclude "*.pyc" ~/code $DEST
/usr/bin/rsync $RSYNC_OPTS ~/Music $DEST
/usr/bin/rsync $RSYNC_OPTS ~/Pictures $DEST
/usr/bin/rsync $RSYNC_OPTS --exclude "Virtual Machines*" ~/Documents $DEST

您需要将 DEST 更改为您的 NAS 的 IP 地址,并更改路径和内容以适应。

如果您将其另存为~/bin/backup.sh(并确保这样做chmod a+x ~/bin/backup.sh),那么您可以使用 cron 每晚运行它。运行crontab -e并添加以下行:

0 0 * * *      $HOME/bin/backup.sh > $HOME/logs/backup.log 2>&1

0 0 * * *意思是:每天、每月午夜运行。第一列是分钟,所以凌晨 3 点是0 3 * * *。这将写入日志~/logs,因此请确保目录存在,否则将它们放在其他地方)

如果你的 NAS 不支持 rsync 服务,那么我思考如果你将开始改为这样它应该可以工作:

#!/bin/sh

mount_smbfs //user:[email protected]/backup /Volumes/backup
DEST=/Volumes/backup

最后:

umount /Volumes/backup

(如果你的共享是开放的,你可以省略用户和密码)

如果你想要带时间戳的备份,你可以尝试使用 date 命令。例如

DATE=`date +%Y%m%d`

然后在脚本中访问 $DATE。

如果您对这里任何内容不清楚,请直接询问。

答案2

使用 rsync 进行备份时,最值得关注的选项是--backup--backup-dir,如果没有这些选项,那么您是在进行复制,而不是备份。与备份一样,您需要跟踪更改,而不是仅仅覆盖它们。我使用的是这个:

#!/bin/sh

RSYNCOPTS="-e ssh --delete --one-file-system --relative --archive -P --verbose --compress --recursive"
BACKUPDIR="/backup/"
BACKUPINCR="${BACKUPDIR}/incr/$(date -I)"
BACKUPROOT="${BACKUPDIR}/root/"
EXCLUDES="--exclude-from /home/juser/.backup-excludes"

# Make sure we use a new incr backup directory on each run
NUM=0
while [ -e "${BACKUPINCR}-${NUM}" ]; do
  NUM=$(($NUM  + 1))
done
BACKUPINCR="${BACKUPINCR}-${NUM}"

for i in /home/ /etc/; do
  rsync $RSYNCOPTS $EXCLUDES--backup --backup-dir="$BACKUPINCR" "$i" "$BACKUPROOT"
done

这将为您提供 中的副本/backup/root/以及 中所有已更改或已删除文件的备份/backup/incr/$DATE-$NUM

该脚本使用--one-file-system,因此它不会跨越文件系统边界,并且它用于--relative获取保存的绝对路径名。

如果您希望它更加严谨,您可以添加--checksum,它将对所有文件进行校验,而不是仅使用时间戳进行跳过。优点是您的备份将更有可能不受位翻转的影响,但它将运行更长的时间。

另一个一般建议是,--dry-run当您尝试使用新选项时,如果您不确定它们的作用,请始终使用它,尤其是当它涉及到--delete朋友时,因为您不会意外地消除您已经存在的备份。

答案3

rsync -av 文件路径 NAS 上放置位置的路径

通过 cron、crontab -e 运行它,但是您需要了解 vi,并查找 crontab 语法。

如果文件归您所有,则可行。我认为您可能需要 E 选项 (-avE) 来获取资源分叉,据我所知,该选项在 OS X 下实际上并不使用,只有经典内容才可以使用,而经典内容不再起作用。

这里有一些链接,您不需要弄乱 ssh 的东西。

简单的: http://www.egg-tech.com/mac_backup/

复杂:www.bombich.com/mactips/rsync.html

答案4

查看我的说明http://www.luxgruppe.de/tech/?p=10以及后续文章,介绍如何使用 rsync 将音乐和 iTunes 播放列表与 Synology 同步。iTunes 播放列表同步:http://www.luxgruppe.de/tech/?p=200

玩得开心!

相关内容