CentOS Minimal 备份实用指南
一、备份方法速览
二、常用命令示例
tar -cvpzf /backup/full_$(date +%F).tar.gz \
--exclude=/proc --exclude=/lost+found --exclude=/mnt --exclude=/sys \
--exclude=/media --exclude=/backup / 2>/backup/tar_errors.log
提示:如存在独立数据盘挂载点(如 /data),可按需纳入或排除;压缩率优先可用 -j(bzip2)替代 -z(gzip)。# 本地
rsync -aAX --delete /data/ /backup/data/
# 远程
rsync -avz --delete -e ssh /data/ user@remote:/backup/data/
# 增量快照(基于上次备份)
rsync -avz --delete \
--link-dest=/backup/data/last/ \
/data/ /backup/data/$(date +%F)/
rm -f /backup/data/last
ln -s $(date +%F) /backup/data/last
# 备份
dd if=/dev/sda of=/backup/sda_$(date +%F).img bs=4M status=progress
# 还原
dd if=/backup/sda_$(date +%F).img of=/dev/sda bs=4M status=progress
mysqldump -u root -p --single-transaction --routines --triggers \
--databases your_db > /backup/db_$(date +%F).sql
# /etc/rsnapshot.conf 关键项示例
snapshot_root /backup/rsnapshot/
cmd_rsync /usr/bin/rsync
retain daily 7
retain weekly 4
retain monthly 3
# 执行
rsnapshot daily
以上命令覆盖了 tar/rsync/dd/mysqldump/rsnapshot 在最小化环境下的主流用法。
三、备份策略与自动化
#!/usr/bin/env bash
set -e
BACKUP_DIR="/backup/web"
SRC="/var/www"
DATE=$(date +%Y%m%d%H%M%S)
FILE="$BACKUP_DIR/web_$DATE.tar.gz"
mkdir -p "$BACKUP_DIR"
tar -czf "$FILE" -C "$SRC" .
find "$BACKUP_DIR" -type f -mtime +7 -name "*.tar.gz" -delete
echo "$(date) Backup $FILE completed." >> "$BACKUP_DIR/backup.log"
加入定时任务:chmod +x /usr/local/bin/backup_web.sh
echo "0 1 * * * /usr/local/bin/backup_web.sh" | crontab -
上述策略与脚本模板可直接落地,适配 Minimal 环境的资源与运维习惯。
四、恢复与验证
tar -xvpzf /backup/full_2025-11-15.tar.gz -C / \
--exclude=/proc --exclude=/lost+found --exclude=/mnt --exclude=/sys \
--exclude=/media
提示:建议在救援模式或单用户环境下执行,避免覆盖运行中文件。# 本地
rsync -aAX --delete /backup/data/ /data/
# 远程
rsync -avz --delete -e ssh user@remote:/backup/data/ /data/
dd if=/backup/sda_2025-11-15.img of=/dev/sda bs=4M status=progress
mysql -u root -p < /backup/db_2025-11-15.sql
五、注意事项与排错