Mat*_*hew 5 linux backup ubuntu ubuntu-10.04
我的媒体库并不大,但也不小(约 50 GB)。每隔一个月左右,我只是手动复制~/Music,~/Pictures和~/Videos我的EHD,并删除旧的备份。但这远非理想。一方面,它非常慢(总共约 50 GB)。它也没有版本控制,所以如果我想返回多个版本,我就不走运了。
有没有简单、稳定、增量的方法来做到这一点?我愿意使用像 Git 这样的传统版本控制系统,尽管我之前没有将它们用于代码以外的任何事情。命令行很好(特别是如果它是可编写脚本的)。我只需要备份这 3 个文件夹——任何不是媒体的东西都存储在我的Dropbox 中。有任何想法吗?
编辑:这是我最终使用的脚本(感谢 Mistiry):
#!/bin/sh
rsync --delete --size-only -ravv /home/matthew/Music "/media/My Passport/backup/Music"
rsync --delete --size-only -ravv /home/matthew/Pictures "/media/My Passport/backup/Pictures"
rsync --delete --size-only -ravv /home/matthew/Videos "/media/My Passport/backup/Videos"
Run Code Online (Sandbox Code Playgroud)
我发现--progress不是特别有用,因为我的音乐是按专辑组织的,每张专辑只有大约 100 mb。如果可以显示整个rsync操作的进度,那就更有用了。
我使用--delete这样的方式,如果我在本地清理我的库,它也会清理备份。
在vv刚刚所说的那样在详细模式下,因为我是新来rsync的,我想知道,如果有什么差错。
使用该程序rsync,其工作方式类似于增量备份,不会备份未更改的文件。
这里有几个不同的选项(显然,更改目标目录。我在示例中使用 /mnt/usb):
rsync -ra ~/Music /mnt/usb
Run Code Online (Sandbox Code Playgroud)
这将[R ecursively一个rchive可同步您的文件,这意味着它将复制一切,包括目录,将保留所有权,时间戳等。
rsync -r --size-only ~/Music /mnt/usb
Run Code Online (Sandbox Code Playgroud)
这将[R ecursively同步文件,仅使用文件大小来比较的文件(需要较少的CPU功率,因此速度更快)。
rsync -raz --progress --size-only ~/Music /mnt/usb
Run Code Online (Sandbox Code Playgroud)
这将[R ecursively一个rchive可ç ompress同步您的文件(Z表示压缩),仅使用文件大小来比较的文件,并同步之前对其进行压缩。这需要更多的 CPU,因此速度较慢。
(注意:-ra与 相同-a。此处-r包含只是为了清楚起见。)
由于这是您定期执行的操作,因此您可以将类似的内容添加到您的 crontab(运行crontab -e以更改您的 crontab):
* 21 1 * * /usr/bin/rsync -r --size-only ~/Music /mnt/usb
* 22 1 * * /usr/bin/rsync -r --size-only ~/Pictures /mnt/usb
* 23 1 * * /usr/bin/rsync -r --size-only ~/Videos /mnt/usb
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,在每个月的第 1 天晚上 9:00,您的~/Music目录将同步到/mnt/usb. 晚上 10:00~/Pictures和晚上 11:00,~/Videos.