我想知道如何在每次执行时准确地看到cron作业正在做什么。日志文件位于哪里?或者我可以把输出发送到我的邮箱吗?我已经设置了电子邮件地址,当cron作业运行时发送日志,但我还没有收到任何东西。
我想知道如何在每次执行时准确地看到cron作业正在做什么。日志文件位于哪里?或者我可以把输出发送到我的邮箱吗?我已经设置了电子邮件地址,当cron作业运行时发送日志,但我还没有收到任何东西。
通过谷歌搜索可以找到与cron功能相同的软件,但没有内置在Windows中。
我使用的是Windows XP Professional,但任何版本的Windows建议都可能对某些人有所帮助。
是否也有一种方法以编程方式或通过命令行调用此功能(基于答案称为任务调度器)?
我有一个python脚本,将检查一个队列,并在每个项目上执行一个动作:
# checkqueue.py
while True:
check_queue()
do_something()
我如何编写一个bash脚本来检查它是否正在运行,如果没有,就启动它。大致如下伪代码(或者它应该做一些类似ps | grep?):
# keepalivescript.sh
if processidfile exists:
if processid is running:
exit, all ok
run checkqueue.py
write processid to processidfile
我将从crontab中调用它:
# crontab
*/5 * * * * /path/to/keepalivescript.sh
在Rails环境中运行计划任务的最佳方法是什么?脚本/跑步吗?耙?我想每隔几分钟运行一次任务。
我正在尝试从cron运行Django管理命令。我使用virtualenv保持我的项目沙盒。
我在这里和其他地方看到了从virtualenv中运行管理命令的示例,例如:
0 3 * * * source /home/user/project/env/bin/activate && /home/user/project/manage.py command arg
然而,尽管syslog显示了任务应该在何时启动的条目,但该任务从未实际运行(脚本的日志文件为空)。如果我从shell中手动运行这一行,它将按预期工作。
我目前可以通过cron运行命令的唯一方法是将命令分解并将它们放在一个哑bash包装脚本中:
#!/bin/sh
source /home/user/project/env/bin/activate
cd /home/user/project/
./manage.py command arg
编辑:
Ars提出了一个命令的工作组合:
0 3 * * * cd /home/user/project && /home/user/project/env/bin/python /home/user/project/manage.py command arg
至少在我的例子中,调用virtualenv的激活脚本没有任何作用。这招管用,所以节目继续。
*/20 * * * *
确保它每20分钟运行一次,我想每20分钟运行一个任务,从5点开始,这在Cron上可行吗?会是:
5/20 * * * *?
我在Jenkins中添加了一个新工作,我想定期安排。
从配置作业,我正在检查“定期构建”复选框,并在Schedule文本字段中添加了表达式:
15 13 * * *
但是它没有在预定的时间运行。
这是安排工作的正确程序吗?
该作业应该在4:20 AM运行,但它没有运行。
如何配置一个cron作业在每天晚上2:30运行?我知道如何让它在2点运行,但不是2:30。
我有一个cron需要每30秒运行一次。
以下是我所拥有的:
*/30 * * * * /bin/bash -l -c 'cd /srv/last_song/releases/20120308133159 && script/rails runner -e production '\''Song.insert_latest'\'''
它能运行,但它是每30分钟或30秒运行一次吗?
此外,我一直在阅读,如果我经常运行cron,它可能不是最好的工具。有没有其他更好的工具,我可以使用或安装在Ubuntu 11.04上,这将是一个更好的选择?有没有办法修复上面的cron?
我正在寻找Python中的一个库,它将提供at和cron之类的功能。
我非常希望有一个纯Python的解决方案,而不是依赖于安装在盒子上的工具;这样我在没有cron的机器上运行。
对于那些不熟悉cron的人:你可以根据一个表达式来安排任务,比如:
0 2 * * 7 /usr/bin/run-backup # run the backups at 0200 on Every Sunday
0 9-17/2 * * 1-5 /usr/bin/purge-temps # run the purge temps command, every 2 hours between 9am and 5pm on Mondays to Fridays.
cron时间表达式语法不那么重要,但我希望具有这种灵活性。
如果没有什么东西可以为我开箱即用,任何关于构建模块的建议都将被感激地接受。
编辑 我对启动进程不感兴趣,只对同样用Python编写的“作业”——Python函数感兴趣。我认为这将是一个不同的线程,但不是在不同的进程中。
为此,我正在寻找cron time表达式的表达性,但在Python中。
Cron已经存在多年了,但我正在努力尽可能地实现可移植性。我不能指望它的存在。