Ubuntu LAMP备份与恢复实操指南
一 备份范围与策略
二 数据库备份与恢复
mysqldump -u root -p dbname > dbname_backup.sqlCREATE DATABASE dbname;),再导入:mysql -u root -p dbname < dbname_backup.sqlmysqldump -u root -p --all-databases > all_databases.sqlmysqlpump -u root -p dbname > dbname_pump.sqlsudo apt-get install percona-xtrabackupxtrabackup --backup --user=root --password=YOUR_PASS --target-dir=/backup/xtra_$(date +%F)xtrabackup --prepare --target-dir=/backup/xtra_$(date +%F)rsync -avz /backup/ user@remote:/backup/示例汇总表:
mysqldump -u root -p db > db.sql | mysql -u root -p db < db.sqlmysqldump -u root -p --all-databases > all.sql | mysql -u root -p < all.sqlmysqlpump -u root -p db > db_pump.sql | 导入同左xtrabackup --backup ... | --prepare 后在目标库导入/恢复三 网站文件与配置备份与恢复
tar -czvf /backup/website_$(date +%F).tar.gz -C /var/www/html .tar -xzvf /backup/website_YYYY-MM-DD.tar.gz -C /var/www/htmlsudo cp -a /etc/apache2 /backup/apache2_$(date +%F)(按需扩展至 sites-available、php.ini 等)sudo cp -a /backup/apache2_YYYY-MM-DD/* /etc/apache2/ 并 sudo systemctl reload apache2sudo chown -R www-data:www-data /var/www/htmlrsync -avz /var/www/html/ user@remote:/var/www/html/rsync -avz user@remote:/var/www/html/ /var/www/html/四 自动化与异地备份
0 2 * * * mysqldump -u root -p'YOUR_DB_PASS' --single-transaction --routines --triggers dbname | gzip > /backup/db_$(date +\%F).sql.gz0 3 * * * tar -czf /backup/www_$(date +\%F).tar.gz -C /var/www/html .0 4 * * * rsync -avz --delete /backup/ user@remote:/backup/五 迁移与灾难恢复
sudo apt update && sudo apt install apache2 mariadb-server php libapache2-mod-php php-mysql php-fpm -y/var/log/apache2/error.log、/var/log/mysql/error.log。sudo mount /dev/sda1 /mntsudo chroot /mnt,用 rsync/cp 将备份拷回,或 tar 解压;退出后重启。--force 分批导入。