为保障CentOS系统的安全和稳定性,定期备份是至关重要的。以下是几种可靠的备份方案:
# 安装rsync(如未安装)
sudo yum install rsync -y
# 创建备份脚本(如/usr/local/bin/backup.sh)
#!/bin/bash
SOURCE_DIR="/"
DEST_DIR="/backup"
LOG_FILE="/var/log/backup.log"
echo "Backup started at $(date)" >> $LOG_FILE
rsync -aAXv --delete --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found","/backup"} $SOURCE_DIR $DEST_DIR >> $LOG_FILE 2>&1
echo "Backup completed at $(date)" >> $LOG_FILE
# 设置可执行权限
chmod +x /usr/local/bin/backup.sh
# 添加到cron定时任务(每天凌晨2点执行)
echo "0 2 * * * root /usr/local/bin/backup.sh" > /etc/cron.d/backup
# 创建全量备份脚本
#!/bin/bash
DATE=$(date +%Y%m%d)
BACKUP_DIR="/backup"
LOG_FILE="/var/log/full_backup.log"
EXCLUDE="--exclude=/backup --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/run --exclude=/tmp"
echo "Full backup started at $(date)" >> $LOG_FILE
tar -cvpzf $BACKUP_DIR/full-backup-$DATE.tar.gz $EXCLUDE / >> $LOG_FILE 2>&1
echo "Full backup completed at $(date)" >> $LOG_FILE
# 添加到cron(每周日凌晨2点执行)
echo "0 2 * * 0 root /usr/local/bin/full_backup.sh" > /etc/cron.d/full_backup
# 安装Bacula
sudo yum install bacula-director bacula-storage bacula-client bacula-console -y
# 配置Bacula(需根据实际环境修改配置文件)
# 主要配置文件位于/etc/bacula/
# 添加Timeshift仓库并安装
sudo yum install epel-release -y
sudo yum install timeshift -y
# 首次配置
sudo timeshift --create --comments "Initial snapshot" --tags D
# 设置自动快照计划
# 通过GUI或修改配置文件/etc/timeshift.json
3-2-1备份规则:
验证备份:定期测试备份恢复流程
加密敏感数据:如备份包含敏感信息,考虑加密
监控备份状态:设置邮件通知或监控系统告警
异地备份:考虑使用rsync同步到远程服务器或云存储
#!/bin/bash
# 检查备份是否成功
LAST_BACKUP=$(find /backup -name "*.tar.gz" -type f -mtime -1 | wc -l)
if [ $LAST_BACKUP -eq 0 ]; then
echo "Backup failed!" | mail -s "Backup Alert" admin@example.com
fi
选择适合您环境的备份方案并定期测试恢复流程,这是确保CentOS系统安全和稳定的关键措施。