开发者

Cron job in Ubuntu

This should be pretty straight forward but I can't seem to get getting it working despite reading several tutorials via Google, Stackoverflow and the man page.

I created a cron to run every 1 min (for testing) and all it basically does is spit out the date.

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

The cron-test file is:

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

Waiting many minutes and I never see a test.log file.

I can call the "test.sh" manually and get it to output & append.

I'm wondering what I'm missing? I'm also doing this as root. I wonder if I'm miss-understanding something about root's location? Is my path messed up because it's appending some kind of home directory to it?

Thanks!


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

It does appear that I'm not following something with the directory path. If I change directory to root's home directory:

# cd

I see my output file "test.log" with all the dates printed out every minute.

So, I will update my question to be, what am I miss-understanding about the /path? Is there a term I need to use to have it start from the root directory?

Cheers!

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

Ok, so I got wha开发者_StackOverflowt I was missing.

The script to setup crontab was working right. It was finding the file relative to the root directory. ie:

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

But the "cron-test.sh" file was not set relative to the root directory. Thus, when "root" ran the script, it dumped it back into "root's" home directory. My thinking was that since the script was being run in "/var/test/" that the file would also be dumped in "/var/test/".

Instead, I need to set the location in the script file to dump it out correctly.

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

And that works.


You have not provided any path for test.log so it will be created in the current path(which is the home directory of the user by default). You should update your script and provide the full path, e.g:

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


To restate the answer you gave yourself more explicitely: cronjobs are started in the home directory of the executing user, in your case root. That's why a relative file ended up in ~root.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜