centos

centos lnmp备份与恢复方案

小樊
37
2025-06-22 15:31:15
栏目: 智能运维

在CentOS系统中,LNMP指的是Linux、Nginx、MySQL和PHP的组合。备份和恢复LNMP环境涉及多个组件,下面是各个组件的备份与恢复方法:

备份Nginx配置文件

sudo cp -r /etc/nginx /etc/nginx_backup
sudo cp -r /etc/nginx_backup/nginx /etc/nginx/
sudo nginx -t # 检查配置文件是否有语法错误
sudo systemctl restart nginx # 重启Nginx服务

备份MySQL数据库

mysqldump -u root -p --all-databases > /backup/mysql_backup.sql
mysql -u root -p < /backup/mysql_backup.sql

备份PHP文件

sudo tar -czvf /backup/php_files_backup.tar.gz /var/www/html/
sudo tar -xzvf /backup/php_files_backup.tar.gz -C /

备份网站文件和数据库

sudo tar -czvf /backup/website_backup.tar.gz /etc/nginx /var/www/html /backup/mysql_backup.sql
sudo tar -xzvf /backup/website_backup.tar.gz -C /
sudo cp /backup/mysql_backup.sql /backup/mysql -u root -p < /backup/mysql_backup.sql
sudo systemctl restart nginx

使用rsync进行增量备份

sudo rsync -avz /etc/nginx /etc/nginx_backups
sudo rsync -avz /var/www/html /var/www/html_backups
sudo mysqldump -u root -p --all-databases > /backup/mysql_backup.sql
sudo rsync -avz /etc/nginx_backups/nginx /etc/nginx/
sudo rsync -avz /var/www/html_backups/ /var/www/html/
mysql -u root -p < /backup/mysql_backup.sql
sudo systemctl restart nginx

自动化备份脚本

你可以编写一个简单的脚本来自动化备份过程。以下是一个示例脚本:

#!/bin/bash
# 设置备份目录
BACKUP_DIR="/path/to/backup/location"
# 设置日期格式
DATE=$(date +"%Y%m%d%H%M%S")
# 备份MySQL数据库
mysqldump -u root -p your_database_name > "${BACKUP_DIR}/backup_your_database_name_${DATE}.sql"
gzip "${BACKUP_DIR}/backup_your_database_name_${DATE}.sql"
# 备份Nginx配置文件
cp -r /etc/nginx "${BACKUP_DIR}/nginx_backup_${DATE}"
tar -czvf "${BACKUP_DIR}/nginx_backup_${DATE}.tar.gz" -C "${BACKUP_DIR}" nginx_backup_${DATE}
rm -rf "${BACKUP_DIR}/nginx_backup_${DATE}"
echo "Backup completed successfully on ${DATE}"

将上述脚本保存为 backup.sh,然后赋予执行权限并运行:

chmod +x backup.sh
./backup.sh

定期备份

你可以使用 cron 作业来定期运行备份脚本。编辑 crontab 文件:

crontab -e

添加一行来设置备份频率,例如每天凌晨2点运行备份脚本:

0 2 * * * /path/to/backup.sh

保存并退出编辑器。

0
看了该问题的人还看了