2011-09-26 40 views
2

这应该是相当直接的,但我似乎无法得到它的工作,尽管通过谷歌,Stackoverflow和手册页阅读了几个教程。在Ubuntu的Cron工作

我创建了一个每1分钟运行一次的cron(用于测试),它基本上所做的就是吐出日期。

crontab -l 
* * * * * /var/test/cron-test.sh 

这个cron测试文件是:

echo "$(date): cron job run" >> test.log 

等待多少分钟,我从来没有看到一个test.log中的文件。

我可以手动调用“test.sh”并获得它输出&附加。

我想知道我错过了什么?我也是以root身份进行的。我想知道我是否想知道根的位置?我的路径是否因为它附加了某种主目录而混乱了?

谢谢!


UPDATE -----------------

它不会出现,我不是在与目录路径的东西。如果我改变目录,以root用户的主目录:

# cd 

我看到我的输出文件“test.log中”与打印每分钟的所有日期。

因此,我会更新我的问题,我错过了什么 - 了解/路径?有没有我需要用来从根目录开始的术语?

干杯!

UPDATE 2 -----------------

好的,所以我得到了我想念的东西。

设置crontab的脚本工作正常。它正在查找相对于根目录的文件。即:

* * * * * /var/test/cron-test.sh 

但是“cron-test.sh”文件没有相对于根目录进行设置。因此,当“root”运行脚本时,它将其转储回“root”的主目录。我的想法是,因为该脚本正在“/ var/test /”中运行,该文件也将被转储到“/ var/test /”中。

取而代之,我需要在脚本文件中设置该位置以正确转储它。

echo "$(date): cron job run" >> /var/test/test.log 

而且工作。

+0

在cPanel中设置cron作业很简单,只要你有它。 –

+0

你想要那个test.log文件在哪里?完全写出由cron调用的脚本路径(例如'>>/root/test.log或'>>/var/test/test.log')会更好,以避免这种意外。 – fvu

+0

谢谢fvu,那是我不理解的问题。我把它写成了我的“更新2”的一部分。 ' – jmbertucci

回答

5

您尚未提供任何test.log路径,因此它将在当前路径(默认情况下为用户的主目录)中创建。 您应该更新脚本并提供完整路径,例如,g:

echo "$(date): cron job run" >> /var/log/test.log 
2

要重申您给自己更明确的答案:cronjobs在执行用户的主目录中启动,在您的案例根目录中。这就是为什么相对文件以〜根结尾的原因。