在Debian系统上部署的LNMP(Linux, Nginx, MySQL/MariaDB, PHP)环境是企业和个人网站常用的架构。为了确保数据安全,定期备份和恢复是必不可少的。以下是一些基本的备份与恢复技巧。
备份Nginx配置和网站文件:
sudo systemctl stop nginxsudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backupssudo cp -r /etc/nginx/conf.d/* /etc/nginx/conf.d/backup/sudo systemctl start nginx备份MySQL/MariaDB数据库:
sudo mysql -u root -pUSE 数据库名;mysqldump -u 用户名 -p 密码 数据库名 > /root/backup/mysqlbackup/数据库名_$(date +%Y%m%d%H%M).sqlexit;备份PHP应用数据:
wp-content 目录下的文件:sudo cp -r /var/www/html/wp-content /root/backup/wordpress_backup/使用脚本自动化备份:
/root/backup_lnmp.sh,包含上述备份命令。sudo chmod +x /root/backup_lnmp.shsudo crontab -e,添加以下行以每分钟运行一次备份脚本(根据需要调整时间间隔):* * * * * /root/backup_lnmp.sh使用备份工具:
backup_setup.sh 和 backup.sh 脚本进行LNMP环境的备份设置和实际备份操作。rsync 进行增量备份,duplicity 进行加密增量备份,Clonezilla 进行磁盘克隆和备份。恢复Nginx配置和网站文件:
sudo cp -r /etc/nginx.backup/* /etc/nginx/
sudo cp -r /var/www.backup/* /var/www/
nginx -t 命令检查配置文件的语法正确性。nginx -s reload 命令重新加载配置文件。恢复MySQL数据库:
mysql 命令恢复数据库:mysql -u username -p mydatabase < /backups/mydatabase_backup.sql
恢复PHP配置和网站代码:
/etc/php/版本/fpm/pool.d/ 目录。/var/www 目录。恢复文件系统:
tar 命令解压备份文件到目标位置:sudo tar -xzvf /backups/www_backup_$(date +%Y%m%d).tar.gz -C /var/www/
rsync 进行备份,可以使用以下命令恢复:sudo rsync -avz /backups/www_backup_$(date +%Y%m%d)/ /var/www/
在进行备份和恢复操作时,请确保你有足够的权限,并且定期执行备份以保护数据安全。对于重要的生产环境,建议使用更高级的备份解决方案,如Bacula或Amanda,这些工具提供了更强大的备份和恢复功能。