我是一个Unix/Linux n00b。我有一个带有WHM/cPanel的运行CentOS的VPS。我介绍了安装ASSP,这是一个第三方反垃圾邮件解决方案.一切都很好。
ASSP配置的cron作业之一是一个PHP脚本,它查找安装在服务器上的域/子域列表,并自动重新构建带有这些域列表的纯文本文件,每行一个。
有关的cron条目如下:
*/59 * * * * /usr/local/cpanel/3rdparty/bin/php-cgi /usr/local/assp/deluxe/ex_localdomains.php我需要做的是手动添加一个固定的额外行到这个文件的末尾和域列表。用文本编辑器手动执行它是可行的,但是由于cron作业每小时运行一次,我的行每小时都会被删除。
简单的方法是在执行的PHP文件的末尾添加一些代码来完成这一任务,但是PHP文件是离子立方体编码的,所以这是不可以的。
相反,我创建了一个PHP脚本,该脚本将一行附加到文件的末尾。以这种方式通过SSH (root登录)执行此命令.
/usr/local/cpanel/3rdparty/bin/php-cgi /usr/local/assp/deluxe/add_manual_domain.php...works太棒了!它将我需要的行添加到文件的末尾。因此,我将crontab (crontab -e)中的cronjob修改如下:
*/59 * * * * /usr/local/cpanel/3rdparty/bin/php-cgi /usr/local/assp/deluxe/ex_localdomains.php && /usr/local/cpanel/3rdparty/bin/php-cgi /usr/local/assp/deluxe/add_manual_domain.php我假设这将执行重建,然后运行我的脚本,在rebuld完成后将该行添加到文件的末尾。
然而,它并不能做到这一点。该文件已成功重建,但未将额外的行添加到我的文件中。但是,从命令行手动运行我的小PHP脚本是可行的。
有人能解释一下这件事吗?
发布于 2011-09-05 14:10:10
cron处理程序对&&的解释可能与预期不同。(不知道使用的是哪个cron软件,我就无法确切地知道正在发生什么.)
只需编写一个新的2行脚本,其中包含两个PHP命令(每个命令在各自的行上)。实际上,在这个脚本中,您最好将两个文件放在一起,而不是使用PHP添加额外的行。
然后从cron运行这个新脚本,而不是当前cron行。
那样容易多了。
不要忘记将脚本上的权限设置为“执行”。
编辑:刚看到OG的评论。";“可能会工作,但是(比如&)这在一定程度上取决于crontab处理事物的方式。
https://serverfault.com/questions/308303
复制相似问题