商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > 怎样在LNMP中实现自动备份

怎样在LNMP中实现自动备份

  发布于2026-07-11 阅读(0)

扫一扫,手机访问

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

怎样在LNMP中实现自动备份

1. 文件备份

rsync 还是 tar,看你的需求

备份网站文件,最常用的两个工具是 rsynctar,各有各的适用场景。

如果希望每次增量同步、只传变化的部分,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/website

2. 数据库备份

mysqldump 导出SQL

数据库备份没什么花哨的,mysqldump 是标准答案:

mysqldump -u username -p database_name > /path/to/backup/location/database_backup.sql

注意这里的用户名、密码和数据库名要替换成你实际的。建议在命令里加上 --single-transaction 防止锁表,生产环境尤其重要。

3. 定时任务设置

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 的方式(注意安全)。

4. 自动化脚本

把上面所有步骤写进一个脚本里,维护起来就方便多了。创建一个 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

这样维护起来更清晰,也方便以后扩展——比如增加日志、邮件通知等。

5. 安全性考虑

备份本身是为了安全,但备份文件如果不注意防护,反而可能成为新的风险点。几个要点值得注意:

  • 存储位置:别把备份放在同一台服务器上,至少也要放到另一块磁盘或远程存储,否则服务器宕机时备份跟着一起丢。
  • 加密:如果备份文件涉及敏感数据,用 gpgopenssl 加密一下,以防备份文件被窃取。
  • 清理旧备份:磁盘空间是有限的,建议在脚本里加上删除30天前备份的逻辑,比如 find /path/to/backup -type f -name "*.tar.gz" -mtime +30 -delete

把以上步骤走通,你的 LNMP 环境就算是有了一个可靠的自动备份体系。数据安全这件事,从来不是一次性的配置,而是需要定期检查和优化的习惯。

本文转载于:https://www.yisu.com/ask/56514998.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注