记录一下当前系统备份的脚本,备份原理其实就是定时将系统目录压缩备份起来保存在另一个硬盘当中,并同时排除无关的目录或系统运动时产生的临时目录。恢复时也简单,将要恢复的备份文件解压到根目录并覆盖即可。
#!/bin/bash
# 定义源目录和备份目录
SOURCE="/"
BACKUP_DIR="/backup/system" # 本地备份目录
# 生成以日期的备份文件名
DATE=$(date +%F)
BACKUP_FILE="backup-$DATE.tar.gz"
# 本地备份,只备份系统相关的目录,我这里 /backup 挂载的是另一个硬盘,需要排除
tar -czvf $BACKUP_DIR/$BACKUP_FILE --exclude=$BACKUP_DIR --exclude=/proc --exclude=/data --exclude=/swap.img --exclude=/lost+found --exclude=/mnt --exclude=/backup --exclude=/dev --exclude=/run --exclude=/media --exclude=/tmp --exclude=/home --one-file-system $SOURCE
# 保留最近的60天备份,删除旧的备份
find $BACKUP_DIR -type f -name "backup-*.tar.gz" -mtime +60 -exec rm {} \;