繁体   English   中英

Ubuntu中的Cron工作

[英]Cron job in Ubuntu

这应该很简单,但是尽管通过Google,Stackoverflow和手册页阅读了一些教程,但我似乎无法使它正常工作。

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

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

Cron测试文件为:

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

等待了几分钟,我再也看不到test.log文件。

我可以手动调用“ test.sh”并将其输出并追加。

我想知道我缺少什么? 我也以此为根。 我想知道我是否对root的位置有误解? 我的路径是否被搞乱了,因为它在其中添加了某种主目录?

谢谢!


更新-----------------

看来我没有跟随目录路径。 如果我将目录更改为根目录的主目录:

# cd

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

因此,我将更新我的问题是,关于/ path我错过了什么? 我需要使用一个术语使其从根目录开始吗?

干杯!

更新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

这很有效。

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

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

要重述一下,您会更加明确地给自己一个答案:cronjobs在正在执行的用户的主目录(以您的情况为root)中启动。 这就是为什么相对文件以〜root结尾的原因。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM