我有一个#!/bin/bash文件。周目录。

有办法测试它是否有效吗?不能等一个星期

我在Debian 6上使用root


当前回答

我使用的解决方案如下:

编辑crontab(使用命令:crontab -e)以频繁地运行作业 根据需要(每1分钟或5分钟一次) 修改应该使用cron执行的shell脚本,将输出打印到某个文件中(例如:echo "Working fine" >> output.txt) 使用命令tail -f output.txt检查output.txt文件,它将把最新的内容打印到该文件中,因此您可以跟踪脚本的执行

其他回答

我使用的解决方案如下:

编辑crontab(使用命令:crontab -e)以频繁地运行作业 根据需要(每1分钟或5分钟一次) 修改应该使用cron执行的shell脚本,将输出打印到某个文件中(例如:echo "Working fine" >> output.txt) 使用命令tail -f output.txt检查output.txt文件,它将把最新的内容打印到该文件中,因此您可以跟踪脚本的执行

把它放进cron怎么样?每小时,等待下一个运行的每小时cron工作,然后删除它?这将在一个小时内运行一次,并且是在cron环境中。你也可以运行./your_script,但它不会有与cron下相同的环境。

sudo run-parts --test /var/spool/cron/crontabs/

crontabs/目录中的文件需要由owner - octal 700可执行

资料来源:man cron和NNRooth's

在摆弄了cron中一些不能立即兼容的东西之后,我发现下面的方法很适合调试:

crontab -e

* * * * * /path/to/prog var1 var2 &>>/tmp/cron_debug_log.log

这将每分钟运行一次任务,您可以简单地查看/tmp/cron_debug_log.log文件以了解发生了什么。

这并不是您可能正在寻找的“救火工作”,但在调试最初在cron中无法工作的脚本时,这对我帮助很大。

我通常通过运行我创建的作业来测试,就像这样:

使用两个终端更容易做到这一点。

运行工作:

#./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