首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Arch Linux中的Cronie设置

Arch Linux中的Cronie设置
EN

Stack Overflow用户
提问于 2020-01-24 02:10:27
回答 1查看 2.9K关注 0票数 1

这是我在debian上运行的crontab,它每5分钟运行一次。

代码语言:javascript
复制
*/05 * * * * user /usr/bin/php /var/www/monitoring/cron/status.cron.php

我能够在我的浏览器或php cli中执行脚本status.cron.php,脚本按预期工作。

现在我被迫在Arch Linux中运行相同的脚本,问题是,Arch使用系统/计时器,但我不习惯它,然后我听说了cronie,并决定尝试一下,这是我到目前为止得到的:

cronie已安装并正在运行,请参阅:

代码语言:javascript
复制
● 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的文件,该文件如下:

代码语言:javascript
复制
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的新文件,该文件如下:

代码语言:javascript
复制
#!/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来检查作业是否正在运行,我得到了很多类似下面这样的条目:

代码语言:javascript
复制
Jan 24 00:58:01 user-pc CROND[32175]: (root) CMD (run-parts /etc/cron.minutely #Runs a cron job script every minute)

它看起来像预期的那样运行。

感谢大家在这方面的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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运行并公开敏感信息)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59884747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档