数据库是网站数据的核心,需优先备份。推荐使用mysqldump(逻辑备份,兼容性强)或mysqlpump(MySQL 5.7+,支持并行备份)。
命令示例:
# 逻辑备份(生成SQL脚本,可跨版本恢复)
mysqldump -u [用户名] -p[密码] [数据库名] > /path/to/backup/[数据库名]_$(date +%Y%m%d).sql
# 示例:备份名为"mywebsite"的数据库
mysqldump -u root -pMySecretPassword mywebsite > /backups/mywebsite_$(date +%Y%m%d).sql
注意事项:
-p(无空格)交互式输入,或通过配置文件(如~/.my.cnf)存储凭据;Nginx配置文件决定了服务器的网络行为,网站文件(HTML、CSS、JS、图片等)是用户访问的内容,均需完整备份。
命令示例:
# 备份Nginx配置文件(/etc/nginx目录)
sudo tar -czvf /backups/nginx_$(date +%Y%m%d).tar.gz /etc/nginx/
# 备份网站文件(默认路径/var/www/html)
sudo tar -czvf /backups/website_$(date +%Y%m%d).tar.gz /var/www/html/
注意事项:
sudo systemctl stop nginx && sudo tar -czvf /backups/nginx_$(date +%Y%m%d).tar.gz /etc/nginx/ && sudo systemctl start nginx
/etc/ssl/certs(证书)和/etc/ssl/private(私钥)目录。PHP配置文件影响脚本运行环境,网站代码(如WordPress、自定义应用)需同步备份。
命令示例:
# 备份PHP配置文件(以PHP 7.4为例,路径可能因版本调整)
sudo tar -czvf /backups/php_$(date +%Y%m%d).tar.gz /etc/php/7.4/fpm/pool.d/ /etc/php/7.4/fpm/php.ini
# 备份网站代码(若代码不在/var/www/html,调整路径)
sudo tar -czvf /backups/code_$(date +%Y%m%d).tar.gz /var/www/html/
注意事项:
git clone或git pull快速恢复代码;wp-content目录(包含上传的文件、主题、插件)。手动备份易遗漏,建议通过crontab设置定时任务。
操作步骤:
sudo crontab -e
0 2 * * * /bin/bash /path/to/backup_script.sh > /dev/null 2>&1
/path/to/backup_script.sh):#!/bin/bash
BACKUP_DIR="/backups"
DATE=$(date +%Y%m%d)
# 备份Nginx
sudo tar -czvf "$BACKUP_DIR/nginx_$DATE.tar.gz" /etc/nginx/
# 备份网站文件
sudo tar -czvf "$BACKUP_DIR/website_$DATE.tar.gz" /var/www/html/
# 备份MySQL
mysqldump -u root -pMySecretPassword mywebsite > "$BACKUP_DIR/mywebsite_$DATE.sql"
# 删除7天前的备份(保留最近7天)
find "$BACKUP_DIR" -name "*.tar.gz" -mtime +7 -delete
find "$BACKUP_DIR" -name "*.sql" -mtime +7 -delete
chmod +x /path/to/backup_script.sh
恢复前需确保目标数据库已存在(若不存在,先创建):
# 登录MySQL
mysql -u root -p
# 创建数据库(若不存在)
CREATE DATABASE mywebsite;
# 退出MySQL
exit
恢复命令:
# 将备份的SQL文件导入数据库
mysql -u [用户名] -p[密码] [数据库名] < /path/to/backup/[数据库名]_备份日期.sql
# 示例:恢复"mywebsite"数据库
mysql -u root -pMySecretPassword mywebsite < /backups/mywebsite_20250930.sql
注意事项:
pv工具监控进度。恢复命令:
# 恢复Nginx配置文件
sudo tar -xzvf /backups/nginx_备份日期.tar.gz -C /
# 恢复网站文件
sudo tar -xzvf /backups/website_备份日期.tar.gz -C /
后续操作:
sudo nginx -t
sudo systemctl reload nginx
恢复命令:
# 恢复PHP配置文件(以PHP 7.4为例)
sudo tar -xzvf /backups/php_备份日期.tar.gz -C /
# 恢复网站代码
sudo tar -xzvf /backups/code_备份日期.tar.gz -C /
后续操作:
sudo systemctl restart php7.4-fpm
若使用LNMP一键安装包(如Oneinstack),可通过其自带的备份/恢复功能简化操作:
/usr/local/src/lnmp);./restore.sh),按提示选择备份文件路径;gpg加密SQL文件);chmod 700 /backups)。