2011-08-24 164 views
0

我想安排一个cron作业,它可以直接使用mysqldump,也可以调用执行mysqldump的脚本。我的问题是,因为mysqldump需要提供密码,是否可以直接作为cron作业来执行mysqldump?如果不是,在使用脚本时,保护密码的最安全的方法是什么?MySQL数据库备份 - 安全方式

+0

由cron推出的[mysqldump的可能重复和密码安全](http://stackoverflow.com/questions/6861355/mysqldump-launched-by-cron-and-password-security) – cdhowie

回答

1

我想你应该:

  1. 创建文件,该文件将存储你登录/密码,并在其上设置最低权限。
  2. 创建bash脚本/ php/perl脚本,它将运行mysqldump命令并从该文件读取设置。
  3. 将此脚本设置为cron。

但是,如果您在root下运行cron,那么您可以直接在cron中指定用户/密码,因为只有限制数量的用户才能查看该文件。

+2

这仍然是非常不安全的。即使只有root可以读取该文件,任何人都可以运行ps ax | grep mysql'并查看在命令行中指定的密码。正确的方法是使用配置文件;看到上面链接的重复问题。 – cdhowie

+0

您可以设置进程权限。看看这篇关于Solaris的文章http://blogs.oracle.com/gbrunett/entry/forcing_users_to_see_only –

+0

当然,你可以这样做,但这在某种程度上与操作系统有关。此外,配置文件方法在您没有root访问权限且无法重新配置此类情况的情况下可用。 – cdhowie

0

您可以将密码写入脚本文件,并仅将其设置为权限root用户。比在crontab中定义它。

除非以root用户身份登录,否则任何人都无法看到它。如果别人可以作为root用户mysql的密码登录不会是你的主要问题,反正..

你也可以使用一个特定的用户,而不是只用必要的权限根..