CentOS 快速备份数据的实用方案
一、先确定备份范围与策略
二、常用工具与典型命令
rsync -avz --delete /source/ /dest/tar -czvf /backup/etc_$(date +%F).tar.gz /etcmysqldump -uUSER -pPASSWORD --single-transaction --routines --triggers --databases db1 db2 > /backup/mysql_$(date +%F).sqldd if=/dev/sda of=/backup/sda_$(date +%F).img bs=4Mdd if=/backup/sda_$(date +%F).img of=/dev/sda bs=4M三、自动化与近实时方案
0 2 * * * /usr/local/bin/backup.sh四、快速可用的脚本模板
chmod +x /usr/local/bin/backup.sh#!/bin/bash
set -e
DATE=$(date +%F_%H%M%S)
SRC_DIRS="/etc /home /var/www"
BACKUP_BASE="/mnt/backup_drive/centos_backups"
LOG_FILE="/var/log/centos_backup.log"
mkdir -p "$BACKUP_BASE/$DATE"
echo "=== Backup started at $DATE ===" >> "$LOG_FILE"
for DIR in $SRC_DIRS; do
echo "Backing up $DIR ..." >> "$LOG_FILE"
rsync -a --delete "$DIR" "$BACKUP_BASE/$DATE/$(basename $DIR)" >> "$LOG_FILE" 2>&1
done
echo "=== Backup finished at $(date +%F_%H%M%S) ===" >> "$LOG_FILE"
crontab -e 中加入 0 2 * * * /usr/local/bin/backup.sh#!/bin/bash
set -e
DATE=$(date +%F_%H%M%S)
BACKUP_DIR="/mnt/backup_drive/mysql_backups"
mkdir -p "$BACKUP_DIR"
mysqldump -uUSER -pPASSWORD --single-transaction --routines --triggers --databases your_db > "$BACKUP_DIR/mysql_$DATE.sql"
crontab -e 中加入 30 2 * * * /usr/local/bin/backup_mysql.sh五、恢复与校验要点
rsync -a --delete /backup/2026-01-07_020000/ /restore/path/tar -xzvf /backup/etc_2026-01-07.tar.gz -C /restore/path/mysql -uUSER -pPASSWORD < /backup/mysql_2026-01-07.sql