在Debian上使用LNMP(Linux, Nginx, MySQL/MariaDB, PHP)环境时,备份是一个关键任务,以确保数据的安全性和可恢复性。以下是一些常用的备份策略和方法:
完整备份:
tar
命令创建一个包含整个系统文件和数据的压缩备份。例如:sudo tar -czvf /backup/backup-full.tar.gz --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/tmp --exclude=/run --exclude=/lostfound /
这个命令会备份根目录下的所有内容,并排除一些不需要备份的目录。增量备份:
rsync
命令进行增量备份,它只备份自上次备份以来发生变化的数据。例如:rsync -avz /path/to/source/ /path/to/destination/
使用 rsync
的 -z
选项进行压缩,-a
选项保持文件属性,-v
选项显示详细输出。加密增量备份:
duplicity
工具进行加密增量备份。例如:duplicity --full-if-older-than 1M /path/to/source/ file:///backup/destination/
这个命令会创建一个加密的备份,并且只备份超过1MB的文件。磁盘克隆和备份:
Clonezilla
进行磁盘克隆和备份,支持备份和恢复整个系统。适合需要完整系统恢复的情况。自动化备份脚本:
crontab
命令创建定时任务,自动执行备份脚本。例如,每天午夜执行备份:0 0 * * * /path/to/backup_script.sh
备份脚本可以包含上述的备份命令,并且可以设置为定期执行。备份MySQL数据库:
mysqldump
命令备份MySQL数据库。例如:mysqldump -u username -p mydatabase > mydatabase_backup.sql
mysqlpump
工具(适用于MySQL 5.7及以上版本):mysqlpump -u username -p mydatabase > mydatabase_backup.sql
备份Nginx配置和网站文件:
sudo systemctl stop nginx
sudo cp -r /etc/nginx /etc/nginx.backupsudo cp -r /var/www /var/www.backup
sudo systemctl start nginx
备份PHP配置文件:
/etc/php/
目录下,具体路径可能因PHP版本而异。可以使用 cp
命令来备份这些文件:sudo cp -r /etc/php /etc/php.backup
备份其他重要文件:
恢复Nginx配置和网站文件:
sudo systemctl stop nginx
sudo cp -r /path/to/backup/ /etc/nginx/
sudo systemctl start nginx
恢复MySQL数据库:
sudo systemctl stop mariadb
sudo cp database_name.sql /var/lib/mysql/
sudo systemctl start mariadb
mysql -u username -p
并输入密码以恢复数据库。恢复PHP配置和网站代码:
sudo cp /path/to/backup/www.conf /etc/php/版本/fpm/pool.d/
sudo cp -r /path/to/backup/ /var/www/html/