CentOS LAMP 数据备份实操指南
一 备份范围与策略
二 数据库备份与恢复
mysqldump -u 用户名 -p 数据库名 > /backup/mysql/数据库名_$(date +%F).sqlmysqldump -u 用户名 -p --all-databases > /backup/mysql/full_$(date +%F).sqlmysqldump -u 用户名 -p --default-character-set=utf8mb4 数据库名 > 备份.sqlmysql -u 用户名 -p 数据库名 < 备份.sqlmysqldump -u 用户名 -p --single-transaction --flush-logs --routines --triggers --databases 库名 > 备份.sql(--single-transaction 对 InnoDB 一致性友好,--flush-logs 便于基于 binlog 的增量恢复)。三 网站文件与配置备份
tar -czvf /backup/www/html_$(date +%F).tar.gz -C /var/www/html .tar -czvf /backup/conf/httpd_$(date +%F).tar.gz -C /etc httpdtar -czvf /backup/conf/php_$(date +%F).tar.gz -C /etc php.ini /etc/php.drsync -avz --delete /var/www/html/ 用户@备份机:/backup/web/$(hostname)/html/rsync -av --link-dest=../full_上次日期 /var/www/html/ /backup/web/inc_$(date +%F)/scp -P 22 /backup/mysql/*.sql 用户@备份机:/backup/mysql/。四 自动化与远程集中备份方案
#!/bin/bash
BACKUP_ROOT="/backup"
MYSQL_USER="backup"
MYSQL_PASS="YourStrongPass"
DB_NAME="your_db"
WWW_DIR="/var/www/html"
CONF_DIRS="/etc/httpd /etc/php.ini /etc/php.d"
DATE=$(date +%F)
LOG="$BACKUP_ROOT/backup_$DATE.log"
mkdir -p $BACKUP_ROOT/{mysql,www,conf}
# 1) MySQL 逻辑备份
mysqldump -u"$MYSQL_USER" -p"$MYSQL_PASS" --single-transaction --routines --triggers "$DB_NAME" \
> $BACKUP_ROOT/mysql/${DB_NAME}_$DATE.sql 2>>"$LOG"
# 2) 网站文件归档
tar -czf $BACKUP_ROOT/www/html_$DATE.tar.gz -C $WWW_DIR . 2>>"$LOG"
# 3) 配置归档
tar -czf $BACKUP_ROOT/conf/conf_$DATE.tar.gz -C / $(
echo $CONF_DIRS | xargs -n1 | sed 's/^/\//'
) 2>>"$LOG"
# 4) 远程集中(rsync over SSH)
rsync -avz --delete -e ssh $BACKUP_ROOT/ user@backup-server:/data/backup/$(hostname)/ 2>>"$LOG"
# 5) 本地保留策略:保留最近7天
find $BACKUP_ROOT/mysql -type f -mtime +7 -delete
find $BACKUP_ROOT/www -type f -mtime +7 -delete
find $BACKUP_ROOT/conf -type f -mtime +7 -delete
echo "[$DATE] Backup finished. See $LOG"
0 2 * * * /usr/local/bin/backup_lamp.sh/data/rsync_backup/客户端IP/... 存放,便于隔离与审计。五 恢复与校验要点
mysql -u 用户名 -p 数据库名 < 备份.sql;多库全量:mysql -u 用户名 -p < full_日期.sql。tar -xzvf /backup/www/html_日期.tar.gz -C /var/www/htmltar -xzvf /backup/conf/conf_日期.tar.gz -C /