linux的cron mysqldump:php exec()vs shell脚本vs直接命令在crontab中

系统运行CENTOS 5.8,Apache 2.2.3,MySQL 5.0.95,PHP 5.3.3

我们每天为一些数据库运行mysqldump。 它通过在crontab中调用的php脚本运行。

它们同时运行,并导致服务器负载高峰。 所以我要错开被称为垃圾堆的时代。

我想知道是否直接在crontab中调用命令:

0 3 * * * /usr/bin/mysqldump -u XXX -p XXX params db_name | gzip params > /var/www/backups/database/daily/daily-db_name-`date +\%d`.tar.gz 

或者通过shell脚本来设置variables。

比调用一个使用exec()的php脚本的负载要less一些:

 exec( "/usr/bin/mysqldump -u XXX -p XXX params db_name | gzip params > /var/www/backups/database/daily/daily-db_name-`date +\%d`.tar.gz" ); 

我正在考虑进行一个testing,但是想要检查这是否是一个“无脑的”。

结果

进行一些testing,不同方法的负载没有明显的差异。 我想这可能会对涉及很多进程的不同types的操作产生影响。

正在使用的php文件在我们的svn仓库中被跟踪,所以最好保持这种方式。

第一个例子的负载较less – 产生/启动的进程较less。 实际上,它可能不是一个可见的较小的负载,但绝对而言,它是较less的。