Crontab allows Linux and Unix users to run commands or scripts at a given date and time. You can schedule scripts to be executed periodically. Cron is one of the most useful tool in a Linux or UNIX like operating systems. It is usually used for sysadmin jobs such as backups or cleaning /tmp/ directories and more.
It is an acronym for “Command Run On Notice” or “Commands Run Over Night”
Some Crontab Examples to Schedule Tasks
# crontab -u user_name -e
List Crontab Jobs
# crontab -l
# crontab -u user_name -l
1. Set a cron to execute/run at 2:23 PM 24th March for hostname command.
23 14 24 03 05 /bin/hostname
2. Set a cron to execute/run on every minutes.
* * * * * /root/script.sh
3. Set a cron to execute/run on every 5 minutes.
*/5 * * * * /root/script.sh
4. Set a cron to execute/run on every Friday at 3PM.
0 15 * * 05 /root/script.sh
5. Set a cron to execute/run on specific days.
Set a cron to execute on specific days. Script will execute and run on each Monday and Friday at 6PM
0 18 * * mon,fri /root/script.sh
6. Set a cron to execute/run on specific months.
Set a cron to execute on each March,April and May.
* * * mar,apr,may /root/script.sh
7. Set a cron to execute/run a script on every five hours.
Setc a cron to execute script on every five hours.
0 */5 * * * /root/script.sh
8. Set a cron to execute/run a script on first Sunday of every Month.
It is not possible to execute a script only on first Sunday. That’s why we can use the condition in command field.
0 1 * * sun [ $(date +%d) -le 07 ] && /root/script/script.sh
9. Set a cron to execute/run a script on every 30 Seconds.
To execute the a script on every 30 second is not possible but using below example to you can set it.
* * * * * /root/script.sh * * * * * sleep 30; /root/script.sh
10. Set a cron to execute/run a script yearly,Monthly,Weekly,Daily and Hourly.
Script has been scheduled to execute Yearly,Monthly,Weekly,Daily and Hourly.
|@yearly||0 0 1 1 *|
|@daily||0 0 * * *|
|@hourly||0 * * * *|
|@reboot||Run at startup.|
@yearly /root/script.sh @monthly /root/script.sh @weekly /root/scripts.sh @daily /root/script.sh @hourly /root/script.sh
11. Set a cron to execute/run a script on system reboot.
Set cron to execute on system reboot.
12. Schedule a Job for Specific Range of Time (e.g. Only on Weekdays)
checks the status of the database weekdays during the working hours 9 a.m – 6 p.m
00 09-18 * * 01-05 /root/check-db-status
- 00 – 0th Minute (Top of the hour)
- 09-18 – 9 am, 10 am,11 am, 12 am, 1 pm, 2 pm, 3 pm, 4 pm, 5 pm, 6 pm
- * – Every day
- * – Every month
- * – Every day of the week
13. Backup and Restore all crons.
Backup in a text file:
#crontab -l > backup.txt # cat backup.txt MAIL=mailid 0 1 * * * /root/mysql.sh
Cron restore from backup file:
#crontab backup.txt # crontab -l MAIL=mailid 0 1 * * * /root/mysql.sh
# crontab -r # crontab -l no crontab for root (Image Source Google)