发布于2026-07-11 阅读(0)
扫一扫,手机访问
在LNMP(Linux, Nginx, MySQL, PHP)环境下做自动备份,其实核心就是三件事:文件怎么存、数据库怎么倒、任务怎么定时跑。下面把完整流程拆开讲,每一步都配好命令和思路,方便你直接上手。

rsync 还是 tar,看你的需求备份网站文件,最常用的两个工具是 rsync 和 tar,各有各的适用场景。
如果希望每次增量同步、只传变化的部分,rsync 是首选:
rsync -a vz --delete /path/to/your/website /path/to/backup/location如果更想要一个压缩归档包,方便下载或迁移,那就用 tar:
tar -czvf /path/to/backup/location/backup-$(date +%Y%m%d).tar.gz /path/to/your/websitemysqldump 导出SQL数据库备份没什么花哨的,mysqldump 是标准答案:
mysqldump -u username -p database_name > /path/to/backup/location/database_backup.sql注意这里的用户名、密码和数据库名要替换成你实际的。建议在命令里加上 --single-transaction 防止锁表,生产环境尤其重要。
cron 让一切自动化文件备份和数据库备份的命令都准备好了,剩下的就是让系统按时执行。编辑当前用户的 crontab:
crontab -e然后加入类似这样的定时任务:
# 每天凌晨2点备份网站文件和数据库0 2 * * * rsync -a vz --delete /path/to/your/website /path/to/backup/location0 2 * * * mysqldump -u username -p database_name > /path/to/backup/location/database_backup_$(date +%Y%m%d).sql如果不想每次输入密码,可以创建一个 ~/.my.cnf 文件存放凭据,或者在脚本里用 --password=xxx 的方式(注意安全)。
把上面所有步骤写进一个脚本里,维护起来就方便多了。创建一个 backup.sh:
#!/bin/bash# 备份文件rsync -a vz --delete /path/to/your/website /path/to/backup/location# 备份数据库mysqldump -u username -p database_name > /path/to/backup/location/database_backup_$(date +%Y%m%d).sql# 可选:压缩备份文件cd /path/to/backup/locationtar -czvf backup_$(date +%Y%m%d).tar.gz .别忘了赋权:
chmod +x /path/to/backup.sh然后在 crontab 里只保留一行:
0 2 * * * /path/to/backup.sh这样维护起来更清晰,也方便以后扩展——比如增加日志、邮件通知等。
备份本身是为了安全,但备份文件如果不注意防护,反而可能成为新的风险点。几个要点值得注意:
gpg 或 openssl 加密一下,以防备份文件被窃取。find /path/to/backup -type f -name "*.tar.gz" -mtime +30 -delete。把以上步骤走通,你的 LNMP 环境就算是有了一个可靠的自动备份体系。数据安全这件事,从来不是一次性的配置,而是需要定期检查和优化的习惯。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8