CentOS LAMP环境备份与恢复指南
使用mysqldump工具备份MySQL/MariaDB数据库,支持完整备份和自定义数据库选择,备份文件为可执行的SQL脚本。
命令示例:mysqldump -u root -p 数据库名 > /backup/数据库名_$(date +%Y%m%d).sql
说明:执行后会提示输入数据库密码,备份文件保存到指定目录(如/backup),文件名包含日期便于区分。
网站文件通常存放在/var/www/html/(Apache默认路径)或自定义目录,使用tar命令打包压缩,保留目录结构。
命令示例:tar -czvf /backup/website_$(date +%Y%m%d).tar.gz -C /var/www/html .
说明:-C参数指定源目录,.表示当前目录所有内容;压缩后的.tar.gz文件便于存储和传输。
备份Apache、PHP等服务的配置文件,避免恢复时重新配置。
命令示例:
cp -r /etc/httpd/ /backup/apache_config/cp /etc/php.ini /backup/php_ini.conf使用rsync工具仅备份自上次备份以来变化的文件,适合频繁更新的网站文件。
命令示例:rsync -avz --delete /var/www/html/ /backup/incremental/
说明:-a保留文件属性,-v显示详细过程,--delete删除目标目录中源目录不存在的文件(保持同步);可结合crontab设置每日增量备份。
使用crontab设置定时任务,自动执行备份脚本。
操作步骤:
/usr/local/bin/backup_lamp.sh,写入备份命令(如数据库、网站文件、配置文件);chmod +x /usr/local/bin/backup_lamp.sh;crontab -e,添加0 3 * * * /usr/local/bin/backup_lamp.sh(每天凌晨3点执行)。将备份的SQL文件导入目标数据库,恢复表结构和数据。
命令示例:mysql -u root -p 数据库名 < /backup/数据库名_20250910.sql
说明:需提前创建同名数据库(mysql -u root -p -e "CREATE DATABASE 数据库名;"),导入前确保数据库服务运行。
使用tar解压备份的网站文件包,覆盖目标目录。
命令示例:tar -xzvf /backup/website_20250910.tar.gz -C /var/www/html/
说明:-x解压,-z处理gzip压缩,-C指定目标目录;恢复前建议备份当前网站文件,防止数据覆盖丢失。
将备份的配置文件复制回原目录,覆盖现有配置。
命令示例:
cp -r /backup/apache_config/* /etc/httpd/cp /backup/php_ini.conf /etc/php.inisystemctl restart httpd)。若系统崩溃,可使用tar备份的全量系统文件恢复(需从Live CD或救援模式进入)。
命令示例:tar xvpfz /backup/system_20250910.tar.gz -C /
说明:恢复前需挂载原系统分区(如/dev/sda1到/mnt),并排除/proc、/sys等虚拟目录;恢复后需重新安装内核和引导程序。