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
是挂载的系统盘。