Ok, So I've made my script, I dropped it in /etc/cron.hourly
then I chmod 777
the file but it won't run (automatically). If I manually run it, it works fine. Do I need to do anything else?
Ok, So I've made my script, I dropped it in /etc/cron.hourly
then I chmod 777
the file but it won't run (automatically). If I manually run it, it works fine. Do I need to do anything else?
Entries in
cron.hourly
are run by the run-parts mechanism (man run-parts
for more info). Andrun-parts
is choosy about what filenames it considers valid.For example, giving your script an extension will make it invalid and result in the job not being run.
[a-zA-Z0-9_-]
are the valid characters, so the '.' makes it invalid.When adding a job to
/etc/cron.hourly
( or.daily
,.weekly
, etc), always test afterwards thatrun-parts
will actually run it by issuing the command:If by running this command it shows your file it means it worked. Otherwise, if doesn't show anything your file name is not valid.
What was the name of your script?
Why not using crontab ( /etc/crontab ) and use */1 in the hour field. I have used this to run a script every 5 min and it works well:
DaithiF's answer should be the right answer.
Also, my script didn't have
#!/bin/bash
in the first line. Even though the script could be executed with the command line,run-parts
rejected it saying "Exec format error".Changing the file name from
scriptname.sh
toscriptname
and adding the#!/bin/bash
into first line enabled my script to run hourly.Your problem is probably down to the overly open permissions, which allows anybody to edit your file. Try
755
instead.Looking in the cron entries in your syslog output should confirm this.
When you run
is this task on the list?
if not, add it
add this line
if it is in this list, try to add the path of programing language to the top of your script
Example:
This 2 things always solved my problems :)