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

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脚本来设置变量。

比调用使用 exec() 的 php 脚本的负载要小:

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" );

我正在考虑进行测试,但想检查这是否是“无需动脑筋的事情”。

结果

进行了一些测试,不同方法的负载没有明显差异。我猜对于涉及很多流程的不同类型的操作来说,这可能会有所不同。

正在使用的 php 文件在我们的 svn 存储库中进行跟踪,因此最好采用这种方法。

答案1

第一个例子的负载较小 - 它需要生成/启动的进程较少。实际上,负载可能不是明显的较小,但从绝对意义上讲,负载较小。

相关内容