CentOS LAMP备份恢复方法
数据库是LAMP环境的核心数据存储,需优先备份。常用mysqldump工具导出结构和数据为SQL文件,支持加密压缩以提升安全性。
mysqldump -u [用户名] -p[密码] [数据库名] > [备份文件名].sql命令(如mysqldump -u root -p123456 mydb > mydb_backup.sql),执行后会提示输入密码,生成的SQL文件包含建表语句和数据。mysqldump -u root -p mydb | gzip > mydb_backup.sql.gz。backup_db.sh),包含数据库配置、备份目录创建、压缩及旧备份清理(保留7天),并通过crontab -e设置定时任务(如每天凌晨2点执行)。网站文件(HTML、CSS、PHP、图片等)存放在Apache默认目录/var/www/html/,需定期打包备份。
tar命令将网站目录打包为.tar.gz文件,如tar -czvf /backup/web_files_$(date +%Y%m%d).tar.gz -C /var/www/html .,-C参数指定目录,.表示当前目录所有内容。rsync工具仅同步变化的文件,节省时间和存储,如rsync -avz --delete /var/www/html/ /backup/web_files/,--delete参数删除目标目录中源目录不存在的文件,保持同步。Apache、PHP的配置文件需备份,避免系统重装或配置丢失时重新配置。
/etc/httpd/目录(含虚拟主机、模块配置),如cp -r /etc/httpd/ /backup/httpd_config/。/etc/php.ini文件(PHP核心配置),如cp /etc/php.ini /backup/php_config/。使用tar命令打包整个系统(排除临时目录、虚拟文件系统等),生成可恢复的系统镜像。
tar cvpzf /backup/system_backup_$(date +%Y%m%d).tar.gz --exclude=/proc --exclude=/lost+found --exclude=/backup --exclude=/mnt --exclude=/sys /,-cvpzf参数分别表示创建、显示进度、压缩(gzip)、指定文件名,--exclude排除无需备份的目录。使用dd命令备份整个磁盘(如系统盘/dev/sda),生成镜像文件,适合灾难恢复(如磁盘损坏)。
dd if=/dev/sda of=/backup/disk_img_$(date +%Y%m%d).img bs=4M,if指定输入文件(磁盘设备),of指定输出文件(镜像文件),bs设置块大小(提升速度)。将备份的SQL文件导入数据库,恢复结构和数据。
mysql -u [用户名] -p[密码] [数据库名] < [备份文件名].sql命令(如mysql -u root -p123456 mydb < mydb_backup.sql);若数据库不存在,需先创建数据库(mysql -u root -p -e "CREATE DATABASE mydb;"),再执行导入。gunzip < mydb_backup.sql.gz | mysql -u root -p mydb。解压备份的.tar.gz文件到原网站目录,覆盖现有文件。
tar -xzvf /backup/web_files_20250101.tar.gz -C /var/www/html/,-x表示解压,-C指定目标目录。将备份的配置目录复制回原路径,覆盖现有配置。
cp -r /backup/httpd_config/* /etc/httpd/(恢复Apache配置)、cp /backup/php_config/php.ini /etc/php.ini(恢复PHP配置)。从系统镜像文件恢复整个系统,需从Live CD或USB启动进入救援模式。
mount /dev/sda1 /mnt),执行tar xvpfz /backup/system_backup_20250101.tar.gz -C /mnt,解压镜像到挂载目录,完成后重启系统。将镜像文件写入磁盘,恢复整个磁盘内容(需确保目标磁盘容量不小于镜像文件大小)。
dd if=/backup/disk_img_20250101.img of=/dev/sda bs=4M,执行后目标磁盘将完全恢复为镜像文件的状态。