我有一个#!/bin/bash文件。周目录。
有办法测试它是否有效吗?不能等一个星期
我在Debian 6上使用root
我有一个#!/bin/bash文件。周目录。
有办法测试它是否有效吗?不能等一个星期
我在Debian 6上使用root
当前回答
在摆弄了cron中一些不能立即兼容的东西之后,我发现下面的方法很适合调试:
crontab -e
* * * * * /path/to/prog var1 var2 &>>/tmp/cron_debug_log.log
这将每分钟运行一次任务,您可以简单地查看/tmp/cron_debug_log.log文件以了解发生了什么。
这并不是您可能正在寻找的“救火工作”,但在调试最初在cron中无法工作的脚本时,这对我帮助很大。
其他回答
把它放进cron怎么样?每小时,等待下一个运行的每小时cron工作,然后删除它?这将在一个小时内运行一次,并且是在cron环境中。你也可以运行./your_script,但它不会有与cron下相同的环境。
我会使用一个锁文件,然后将cron作业设置为每分钟运行一次。(使用crontab -e和* * * * * /path/to/job)这样您就可以继续编辑文件,并且每分钟都会测试它们。此外,您可以通过触摸锁文件来停止cronjob。
#!/bin/sh
if [ -e /tmp/cronlock ]
then
echo "cronjob locked"
exit 1
fi
touch /tmp/cronlock
<...do your regular cron here ....>
rm -f /tmp/cronlock
我通常通过运行我创建的作业来测试,就像这样:
使用两个终端更容易做到这一点。
运行工作:
#./jobname.sh
至:
#/var/log and run
执行如下命令:
#tailf /var/log/cron
这允许我实时查看cron日志更新。您还可以在运行日志后查看日志,我更喜欢实时查看。
下面是一个简单的cron作业示例。运行yum更新…
#!/bin/bash
YUM=/usr/bin/yum
$YUM -y -R 120 -d 0 -e 0 update yum
$YUM -y -R 10 -e 0 -d 0 update
具体情况如下:
第一个命令将更新yum本身,下一个命令将应用系统更新。
-R 120:设置yum执行命令前等待的最大时间
-e 0:设置错误级别为0(范围0 - 10)。0表示只打印必须被告知的严重错误。
-d 0:将调试级别设置为0——增加或减少打印内容的数量。(范围:0 - 10)。
-y:假设是;假设任何问题的答案都是肯定的
在构建cron作业之后,我运行以下命令以使我的作业可执行。
#chmod +x /etc/cron.daily/jobname.sh
希望这能有所帮助, Dorlack
sudo run-parts --test /var/spool/cron/crontabs/
crontabs/目录中的文件需要由owner - octal 700可执行
资料来源:man cron和NNRooth's
这些答案都不适合我的具体情况,即我想运行一个特定的cron作业,只运行一次,并立即运行。
我在Ubuntu服务器上,我使用cPanel来设置我的cron作业。
我只是写下了我的当前设置,然后将它们编辑为一分钟后的设置。当我修复另一个错误时,我只是再次编辑它到一分钟后。当我全部完成时,我只是把设置重置回以前的样子。
示例:现在是下午4:34,所以我输入35 16 * * *,让它在16:35运行。
它像魔法一样有效,我所要等待的最长时间不到一分钟。
我认为这是一个比其他一些答案更好的选择,因为我不想运行所有的每周cron,也不想让工作每分钟都运行。在我准备再次测试之前,我花了几分钟时间来修复任何问题。希望这能帮助到一些人。