Cronjob
Default Config
Cronjob file: /etc/crontab
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
SHELL=/bin/sh
# You can also override PATH, but by default, newer versions inherit it from the environment
#PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || { cd / && run-parts --report /etc/cron.daily; }
47 6 * * 7 root test -x /usr/sbin/anacron || { cd / && run-parts --report /etc/cron.weekly; }
52 6 1 * * root test -x /usr/sbin/anacron || { cd / && run-parts --report /etc/cron.monthly; }
#
Cronjob Timer
.---------------- minute (0 - 59)
| .------------- hour (0 - 23)
| | .---------- day of month (1 - 31)
| | | .------- month (1 - 12) OR jan,feb,mar,apr ...
| | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
| | | | |
* * * * * user-name command to be executed
Examples
Every 15 minutes
*/15 * * * * root /path/to/script 2>&1
Every 6 hour
0 */6 * * * root /path/to/script 2>&1
Common Interval
Create a script in following path to run in corresponding interval.
| Interval | Script Path |
|---|---|
| Hourly | /etc/cron.hourly/ |
| Daily | /etc/cron.daily/ |
| Weekly | /etc/cron.weekly/ |
| Monthly | /etc/cron.monthly/ |
sudo tee -a /etc/cron.daily/script << EOF
#!/bin/bash
# ...
# ...
# command
# ...
# ...
EOF
sudo chmod +x /etc/cron.daily/script
Custom Interval
sudo tee -a script << EOF
#!/bin/bash
# ...
# ...
# command
# ...
# ...
EOF
sudo tee -a /etc/cron.d/job-name << EOF
0 */6 * * * root /path/to/script 2>&1
EOF
sudo chmod +x script