在我的 Mac 上(是的,我知道。但我的 Linux 机器在工作)出于某种原因cron
不想at
工作。它们都记录了已添加作业,没有任何语法错误或疑虑。然后时间过去了,两者都没有做任何事情。
52 18 * * * username touch ~/webserver/AAAAA
它应该在太平洋标准时间下午 6:52 运行,但它从来没有运行过。为什么?
对于at
,我做了:at 6:48 pm < jobs
其中jobs
看起来像:
touch ~/webserver/AAAAA
什么也没发生。你觉得呢?
答案1
您是否查看过邮箱mail
?您可能会从cron
那里找到错误消息。我在创建脚本运行之前设置运行,发现了我预期的错误cron
。一个有用的信息是环境设置 - 这通常与这些问题相关。我得到了以下信息:
Message 1:
From [email protected] Thu Jan 12 20:16:01 2012
X-Original-To: jleffler
Delivered-To: [email protected]
From: [email protected] (Cron Daemon)
To: [email protected]
Subject: Cron <jleffler@Isis> /bin/ksh /Users/jleffler/bin/Cron/minutely
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=jleffler>
X-Cron-Env: <USER=jleffler>
X-Cron-Env: <HOME=/Users/jleffler>
Date: Thu, 12 Jan 2012 20:16:00 -0800 (PST)
/Users/jleffler/bin/Cron/minutely[15]: exec: /work1/jleffler/bin/minutely: not found
摘自以下条目:
* * * * * /bin/ksh /Users/jleffler/bin/Cron/minutely
我看到的另一个问题是您的命令行:
52 18 * * * username touch ~/webserver/AAAAA
命令是什么username
?我在我的 Mac(MacOS X 10.7.2)上找不到它。它在你的机器里/usr/bin
或/bin
上面吗?如果不是,很可能找不到它。
我的机器上的脚本/Users/jleffler/bin/Cron/minutely
是一个(符号链接到)脚本,它读取一个配置文件(我称之为我的配置文件.cronfile
),然后执行一个命令/Users/jleffler/bin/minutely
,所有这些都基于Cron
目录中文件的基本名称。这会将我的 PATH 设置为比 提供的系统 PATH 更有用的东西cron
。
答案2
我敢打赌 - cron 的路径不够全面,无法包含 touch - 要么向 cron 添加路径指令,要么使用 touch 的完全限定路径