Articles of cron

晚上closures监控警报

我有监控24/7/365监控,并发送警报到一个电子邮件地址和文字信息平等的手机。 不过,我现在想在晚上停止电话短信,所以他们不叫我起床。 我不能让手机静音,因为我们正在紧急呼吁任何可能需要我们的亲属。 我将在后面找出如何在任何时候“无法重新启动服务器”的短信。 我有这个在我的monitrc文件中: set alert [email protected] set alert [email protected] 所以我想通过添加类似于下面的东西(在单个服务“检查进程”文件中起作用)closuresvtext.com警报, not every "* 23,0-6 * * *" 任何想法如何实现? 谢谢,罗恩

WP-CLI不能从cronjob运行

我做了一个使用WP-CLI的bash脚本,并打算从cronjob运行。 它从SSH运行良好,但通过cron运行时失败。 在debugging过程中,我发现这是WP-CLI部分没有运行。 它根本没有输出。 我只用脚本的WP-CLI部分进行了testing。 我已经确认WP-CLI确实是这个问题: /home/username/script/test.sh cd /var/www/domain.com/ && wp post create –post-title="test" post-content="testing" –post-status=future 以下是通过crontab -e从用户帐户中添加的cronjob示例:(设置为每分钟运行以进行testing) */1 * * * * sh /home/username/script/test.sh 如果从SSH运行,脚本运行完美,但是从cron运行时脚本没有输出。 我试过添加| mail -s [email protected] | mail -s [email protected]到cronjob条目。 它将输出发送到我的电子邮件,但wp-cli命令没有输出。 我也尝试添加我的用户名到时间数据和命令之间的cronjob条目,以确保它是作为我的用户运行。 此外,我试图编辑bash脚本,并将其更改为mail -s "cool story bro" [email protected] ,并且工作正常,它完全忽略了WP-CLI。 我一直在寻找大约12个小时的答案。 我最近发现这个答案给别人的问题,我想这可能会有所帮助,但我不知道如何实现它。 https://serverfault.com/a/95736 我刚刚find了这个答案给别人的问题,似乎是实现他人的答案的方式,但它没有奏效。 https://serverfault.com/a/473961我正是用他发布的。 顺便说一下,这是在最新的Ubuntu服务器上运行。 请说明问题所在,以及如何解决。 或者只是如果你对此有所了解,评论什么的,我现在很绝望。

crontab中的符号链接,找不到脚本

我正在运行Debiantesting,不能得到一个简单的cron来运行符号链接的PHP脚本。 我有一个PHP脚本在我的家庭文件夹/home/foobar/dir/script.php (从下面的shebang #!/usr/bin/env php )的子目录中。 我创build了一个指向它的符号链接: sudo ln -s ~/dir/script.php /usr/local/bin/whatever ls -la /usr/local/bin lrwxrwxrwx 1 root staff 24 Feb 27 17:46 whatever -> /home/foobar/dir/script.php* 并将以下规则添加到我的crontab(每分钟执行一次): crontab -e * * * * * whatever 但它不起作用 ,我得到以下错误: cat /var/mail/foobar … /bin/sh: 1: whatever: not found 指向脚本时不使用符号链接工作 : crontab -e * * * * * /home/foobar/dir/script.php […]

cron不会执行第二部分的命令

经过仔细的回顾一般的“克朗”的答案 ,我仍然卡住了。 我的crontab读取: # mh dom mon dow command */5 * * * * /usr/bin/pkill -f process.py && /usr/bin/python /path/to/process.py > /path/to/process.log 2>&1 我希望process.py每5分钟重新启动一次。 pkill部分按预期工作, process.py每5分钟process.py一次。 但是 ,我的cron任务(重新启动process.py )的第二部分不会发生! – 日志文件/path/to/process.log不包含任何错误,实际上不会改变。 – 在cron之外运行命令。 – 看/var/log/syslog只显示cron执行命令,但是没有输出/错误似乎被logging在任何地方 – 我都试过 和两个命令之间的&& 。 不好。 任何build议,欢迎!

更改cron作业的shell

我有一个zsh脚本,我想每周通过anacron运行。 它从一个交互式的bash shell运行良好,但是当由anacron运行时,我得到的命令没有find错误,它看起来像是忽略了shebang线。 实际的/etc/cron.weekly/脚本是: #!/bin/sh [ -x SCRIPT ] || exit 1 su NORMAL_USER SCRIPT 而实际脚本的第一行是#!/bin/zsh 我怎样才能得到ant来尊重she?? 将NORMAL_USER的loginshell更改为zsh是否可以实现这一目标?

/etc/cron.daily中的两个脚本似乎在旋转我的日志:logrotate和sysklogd

看来我的syslog生成的日志文件每天轮换两次。 我相信这是由于/etc/cron.daily/logrotate和/etc/cron.daily/sysklogd做重叠的工作。 以下是sysklogd脚本的相关行: logs=$(syslogd-listfiles) test -n "$logs" || exit 0 for LOG in $logs do if [ -s $LOG ]; then savelog -g adm -m 640 -u ${USER} -c 7 $LOG >/dev/null fi done 处理这个问题的最佳常见做法是什么? syslog生成的文件是否应该在logrotate中列出? 如果我想使用一些logrotate的更高级的function,像postrotate脚本 – 我应该尝试使/etc/cron.daily/sysklogd做到这一点,或者我应该注释掉这些行,让logrotate做到这一点?

Cronexpression式中的“L”字符表示“本月的最后一天”

我正在写一篇关于cron的文章,目的是熟悉这个工具的人,但不一定经常使用它。 我希望这些例子能够与大多数常用的Unix桌面(post 2002 linux,bsd,osx)兼容。 在寻找“每月的最后一天”的cronexpression式时,我发现的大多数build议都build议使用将从每月的28到31运行的cronexpression式的组合,并将其与包含布尔date比较。 TODAY=`date +%m` # Computes the month for today (01-12) TOMORROW=`date –date=tomorrow +%m` # Computes the month for tomorrow (01-12) 0 0 28-31 * * [$TODAY -lt $TOMORROW] && command 这似乎是一个stream行的Unix技巧。 我最近偶然发现了关于Cronexpression式的这个维基百科文章 ,讨论了我在其他地方没有提到过的一些字符,甚至没有提到手册页。 根据文章,L字符可以在expression式中用来指定月份(或周)的最后一天。 哪个版本的cron支持这个? 它受到多大程度的支持? 为什么这么less知道?

在cron中使用lynx或wget来调用一个php脚本?

我正在检查一个特定的设置,他们有他们的crontab如下: 0 * * * * lynx http://www.example.com/cron/scriptA.php 当然,这依赖于“安全防护”的原则,因为互联网上的任何人知道这些文件的位置,都可以打电话给他们,并有可能使服务器超载。 除此之外,上面这个脚本运行的“模式”有没有什么内在的错误。 当我以root身份从命令提示符testinglynx http://www.example.com/cron/scriptA.php时 ,它促使我下载一个会话cookie,所以我想我至less应该修改上面的内容: lynx -accept_all_cookies http://www.example.com/cron/scriptA.php 或者我应该使用: wget -q -O /dev/nul http://www.example.com/cron/scriptA.php

从cron作业的结果发送带有附件的电子邮件

我有一个生成文本文件的cron作业。 我想这些文件作为附件发送到一个电子邮件地址。 它们显示为多部分MIME消息中的附件,而不仅仅是电子邮件正文中的文本,这一点很重要。 我已经阅读了关于sendmail和/ etc / crontab中的MAILTO参数,但是我不能写一个简单的例子来构build。 我的服务器上没有安装mutt,mail或mailx。

我怎么能告诉通过cron工作执行的脚本失败的原因?

在我的Linux机器上,我有典型的/etc/cron.hourly目录和脚本。 我用下面的简单代码创build了一个运行ruby脚本的代码: #!/bin/bash ruby /home/eltony/data_warehouse_scripts/import.rb 虽然我可以查看/var/log/cron.log并validation每小时cron正在运行,但脚本从不执行。 我不确定究竟是什么原因,但是我相信,当我在CLI中input该命令并敲入回车时,脚本就会运行,并执行它应该做的事情。 我真的不知道如何debugging这个问题,所以任何帮助将是伟大的。 权限看起来很好,因为它们与cron.hourly和cron.monthly中的所有脚本相同: -rwxr-xr-x 1 root root 65 Jun 3 12:53 le_warehouse_sync -rwxr-xr-x 1 root root 268 Nov 9 2009 mcelog.cron 谢谢!