Ubuntu LAMP 备份与恢复实操指南
一 备份范围与策略
二 数据库备份
mysqldump -u 用户名 -p 数据库名 > backup.sqlmysqldump -u 用户名 -p --all-databases > all.sqlmysqldump -u 用户名 -p 数据库名 表名 > table.sqlmysqlpump -u 用户名 -p 数据库名 > backup.sqlsudo apt-get install percona-xtrabackup-24xtrabackup --backup --user=用户名 --password=密码 --target-dir=/path/to/backupxtrabackup --prepare --target-dir=/path/to/backup三 网站文件与配置备份
sudo tar -czvf /backup/website_$(date +%F).tar.gz /var/www/htmlsudo tar -czvf /backup/config_$(date +%F).tar.gz /etc/apache2 /etc/php /etc/mysql /etc/sslrsync -aAXv --delete /var/www/html/ user@backup:/backup/www/-aAX 保留权限/ACL/xattrs;--delete 保持两端一致;敏感目录(如 /proc、/sys、/dev、/run)不应纳入常规文件备份。四 自动化与本地系统快照
#!/bin/bash
DB_USER="root"
DB_PASS="你的密码"
DB_NAME="your_db"
BACKUP_DIR="/backup/mysql"
mkdir -p "$BACKUP_DIR"
FILE="$BACKUP_DIR/${DB_NAME}_$(date +%F_%H-%M-%S).sql.gz"
mysqldump -u"$DB_USER" -p"$DB_PASS" "$DB_NAME" | gzip > "$FILE"
# 保留最近7天
find "$BACKUP_DIR" -type f -mtime +7 -name "*.sql.gz" -delete
chmod +x /usr/local/bin/backup_mysql.sh
sudo crontab -e
0 2 * * * /usr/local/bin/backup_mysql.sh >> /var/log/backup_mysql.log 2>&1
sudo apt install timeshift,按向导选择备份位置与计划。五 恢复步骤与校验
mysql -u 用户名 -p 数据库名 < backup.sqlgunzip < backup.sql.gz | mysql -u 用户名 -p 数据库名xtrabackup --prepare,再按官方流程将备份拷贝回 /var/lib/mysql 并启动 MySQL(注意文件属主/权限)。sudo tar -xzvf /backup/website_2025-08-01.tar.gz -C /var/www/htmlsudo tar -xzvf /backup/config_2025-08-01.tar.gz -C /SELECT COUNT(*)、重要文件 md5sum)、定期做恢复演练并记录校验日志,确保关键时刻可用。