在PHP或shell中编写备份脚本会更好吗?

我有一个运行Ubuntu 10的服务器,它主要有PHP数据库的网站。

我需要编写一个备份脚本

  1. 备份数据库
  2. 压缩所有的PHP文件。

在PHP或shell中编写我的备份脚本是否更安全? 还是不重要?

我更喜欢PHP,因为这让我只有一个地方PHP数据库的密码。

如果我在shell中写这个,那么我需要把数据库密码放在shell脚本中。 当我改变密码的时候,我需要在两个地方改变它。

从安全angular度来讲,最好的办法是,如果你的mysql密码根本不被暴露/在脚本中硬编码。 如果您计划执行外部工具(如mysqldump),则php和shell脚本都需要解密密码才能备份数据库 – 不,没有额外的安全性,无论您select哪种解决scheme。 关于最后一个问题,shell脚本很容易从phpconfiguration文件中获取密码(提示:grep和sed在这里是你的朋友),所以你不需要在很多地方修改密码。 关于PHP与shell – php的cli做得相当不错,唯一的区别是,你可能不得不在PHP中编写大量的代码,在shell脚本适合一行。

以root身份编写脚本,将密码放入根目录的.my.cnf(权限为600)。 然后,您可以运行mysql命令,而不必传递密码。

我听到有百万人在尖叫 – 但我的逻辑很简单。 如果有人闯入你的服务器,并设法将他们的权限升级到root,你已经失去了,他们已经可以访问所有的东西了。

如果只有root用户可以读取.my.cnf,那么它就像把密码放到其他文件一样安全,但是这意味着你永远不会运行在命令行上传递密码的脚本, 任何用户都可以使用ps -ef读取密码。