记录一下使用 rsync 进行文件增量备份,把 nas 上的 docker 挂载的文件同步到本地计算机进行一个备份
创建 shell 脚本
backup.sh
1 |
|
上面脚本中,每一次同步都会生成一个新目录 ${BACKUP_DIR}/${DATETIME}
,并将软链接 ${BACKUP_DIR}/latest
指向这个目录。
下一次备份时,就将 ${BACKUP_DIR}/latest
作为基准目录,生成新的备份目录。
最后,再将软链接 ${BACKUP_DIR}/latest
指向新的备份目录。
参数介绍
-a、--archive
参数表示存档模式,保存所有的元数据,比如修改时间(modification time)、权限、所有者等,并且软链接也会同步过去。-v
参数表示输出细节。-vv
表示输出更详细的信息,-vvv
表示输出最详细的信息。--delete
参数删除只存在于目标目录、不存在于源目标的文件,即保证目标目录是源目标的镜像。-e
参数指定使用 SSH 协议传输数据。--link-dest
参数指定增量备份的基准目录。
压缩备份文件夹
1 | zip -r -e -o NAS_Docker_Backup_20211216.zip ./2021-12-16_20:55:49 |
参数介绍
-r
表示子目录子文件全部压缩为 zip。这部比较重要,不然的话只有 something 这个文件夹被压缩,里面的没有被压缩进去-e
表示你的压缩文件需要加密,终端会提示你输入密码。还有种加密方法,这种是直接在命令行里做的,比如 zip -r -P Password01! modudu.zip SomeDir, 就直接用 Password01!来加密 modudu.zip 了。-o
表示设置所有被压缩文件的最后修改时间为当前压缩时间