Linux Backup

Linux 备份有很多种方法,ArchWiki 对常见的备份方法以及使用到的工具都有介绍。在一些拥有快照的文件系统上,备份尤其简单。那么在 ext4 下,怎么备份好呢?

我试了三种方法,这里讲一下区别。

#rsync

很多博客都推荐 rsync,使用 rsync 全盘同步到其他地方。但是我遇到了性能低的问题,rsync 太慢了,同步大量小文件时,慢的出奇。而且可能是因为我同步到使用 rclone 挂载的 OneDrive 的原因,不能备份链接,报了许多错误。

rsync 支持在本地的不同目录同步,也支持 ssh 等方法同步到云端磁盘,但正如它的名字说明的那样,rsync 是同步命令,在云端已经有备份文件时,使用 rsync 同步最新的数据很方便,从头备份还是选择其他方法吧。

#dd

dd 是功能强大的工具,使用 dd 备份的思路是把整盘复制到其他地方,可以通过 pipe 直接 dd 到云端,高效快捷,但是 dd 是全盘复制,如果磁盘有 1 T 而数据只有 100 G,用 dd 时间效率,空间效率,都很低。

#tar

tar 是打包命令,把多个文件打包成一个,可以通过其他程序来完成压缩功能。tar 是我使用的,很高效与方便的命令,需要一个 Live System,通过 Live System 启动,挂载系统盘,然后全盘打包到其他地方,可以通过 pipe ,直接打包到云端。比如

sudo tar -zcvf - /disk | ssh backup.acytoo.com -p <ssh port> -l <user name> "cat > /home/acytoo/linux-backup.tgz"

其中 /disk 是挂载的系统盘。