在CentOS系統中,LNMP指的是Linux、Nginx、MySQL和PHP的組合。備份和恢復LNMP環境涉及多個組件,下面是各個組件的備份與恢復方法:
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服務
mysqldump -u root -p --all-databases > /backup/mysql_backup.sql
mysql -u root -p < /backup/mysql_backup.sql
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
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
保存并退出編輯器。