1

I want to list files at 12h01. How can I set my crontab to do this?

pedro@Pedro-PC:~/PL/trab4$ crontab -l
# 01 12 * * * ls -l
2
  • 2
    What problem are you having?
    – coneslayer
    Apr 15, 2010 at 11:29
  • Redirect your output in the script to a known file location
    – mpez0
    Apr 16, 2010 at 16:29

3 Answers 3

1

Try putting the

ls -l

command into a small bash script .... name the file listfiles for an example

The put listfiles in somewhere like /usr/bin

make listfiles executable with

sudo chmod +x listfiles

then change your crontab to

01 12 * * * /usr/bin/listfiles
1
  • Is all worthless, if the output is on the virtual console and no screen attached, nor the output of ls -l redirected to somewhere... Apr 20, 2010 at 10:02
1

You can also (which I prefer for smaller commands) do what you did at first, but with the full path to the ls binary. Crontab runs with a smaller $PATH than you do, which is why we give the full path to ls.

ie:

01 12 * * * /bin/ls /home/user/

You can get the path to your binary with

which ls
3
  • not working, don't happend nothing
    – user34104
    Apr 15, 2010 at 22:29
  • What happens when you try * * * * * /bin/ls / ? Assuming of course, that your ls is located at /bin/ls ..
    – SW.
    Apr 16, 2010 at 14:34
  • Good hint to use full pathes for programms run by root, but still the output of ls will never be seen, nor be saved anywhere... Apr 20, 2010 at 10:03
1

As I stated in your other question, errors and warnings from cron and at can be viewed in your local mail.

And your cronjob is wrong, it should be something like:

01 12 * * * ls -l [somedir] > [some file with results]

[somedir] is the directory you are trying to list.

[some file with results] is a path to the file that will store your result.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .