参考资料
文件备份
经常备份数据是一个好习惯,可以应对数据丢失、误删、系统崩溃等突发情况。但是备份数据的时候,我们经常记不清楚哪些文件是新增的或者修改的,只好每次都全部复制粘贴到硬盘里。如果要备份的文件数量很多、文件很大的话,那每次都浪费很长时间。而且复制之前,还要把上一次备份的文件删了,文件太大的情况下,连删除都得花很多时间。
增量备份
第一次备份的时候,完全复制数据。以后每次备份的时候,备份工具会自动比较现在的文件和上一次备份的文件的差异,然后只备份和上一次备份不一样的地方。
windows备份工具——robocopy
命令:
robocopy [source] [destination] [options]
- [source] 要进行备份的文件或目录(下文称源目录或source)
- [destination] 用于存放备份数据的目录 (下文称目标目录或destination)
- [options] 控制参数
常用的几个控制参数
参数 | 含义 |
---|---|
/e | 复制子目录,包括空的目录 |
/purge | 在目标目录中,删除源目录中不存在的文件或文件夹 |
/mir | 镜像目录树(等价于\e \purge) |
/mt[:n] | 使用n个线程进行复制,默认是8个线程 |
/R[:n] | 复制失败时,重试的次数,默认1百万 |
/W[:n] | 两次重试之间的等待时间,默认30秒 |
/A-:[RASHCNET] | 去除被复制文件的某些属性。R表示Read only,H表示Hidden,E表示Encrypted,T表示Temporary |
/XD [directories] | 排除给定的文件夹 |
用例
robocopy F:\ I:\Backup\Windows\ /mir /mt /R:50 /W:20 /A-:H /XD Config.Msi $RECYCLE.BIN
robocopy E:\Photos\ I:\Backup\Windows\Photos\ /mir /mt /R:20 /W:20 /A-:H /XD Config.Msi $RECYCLE.BIN
这里F盘是我要备份的内容,I盘是我的移动硬盘。要备份整个盘时,F:后面的\一定不可少!
linux备份工具rsync
- 用法
rsync -av --delete [sourse] [destination]
- 例子
把/home/username目录下的codes文件夹里的所有内容备份到我的移动硬盘里。
先挂载硬盘到/mnt/zyy这个节点。
#首先创建/mnt/zyy文件夹
sudo mkdir -p /mnt/zyy
#然后用fdisk -l来找到要挂载的移动硬盘
fdisk -l
#从fdisk -l显示的列表里,找到移动硬盘对应的符号,我这里是/dev/sdc2
#然后挂载/dev/sdc2到/mnt/zyy
sudo mount /dev/sdc2 /mnt/zyy
#查看挂载目录,确保挂载成功
ls /mnt/zyy
然后,备份数据
source="${HOME}/codes" #要备份的内容
backup="/mnt/zyy/Backup/Linux" #备份目的地
# 若备份目录不存在,则新建
mkdir -p "${backup}"
# 备份
sudo rsync -av --delete "${source}" "${backup}"