有没有办法在 LAMP 上自动备份整个网站(包括文件和数据库)?
phpMyAdmin 可用。
我想将压缩文件和数据库 sql 保存在 www 目录上方的文件夹中,以便没有人可以在线访问它。
答案1
编写一个 shell 脚本来执行此操作并从 cron 调用它(如果您有权访问 cron)非常简单。如果您由于托管服务而无法访问 cron,则可以创建一个秘密的 php 文件,然后从其他具有 cron 的计算机调用该文件(我在家里使用 Linux 机器来做类似的事情)。
请记住,备份只有在以下情况下才算真正的备份:
- 它位于多个位置,而不仅仅是在同一台计算机上
- 您已通过恢复它(无论是恢复到真实站点还是测试站点)证明它是有效的
我使用包含以下内容的 shell 脚本来备份 wordpress 网站
#!/bin/sh
mysqldump --opt --user=wordpress wordpress > /backup_1/wordpress.db.transfer
tar cvfz /backup_1/wordpress.tar.gz /www/wordpress
但是我有另一个备份过程,它将 /backup_1 通过网络复制到另一台远程机器。
答案2
rsnapshot 是备份所有文件/文件夹的绝佳工具:
大多数 Linux 发行版都已为其提供了一个软件包。设置起来非常简单 - 查看 /etc/rsnapshot.conf,其中有很多注释。
但是对于 MySQL,您需要单独转储数据库以避免复制不一致的文件。AutoMySQLBackup 在过去为我提供了很好的服务:
http://sourceforge.net/projects/automysqlbackup/
它也很容易设置。这两个工具都应该从 cron 运行。
希望这可以帮助。