这是我在debian上运行的crontab,它每5分钟运行一次。
*/05 * * * * user /usr/bin/php /var/www/monitoring/cron/status.cron.php我能够在我的浏览器或php cli中执行脚本status.cron.php,脚本按预期工作。
现在我被迫在Arch Linux中运行相同的脚本,问题是,Arch使用系统/计时器,但我不习惯它,然后我听说了cronie,并决定尝试一下,这是我到目前为止得到的:
cronie已安装并正在运行,请参阅:
● cronie.service - Periodic Command Scheduler
Loaded: loaded (/usr/lib/systemd/system/cronie.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2019-12-23 00:40:31 +07; 1 months 1 days ago
Main PID: 631 (crond)
Tasks: 1 (limit: 4620)
Memory: 5.4M
CGroup: /system.slice/cronie.service
└─631 /usr/bin/crond -n
Jan 24 00:41:01 user-pc CROND[31933]: (root) CMD (run-parts /etc/cron.minutely #Runs a cron job script every minute)在/etc/cron.d目录中创建了一个名为monitoring的文件,该文件如下:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
*/1 * * * * root run-parts /etc/cron.minutely #Runs a cron job script every minute
01 * * * * root run-parts /etc/cron.hourly #Runs a cron job script every hour
02 4 * * * root run-parts /etc/cron.daily #Runs a cron job script every day
22 4 * * 0 root run-parts /etc/cron.weekly #Runs a cron job script every week
42 4 1 * * root run-parts /etc/cron.monthly #Runs a cron job script every month在/etc/中创建了一个名为cron.minutely的新目录,然后在其中创建了一个名为monstatuscron的新文件,该文件如下:
#!/usr/bin/php
#*/01 * * * * user /usr/bin/php /var/www/monitoring/cron/status.cron.php
#/usr/bin/php /var/www/monitoring/cron/status.cron.php
/usr/bin/php /var/www/monitoring/cron/status.cron.php我猜这个文件应该是一个脚本,因为它说它是Arch文档,但是什么类型的脚本呢?shell脚本和指令来运行我的php脚本?还有别的吗?我注释了#!/usr/bin/php下面的两行,因为它不工作。我被困在这一点上了。
我还运行命令journalctl -xb -u cronie来检查作业是否正在运行,我得到了很多类似下面这样的条目:
Jan 24 00:58:01 user-pc CROND[32175]: (root) CMD (run-parts /etc/cron.minutely #Runs a cron job script every minute)它看起来像预期的那样运行。
感谢大家在这方面的帮助。
发布于 2020-01-24 02:38:55
shebang不应该是#!/usr/bin/php,而应该是#!/usr/bin/env bash或#!/bin/bash。这是因为Bash是ArchLinux的默认外壳--这是一个外壳脚本,调用的是PHP脚本。还要确保chmod +x cron.minutely/*.sh,以便可以执行它。不需要将PHP-CLI脚本放到/var/www中,因为它们可以在任何地方运行(在那里,它们最终可以通过PHP-SAPI运行并公开敏感信息)。
https://stackoverflow.com/questions/59884747
复制相似问题