Linux Crontab: 15 Awesome Cron Job Examples

by SathiyaMoorthy on June 11, 2009

An experienced Linux sysadmin knows the importance of running the routine maintenance jobs in the background automatically.

Linux Cron utility is an effective way to schedule a routine background job at a specific time and/or day on an on-going basis.

This article is part of the on-going Productivity Tips For Geeks series. In this article, let us review 15 awesome examples of crontab job scheduling.

Linux Crontab Format

MIN HOUR DOM MON DOW CMD
Table: Crontab Fields and Allowed Ranges (Linux Crontab Syntax)
Field Description Allowed Value
MIN Minute field 0 to 59
HOUR Hour field 0 to 23
DOM Day of Month 1-31
MON Month field 1-12
DOW Day Of Week 0-6
CMD Command Any command to be executed.

1. Scheduling a Job For a Specific Time

The basic usage of cron is to execute a job in a specific time as shown below. This will execute the Full backup shell script (full-backup) on 10th June 08:30 AM.

Please note that the time field uses 24 hours format. So, for 8 AM use 8, and for 8 PM use 20.

30 08 10 06 * /home/ramesh/full-backup
  • 30 – 30th Minute
  • 08 – 08 AM
  • 10 – 10th Day
  • 06 – 6th Month (June)
  • * – Every day of the week

2. Schedule a Job For More Than One Instance (e.g. Twice a Day)

The following script take a incremental backup twice a day every day.

This example executes the specified incremental backup shell script (incremental-backup) at 11:00 and 16:00 on every day. The comma separated value in a field specifies that the command needs to be executed in all the mentioned time.

00 11,16 * * * /home/ramesh/bin/incremental-backup
  • 00 – 0th Minute (Top of the hour)
  • 11,16 – 11 AM and 4 PM
  • * – Every day
  • * – Every month
  • * – Every day of the week

3. Schedule a Job for Specific Range of Time (e.g. Only on Weekdays)

If you wanted a job to be scheduled for every hour with in a specific range of time then use the following.

Cron Job everyday during working hours

This example checks the status of the database everyday (including weekends) during the working hours 9 a.m – 6 p.m

00 09-18 * * * /home/ramesh/bin/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

Cron Job every weekday during working hours

This example checks the status of the database every weekday (i.e excluding Sat and Sun) during the working hours 9 a.m – 6 p.m.

00 09-18 * * 1-5 /home/ramesh/bin/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
  • 1-5 -Mon, Tue, Wed, Thu and Fri (Every Weekday)

4. How to View Crontab Entries?

View Current Logged-In User’s Crontab entries

To view your crontab entries type crontab -l from your unix account as shown below.

ramesh@dev-db$ crontab -l
@yearly /home/ramesh/annual-maintenance
*/10 * * * * /home/ramesh/check-disk-space

[Note: This displays crontab of the current logged in user]

View Root Crontab entries

Login as root user (su – root) and do crontab -l as shown below.

root@dev-db# crontab -l
no crontab for root

Crontab HowTo: View Other Linux User’s Crontabs entries

To view crontab entries of other Linux users, login to root and use -u {username} -l as shown below.

root@dev-db# crontab -u sathiya -l
@monthly /home/sathiya/monthly-backup
00 09-18 * * * /home/sathiya/check-db-status

5. How to Edit Crontab Entries?

Edit Current Logged-In User’s Crontab entries

To edit a crontab entries, use crontab -e as shown below. By default this will edit the current logged-in users crontab.

ramesh@dev-db$ crontab -e
@yearly /home/ramesh/centos/bin/annual-maintenance
*/10 * * * * /home/ramesh/debian/bin/check-disk-space
~
"/tmp/crontab.XXXXyjWkHw" 2L, 83C

[Note: This will open the crontab file in Vim editor for editing.
Please note cron created a temporary /tmp/crontab.XX... ]

When you save the above temporary file with :wq, it will save the crontab and display the following message indicating the crontab is successfully modified.

~
"crontab.XXXXyjWkHw" 2L, 83C written
crontab: installing new crontab

Edit Root Crontab entries

Login as root user (su – root) and do crontab -e as shown below.

root@dev-db# crontab -e

Edit Other Linux User’s Crontab File entries

To edit crontab entries of other Linux users, login to root and use -u {username} -e as shown below.

root@dev-db# crontab -u sathiya -e
@monthly /home/sathiya/fedora/bin/monthly-backup
00 09-18 * * * /home/sathiya/ubuntu/bin/check-db-status
~
~
~
"/tmp/crontab.XXXXyjWkHw" 2L, 83C

6. Schedule a Job for Every Minute Using Cron.

Ideally you may not have a requirement to schedule a job every minute. But understanding this example will will help you understand the other examples mentioned below in this article.

* * * * * CMD

The * means all the possible unit — i.e every minute of every hour through out the year. More than using this * directly, you will find it very useful in the following cases.

  • When you specify */5 in minute field means every 5 minutes.
  • When you specify 0-10/2 in minute field mean every 2 minutes in the first 10 minute.
  • Thus the above convention can be used for all the other 4 fields.

7. Schedule a Background Cron Job For Every 10 Minutes.

Use the following, if you want to check the disk space every 10 minutes.

*/10 * * * * /home/ramesh/check-disk-space

It executes the specified command check-disk-space every 10 minutes through out the year. But you may have a requirement of executing the command only during office hours or vice versa. The above examples shows how to do those things.

Instead of specifying values in the 5 fields, we can specify it using a single keyword as mentioned below.

There are special cases in which instead of the above 5 fields you can use @ followed by a keyword — such as reboot, midnight, yearly, hourly.

Table: Cron special keywords and its meaning
Keyword Equivalent
@yearly 0 0 1 1 *
@daily 0 0 * * *
@hourly 0 * * * *
@reboot Run at startup.

8. Schedule a Job For First Minute of Every Year using @yearly

If you want a job to be executed on the first minute of every year, then you can use the @yearly cron keyword as shown below.

This will execute the system annual maintenance using annual-maintenance shell script at 00:00 on Jan 1st for every year.

@yearly /home/ramesh/red-hat/bin/annual-maintenance

9. Schedule a Cron Job Beginning of Every Month using @monthly

It is as similar as the @yearly as above. But executes the command monthly once using @monthly cron keyword.

This will execute the shell script tape-backup at 00:00 on 1st of every month.

@monthly /home/ramesh/suse/bin/tape-backup

10. Schedule a Background Job Every Day using @daily

Using the @daily cron keyword, this will do a daily log file cleanup using cleanup-logs shell scriptat 00:00 on every day.

@daily /home/ramesh/arch-linux/bin/cleanup-logs "day started"

11. How to Execute a Linux Command After Every Reboot using @reboot?

Using the @reboot cron keyword, this will execute the specified command once after the machine got booted every time.

@reboot CMD

12. How to Disable/Redirect the Crontab Mail Output using MAIL keyword?

By default crontab sends the job output to the user who scheduled the job. If you want to redirect the output to a specific user, add or update the MAIL variable in the crontab as shown below.

ramesh@dev-db$ crontab -l
MAIL="ramesh"

@yearly /home/ramesh/annual-maintenance
*/10 * * * * /home/ramesh/check-disk-space

[Note: Crontab of the current logged in user with MAIL variable]


If you wanted the mail not to be sent to anywhere, i.e to stop the crontab output to be emailed, add or update the MAIL variable in the crontab as shown below.

MAIL=""

13. How to Execute a Linux Cron Jobs Every Second Using Crontab.

You cannot schedule a every-second cronjob. Because in cron the minimum unit you can specify is minute. In a typical scenario, there is no reason for most of us to run any job every second in the system.

14. Specify PATH Variable in the Crontab

All the above examples we specified absolute path of the Linux command or the shell-script that needs to be executed.

For example, instead of specifying /home/ramesh/tape-backup, if you want to just specify tape-backup, then add the path /home/ramesh to the PATH variable in the crontab as shown below.

ramesh@dev-db$ crontab -l

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/home/ramesh

@yearly annual-maintenance
*/10 * * * * check-disk-space

[Note: Crontab of the current logged in user with PATH variable]

15. Installing Crontab From a Cron File

Instead of directly editing the crontab file, you can also add all the entries to a cron-file first. Once you have all thoese entries in the file, you can upload or install them to the cron as shown below.

ramesh@dev-db$ crontab -l
no crontab for ramesh

$ cat cron-file.txt
@yearly /home/ramesh/annual-maintenance
*/10 * * * * /home/ramesh/check-disk-space

ramesh@dev-db$ crontab cron-file.txt

ramesh@dev-db$ crontab -l
@yearly /home/ramesh/annual-maintenance
*/10 * * * * /home/ramesh/check-disk-space

Note: This will install the cron-file.txt to your crontab, which will also remove your old cron entries. So, please be careful while uploading cron entries from a cron-file.txt.

Additional Cron Tutorials

Awesome Linux Articles

Following are few awesome 15 examples articles that you might find helpful.


Linux Sysadmin Course Linux provides several powerful administrative tools and utilities which will help you to manage your systems effectively. If you don’t know what these tools are and how to use them, you could be spending lot of time trying to perform even the basic administrative tasks. The focus of this course is to help you understand system administration tools, which will help you to become an effective Linux system administrator.
Get the Linux Sysadmin Course Now!

If you enjoyed this article, you might also like..

  1. 50 Linux Sysadmin Tutorials
  2. 50 Most Frequently Used Linux Commands (With Examples)
  3. Top 25 Best Linux Performance Monitoring and Debugging Tools
  4. Mommy, I found it! – 15 Practical Linux Find Command Examples
  5. Linux 101 Hacks 2nd Edition eBook Linux 101 Hacks Book

Bash 101 Hacks Book Sed and Awk 101 Hacks Book Nagios Core 3 Book Vim 101 Hacks Book

{ 176 comments… read them below or add one }

1 Mahesh June 11, 2009 at 10:26 am

Another great post. Thank you.

2 Mihir.G.Joshi June 11, 2009 at 11:47 am

Good One ……

3 anil beniwal June 11, 2009 at 1:59 pm

gud job dude

4 shashank June 11, 2009 at 11:38 pm

Thanks

It’s very use full.

5 RAJESH June 12, 2009 at 4:44 am

NICE & HELP FULL tips…!! I appreciate your effort for posting such a informational daily LINUX activity

6 BalaC June 12, 2009 at 5:54 am

Just came up at the right time

7 ray June 12, 2009 at 8:35 am

great tutorial, keep up good work

8 Jeroen June 12, 2009 at 9:13 am

Thanks Ramesh.
Concise and yet very useful, I especially like examples 7, 11 and 14.

9 Denny June 12, 2009 at 9:55 am

Man, it just came in handy. Thank you very much.

10 Binny V A June 13, 2009 at 4:24 am

Shameless plug: I have created a GUI web interface to create crontab command here. I hope someone will find this useful.

11 Leslie Satenstein June 14, 2009 at 9:57 pm

One can use the English abbreviated day of the week in place of the numbers

0=Sun
1=Mon
2=Tue
3=Wed
4=Thu
5=Fri
6=Sat

so

30 1 * * Mon-Fri /sbin/poweroff

is equivalent to

30 1 * * 1-5 /sbin/poweroff

Will do a system shutdown at 1:30 AM on weekdays. Which is easier to read?

12 Ramesh Natarajan June 14, 2009 at 11:45 pm

@Mahesh, Mihir, Anil, Shashank, Rajesh, Balac, Ray, Denny,

Thanks a lot for your comment. I’m very glad you found this tutorial helpful.

 
@Jeroen,

Yeah. “#7 – Running a job every x minutes” is something you may use it frequently. Regarding #14, is very convenient when you have lot of entries in your crontab, where you don’t need to give the full path.

 
@Binny,

Your crontab code generator looks great. You just need to add the keyword option there. (i.e @yearly, @daily, @hourly, @reboot etc.,)

 
@Leslie,

Thanks for pointing that out. You are so right. There is no doubt that Sun is much easier to read then 0. I’ve seen few sysadmins making the following mistakes:

1. Starting their 0-6 count with Monday. So, this makes 6 as sunday, which is wrong.
2. Entering 7 for Sunday, thinking 1-7 is valid, which is wrong.

 
Your suggestion would help to avoid the above two mistakes. Thank you.

13 Paul Mooney June 25, 2009 at 2:14 pm

Hello Ramesh,

i am trying to add a cronjob to the root file in my cron directory. so far my added cronjob: crmphonescript is not working. Please see the last entry in the source code provided. any help will be great!

Filepath: var/spool/cron/root

Filename: root

source code:

5,20,35,50 * * * * /usr/local/cpanel/whostmgr/bin/dnsqueue > /dev/null 2>&1
2,58 * * * * /usr/local/bandmin/bandmin
0 0 * * * /usr/local/bandmin/ipaddrmap
15 3 * * * /usr/local/cpanel/whostmgr/docroot/cgi/cpaddons_report.pl --notify
*/5 * * * * /usr/local/cpanel/bin/dcpumon >/dev/null 2>&1
3 0 * * * /scripts/upcp
0 1 * * * /scripts/cpbackup
35 * * * * /usr/bin/test -x /usr/local/cpanel/bin/tail-check && /usr/local/cpanel/bin/tail-check
0 6 * * * /scripts/exim_tidydb > /dev/null 2>&1
*/1 * * * * /scripts/crmphonescript

Filepath: scripts/crmphonescript

Filename: crmphonescript

source code:

#!/usr/bin/perl
$host="localhost";
$username="florida_florida"; 
$admin_password="*****"; 
$db_name="florida_joomla"; 

mysql_connect("$host", "$username", "$admin_password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

$sql="update jos_holder set id = 4 where id = 3";
$result=mysql_query($sql);
exit;
14 Ramesh Natarajan June 25, 2009 at 9:56 pm

@Paul,
Check the following:
 
- /var/log/cron file for any error messages.
- put a debug message inside your shell script to see whether it really gets executed.
- Put > /tmp/script.log at the end of the cron entry for this script and debug it.
- Put 2> /tmp/error-script.log at the end of the cron entry for this script to see whether it writes any error message to the log file.

15 Paul Mooney June 26, 2009 at 5:45 am

Ramesh,

ok. i added the following to my command:

*/1 * * * * /scripts/crmphonescript > /tmp/script.log

and added the following to my shell script:

$sql=”update jos_holder set id = 4 where id = 3″;
$result=mysql_query($sql);
if (!$result) {
echo “could not execute script”
}
exit;

how do i now check for any error messages?

16 Leslie Satenstein June 26, 2009 at 11:27 am

Is there a command in linux to display a message in Gnome or KDE (and include the terminal).

Suppose I have a scheduled Cron job to do maintenance every Sunday night,

I would like to send out warning messages to display on Gnome, or KDE, as an alert that they may have to acknowledge. (Example. “System going off-line at 01:30am for maintenance, Please log off by then” )

17 Leslie Satenstein June 26, 2009 at 11:32 am

I would have a crontab entry as follows

5,10,15,20,25,26,27,28,29 1 * * 0 Command to send warning messages to users on GNOME OR KDE

18 shankar June 30, 2009 at 12:37 am

good

19 vanraj July 14, 2009 at 5:35 am

this is really good effort and easy to understand.
thank you.

20 Ramesh Natarajan July 14, 2009 at 9:46 pm

@Paul, As we discussed over email, following are few suggestions.

- Check the content of the /tmp/script.log
- The mysql commands you’ve given are php related. But you had #!/usr/bin/perl as the 1st line in your script. Try changing it to php (or) change the php-mysql functions to perl-mysql functions.

@Leslie, Following are some suggestions, which you can explore further.

1. Use notify-send “title” “body” to display pop-up in gnome desktop

Example Usage:
# full-backup.sh ; notify-send "Backup completed"

2. You can also use xmessage to display pop-up on desktop.

# xmessage -file /path/of/file/name/message.txt

@Shankar, @Vanraj, Thanks for your kind words. I’m very glad that you found this article helpful.

21 PaulM July 21, 2009 at 1:16 pm

Great Cron tutorial. One request about this website though….how about a “Printer Friendly” link at the bottom of these tutorials? Im an old school sysadmin and I keep an “Oh Crap” book…..a hard copy of important info and tips and tricks that I can refer to when the excrement hits the oscillating ventilation device if you know what I mean.
Printer Friendly pages would be a nice touch.

22 Ramesh Natarajan July 25, 2009 at 12:34 am

@PaulM,

I’ve added your request about “Printer Friendly” link in my list of to-dos. Thanks a lot for bringing that to my attention. It’s definitely a good idea.

23 mittu August 5, 2009 at 5:21 am

thank u

24 Planet Malaysia August 26, 2009 at 3:44 am

You can specific different time zone for different cronjob.

25 Praveen October 2, 2009 at 8:12 am

Hey Ramesh,

I have a question for you. As a sys-admin, I am sure you will have bunch of things in cron. Do you use any apps to visualize these entries? It would be really helpful to see Cron entries on a calendar.

Do you know of any such OSS tool?

Praveen

26 Don October 6, 2009 at 2:55 pm

Hi,

Great article. Is it possible to schedule a job for the first Saturday of the month (every month)? If there is I’m having trouble figuring out how to do it.

Thanks
Don

27 SathiyaMoorthy October 7, 2009 at 12:48 am

@Don

1 1 1-7 * 6 CMD

Above should do the hack, but not tested [ let us know the results ].

Explanation: At 1st minute of 1st hour, of 1-7th day of month, at every month. And only on 6th day of week which is Saturday.

On 1-7th of every month, only one Saturday can come.

28 Don October 7, 2009 at 11:23 pm

@SathiyaMoorthy

Thanks, I’ll give it a try. I’ll play with the settings so I can try it for this weekend so we won’t have to wait till next month to see if it works.

29 Don October 9, 2009 at 10:22 am

@SathiyaMoorthy

It didn’t work :-(

I set it to 0 12 1-11 * 4 cmd and it lauched yesterday (Thursday) which it was supposed to do but it also launched today (Friday) which it was not supposed to do.

I guess I could schedule it to run every Saturday and in the script check to see if the day-of-month is less that 8. If so run, if not exit.

Thanks
Don

30 Kunal October 14, 2009 at 9:06 pm

Very nicely explained . Thanks for explaining all major usage patterns in a single article.

Rgds

31 vks October 19, 2009 at 7:14 pm

can any body explain how to run cron jobs in /etc/crontab

32 ACE November 20, 2009 at 1:37 pm

Does anybody knows how to setup a cron job to run every other week on any of the week days.

For example: I need to run a job at 10 AM on Monday but every other Monday.

I tried this and did not work:

00 10 */14 * 1 /my command

Thanks,

33 Sharad November 23, 2009 at 6:37 am

Very informative…and superb way to demonstrate daily usages…

34 Salsan Jose E December 7, 2009 at 10:33 pm

How to set up one time Cron Job ?

35 Leslie Satenstein December 10, 2009 at 8:37 pm

Just fill out the line with

mm hh dayofmonth monthyear dayofweek command

it will work on that day,

30 1 31 5 Mon echo “Do this command in a year where May 31 is a Monday”

36 siegfried January 3, 2010 at 6:10 am

for one off jobs use the ‘at’ command. cron actually runs both ‘at’ and ‘cron’ jobs ( the ‘c’ and ‘a’ in the log file ). at is very flexible wrt scheduling, and at copies your current environment before running the job so no more anooying erros with your profile, path, etc. also you don’t have to remember to remove your one off job from your crontab, or take that extra small risk of making a mistake each time you edit your crontab. btw, to reduce the chance of making a mistake while edting your crontab, consider doing something like :

crontab -l > crontab.old
cp crontab.old crontab.new
vi crontab.new
diff crontab.old crontab.new
crontab crontab.new

a good habit to get into esp. if you want to minimise the chance of an error in a production environment.

37 guntis January 6, 2010 at 1:18 pm

excellent!!!
have never seen better manual

38 sofasurfer February 25, 2010 at 7:09 am

@Don
@SathiyaMoorthy

To execute a script on some days of a week and only between some days of a month you can do it this way:

# Nur am Montag (1) oder am Donnerstag (4)
10 19 2-27 * * if [ "$(date +\%u)" = "1" ] || [ "$(date +\%u)" = "4" ] ; then ./yourscript.sh ; fi

This here will not work !!!
10 19 2-27 * 1,4

39 Ashwin Raj March 5, 2010 at 11:31 am

Really nice manual. Is there any way to set up a cron job to run a script Monday through Friday, every 1 minute starting at 7:00AM and ending at 6:30PM? I am wondering if this is possible just with the minute/hour/date/month/day specifiers. I saw an example in one of the comment posts which used a if-then conditional execution of a script. Is that the only way to go.

40 sofasurfer March 6, 2010 at 1:07 am

@Ashwin Raj
Monday through Friday, every 1 minute starting at 7:00AM and ending at 6:30PM?

Try this one with two entries, but with no guarantee.
*/1 7-17 * * 1-5 yourscript.sh
0-30/1 18 * * 1-5 yourscript.sh
Combination of day of month and day of week parameter is treaten as OR condition by crontab and therefor I used an if statement to solve this situation.

41 Bhanu April 26, 2010 at 12:49 am

Hi Ramesh,
This is Bhanu new for the Linux platform planning to give certification.
I read your module.Its excellent ,I want to know about the monthly cron job u have just mentioned about that but u didnt mnetion aboout the syntax is this right

0 0 1 * * cmd.
is this right?
Thnx

42 bucu May 10, 2010 at 10:14 am

* * * * * history > ~/Desctop/file
I tryied to make a backup of history, but this way is not working.
Cron is creating a file, but the date isn’t getting there.
Help me, thanks and cheers

43 Kate May 10, 2010 at 6:59 pm

I can set a cron to run every 5 minutes from 8pm – 11pm (20-23), but what I can’t do is set one to run every 5 minutes from 11:pm-midnight. (23-00)

How do you set a cron to run every 5 minutes the last hour of the day?
Any help would be appreciated.

44 Amit Dixit June 14, 2010 at 1:33 pm

How do you set a cron to run every 5 minutes the last hour of the day?

Try this:- */5 23-00 * * * command

45 kamalesh July 13, 2010 at 7:01 am

very very helpful to freshers good job

46 radha August 4, 2010 at 8:11 am

How to set a crontab a specific one year i.e. from 2010 Aug 5th to 2011 Aug 4th?

47 Elgin August 15, 2010 at 11:22 am

How do I write a shell script to automate logging user login activity to detect unauthorized remote access attempts.

48 Anonymous September 6, 2010 at 7:25 am

very useful information about cron.thanks…

49 g September 9, 2010 at 1:02 am

hey, Ramesh…

I got some trouble for doing crontab…
It seems my cron successfully schedule but the command didnt run.

what’s the possibility my schedule didnt work eh?

50 Graham September 10, 2010 at 6:34 am

Hi. Thank you for your article, but I really hope you can help with a problem I’m having. I have the following in my crontab : */1 * * * * DISPLAY=:0.0 fbsetbg -r /home/graham/Pictures/Wallpapers
But that also changes the login background. Is there a way to stop cron from starting until AFTER I login?

51 g September 10, 2010 at 12:08 pm

hey graham,

Try to execute this one to stop cron

[quote]
$> crontab -u userName -r
[/quote]

good luck!

52 Graham September 10, 2010 at 2:57 pm

Hi g. Sorry, but i thought i should let you know i’ve discovered that i don’t get same problem with KDM (while using lucid) but on the other hand, i FINALLY managed to downgrade gdm to 2.20 and theres no problems, so it might be a plymouth problem?

53 g September 11, 2010 at 3:59 am

not sure. probably yes. :D

54 p September 22, 2010 at 5:49 am

Hi,

in my environment i use crontab file to import cron’s table. it’s working great, but sometimes file has some syntax errors. is there any possibility to check file before importing it (of course, done automatically, not by hand).

regards,
p.

55 g September 22, 2010 at 8:54 am

never heard for it.
Syntax error is human made mistake.
Means all are in manual.

56 Jerry September 30, 2010 at 9:06 pm

I just wanted to mention that Linux (well at least the RH based versions, not sure about Deb.) has 3 different cron methods. They can get confusing to someone who comes over from Unix (like me).

1) user defined cronjobs. This is the one you can use the crontab -l, crontab -e, etc. for. The crontab files with crontab formatted entries are stored in /var/spool/cron.
2) For root cron jobs, there’s the file /etc/crontab. Another with crontab formatted entries. When you use the crontab commands when you are root, like crontab -l, you will NOT see the entries in this file, you will see the entries in /var/spool/cron/root.
3) The last is another for root only. If you look in the file /etc/crontab, you’ll it has crontab formatted entries pointing to these directories in /etc:
cron.hourly
cron.daily
cron.monthly
cron.weekly
- each of those directories contain regular script files. Drop a script in one of those, and it will get executed when /etc/crontab call it.
Thanks>

57 manish November 10, 2010 at 7:38 am

these are very helpful for me for my project.
sir could u give me suggesion how to use it with shared memory
thank u sir/mam.

58 Wuzzy November 16, 2010 at 5:25 pm

htop is a good alternative to top. It is quite easier to use, allows to scroll the process list horizontally and vertically and also a tree-view of the processes.

59 pradeep December 22, 2010 at 4:49 am

Very nice.. easy to understand 4 begginers….

60 Sudhir Sinha December 25, 2010 at 5:14 pm

cron Job for every 2nd sunday

* * 8-14 * * if [ `date +\%a` = "Sat" ]; then /apps/scripts/test.ksh; fi >> testlog

These will not work:-
* * 8-14 * 0 if [ `date +\%a` = "Sat" ]; then /apps/scripts/test.ksh; fi >> testlog
or
* * 8-14 * 0 /apps/scripts/test.ksh >> testlog

61 karthik January 1, 2011 at 9:03 am

It helped me alot..

62 Spektator January 19, 2011 at 11:14 am

I came to a situation where the same user needs to run scripts for 2 environment settings.
Can I just set PATH twice in the cron file, first at the beginning for the first environment and then in the middle for the rest of the scripts belonging to the second environment?
Something like this:
PATH=path1…
0 * * * 0 sunday_script
0 0 * * 1 monday_midnight command
PATH=path2…
30 12 * * * noon_script every day (second environment)

63 Roshan Munavar syed February 3, 2011 at 9:25 pm

hai ramesh
I have a doubt about how to send e-mail for particular user for process completed,if a process completed 35% or 45% we need to send a mail for a root user or other user
please explain this critical situation,i want clarification about this as soon as possible
i want explain about this sending e-mail & checking process percentage[%] give command to find that
i hope soon you will reply for me
RMS

64 Marcelo February 4, 2011 at 11:56 am

Thanks, very useful tips

65 Ziad March 16, 2011 at 8:14 pm

Great examples

66 Gowtham April 5, 2011 at 10:44 am

How to schedule a Cron job twice in a day ? I need to schedule the job every day exactly at 3:45 AM and 6:30 AM. Do I need to Create two cronjob’s or single cronjob will be enough for this?

67 Javier July 5, 2011 at 11:14 am

I need to know how to run a one time specific date Cron Job.
say I needed to remove or move a directory on 6/14/2012. How do you tell it to run in 2012 or any other specified date & year?

thanks.

68 Leslie Satenstein July 6, 2011 at 7:09 am

Please review the crontab table. Therein you will find
Field Description Allowed Value
MIN Minute field 0 to 59
HOUR Hour field 0 to 23
DOM Day of Month 1-31
MON Month field 1-12
DOW Day Of Week 0-6
CMD Command Any command to be executed.

Using the combination of dow, and combination of month and day of month and day of week, you can specifiy annual events, with quite precision.
The nth day of the month falls on a different day every year. Make use of that information

69 Javier July 7, 2011 at 5:08 pm

O.K.
This is the command that I am trying to run.

rm -r public_html/file_name
I need to know exactly how to set it up say to run at this exact date of June 4, 2012

can someone please set it up so that I can visually see it.

thanks for all of your time & help

70 Leslie Satenstein July 9, 2011 at 6:48 pm

june 4th is a Monday
Setup the crontab to recognize the day as Monday, the month as June, and set the time that you want it to run, June4 on a Monday only occurs once in about 7 years.

If you cannot do this, then ask someone in a college or programming school.

Read the table above about programming the crontab.

71 Aneesh Hamza July 27, 2011 at 12:52 pm

Hi Javier,
Looks like you want to run a job only one time and instead of cron you can use the at command to run any job at a scheduled time. However, at will only run the job once, unless the job reschedules itself. at is invoked from the command line or from within a shell script. The basic command is:
at < FILE
where FILE is a shell script of some sort and
can be in several forms, such as 12 or 24 hour clock time, a date and time, an offset to the current time (e.g., now + 5 minutes) or similar.

72 Javier Cazares July 28, 2011 at 9:08 am

Thanks for your time & help.
@ Aneesh.

73 Anonymous August 2, 2011 at 3:41 am

Based on the manual here, it’s called MAILTO, not just MAIL.

74 TK Nallappan August 17, 2011 at 8:50 am

Hi All,

You can edit the user jobs from back end. But you should have the root user privilege. The user cronjobs will be located at /var/spool/cron/username

# cat /var/spool/cron/tknalla
* * * * * /usr/local/bin/php /home/tknalla/test.php

# vi /var/spool/cron/tknalla

Instead of running the command “crontab -u tknalla -e”, you can straight away edit this file and can save it.

# crontab -u tknalla -l
0 0 * * * /usr/local/bin/php /home/tknalla/test.php

Thank you guys

75 Pratk August 20, 2011 at 10:00 am

Its very useful….osm work…

76 Tim September 5, 2011 at 6:39 am

There is a typo on number 14, you have crontab -l to edit the crontab file. It should be crontab -e

77 Leslie Satenstein September 6, 2011 at 9:17 am

The example in paragraph 14 is correct as is. The author is not trying to edit the crontab, he/she is using the -l to show you the contents of the crontab. And you are correct, -e would be used if you wanted to edit it.

78 Tim September 6, 2011 at 10:58 am

Oops, my bad.

79 S.Senthil kumar September 9, 2011 at 10:21 pm

How do we schedule a job running for every 45 mins all day?

80 Leslie Satenstein September 11, 2011 at 7:00 am

S.Senthil

Please look at posting number 5

*/10 * * * * /home/ramesh/debian/bin/check-disk-space
Change the /10 to /45
and change the path to your job.

81 Amit Singh October 29, 2011 at 6:50 am

liked the article.

Mail example didnt work. It works fine if i make it MAILTO instead of MAIL as mentioned in the example.

82 kuldeep November 8, 2011 at 3:00 am

really a gud job .. every point understandable….

83 Arul November 29, 2011 at 1:43 am

We need to schedule our script with crontab. Our script contains our own env file to initialize some env variables. We got error while running the crontab. Error is “Variable not initialised from .env file”. Could u please let me know how to use the env variables in the crontab?

Thanks in advance for your assistance…

84 umesh December 12, 2011 at 2:20 am

Thank you so much..

85 Soni Peterson December 22, 2011 at 9:37 pm

There were few cron jobs that were rnning on my machine and i was cheking them by using
crontab -l
command and was getting no cron job mesage
this articles help me and give me understanding of cron jobs and also I have ffind them
Thanx very much

86 Jamie January 5, 2012 at 4:28 am

Great article – I’ve come back to it a few times since you published it.

I’m trying to schedule a cron job to run when it is a particular day of the week AND a particular day of the month. (e.g. every Friday 25th).

If I specify both the day of week and date of month in crontab then it seems to take the OR of these two criteria, rather than the AND. (so would run every friday, and every 25th)

Is there another way I can do this? It seems wrong that it would OR the commands rather than AND them – if I wanted to OR them I could just add them as two separate lines in crontab.

Grateful for any tips.

87 Leslie Satenstein January 6, 2012 at 8:34 am

Jamie, You are right, it is an or situation. However, you may use a bash shell command with date to determine if the day is a Friday, Set up the crontab entry to execute every 25th of the month, and in the bash shell test for Friday.
date %a gives 3 letter day of week, date %u tells you the day number of the week.
I would use the day number with an if, or if you want different actions based on the day of the week, I would use date %u with the day number as an entry to a switch statement.

88 Jamie January 7, 2012 at 7:30 am

Thanks for the tip Leslie. I ended up installing fcron, which when given two criteria, takes the AND of them as you might expect.

89 ananthraj February 23, 2012 at 3:04 am

How to use crone tab to know the login details (who logged into the system or server (locally or remotely))and send the login details mail to any particular mailid

90 milan February 25, 2012 at 10:57 am

I need some help .. I am doing a cron job and I am having trouble with setuid and log files.
I want to redirect the setuid log files to /var/log/rootadmin and how do i do that. rite now the log files are in /var/log/messages but i want it to be in /var/log/rootadmin . so far this is what i have

*/1 * * * * find / -mount -perm /4000 -type f 2>/dev/null> /root/task1.$(date + \%d-\%m-\%Y) | logger -i -p user.info

A help would be really appreciated thank you.

91 Gaurav Sood March 10, 2012 at 1:44 pm

Is it possible to launch an application using crontab?

If yes, please let me know how to do it?

Example: -

40 14 * * * xterm -e ping 4.2.2.2

92 Leslie Satenstein March 10, 2012 at 10:19 pm

GaUrav Sood
That is what crontab is for. Your application should be able to be run using the command line. The space to the right after the time and day selections would contain that command.

Sometimes you need to run a gui application. In that case, it is a command to launch the gui loader.

93 Gaurav Sood March 11, 2012 at 12:15 pm

Leslie,

Thanks for the reply.

“xterm -e ping 4.2.2.2″ command works fine from the command line.

However, when we set the command “40 14 * * * xterm -e ping 4.2.2.2″ under crontab -e, nothing happens.

Any ideas?

Thanks in advance!

94 Leslie Satenstein March 15, 2012 at 9:58 pm

Enter the entire path . as /usr/bin/xterm -e ping ….

whereis xxx will identify the path to xxx

95 vilas March 20, 2012 at 11:35 am

please tell me the crontab entries for running jobs in every 2 hour…
* */2 * * * root /……………. is it OK?

96 Leslie Satenstein March 20, 2012 at 2:39 pm

When in doubt about a crontab entry do the following: Showing an example…

8 */2 * * * date >> /home/mylogon/crontab.test

The only thing that happens is you will fill up a file with dates every */2 hours.

If that works, then the next step is to include the full path or have a path statement in the crontab.

For more information close at hand, do either or both Man crontab or Info crontab.

Man and Info are on your system.

97 Anonymous March 25, 2012 at 8:20 pm

Leslie,

Sorry for replying late.

As per the suggested change still it’s not working.
##########################BEGIN############################
gasood@gasood-Kubuntu:~$ service cron status
cron start/running, process 975
gasood@gasood-Kubuntu:~$ pgrep cron
975
4503
4518
gasood@gasood-Kubuntu:~$ crontab -l
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use ‘*’ in these fields (for ‘any’).#
# Notice that tasks will be started based on the cron’s system
# daemon’s notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
13 22 * * * /usr/bin/xterm -e ping 4.2.2.2

#37 14 * * * xterm -e ping 4.2.2.2
#* * * * * ./getping.sh >> website7.html
gasood@gasood-Kubuntu:~$

##########################END##############################

Thanks in advance!

98 Gaurav Sood March 25, 2012 at 8:21 pm

Leslie,

Sorry for replying late.

As per the suggested change still it’s not working.
##########################BEGIN############################
gasood@gasood-Kubuntu:~$ service cron status
cron start/running, process 975
gasood@gasood-Kubuntu:~$ pgrep cron
975
4503
4518
gasood@gasood-Kubuntu:~$ crontab -l
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use ‘*’ in these fields (for ‘any’).#
# Notice that tasks will be started based on the cron’s system
# daemon’s notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
13 22 * * * /usr/bin/xterm -e ping 4.2.2.2

#37 14 * * * xterm -e ping 4.2.2.2
#* * * * * ./getping.sh >> website7.html
gasood@gasood-Kubuntu:~$

##########################END##############################

Thanks in advance!

99 Leslie Satenstein March 26, 2012 at 7:59 am

Is cron working at all. If not, check the services via the command line or Gnome Gui interface. It should be running. If not, stop and restart the service.

100 Shihabudheen VP May 10, 2012 at 8:49 am

I am trying to send one mail by using crontab but mail is going without attachement, the same script i run manually mail will go with attachement ,,,

really stuck,, can any one help me to get out of this

101 vipin May 20, 2012 at 5:01 am

Hello,

Is this possible to schedule a cron job to work on all sun,wed,fri like this

1 0 * * Sun,Wed,Fri printf > /www/apache/logs/error_log

102 Leslie Satenstein May 20, 2012 at 7:46 pm

Why don’t you try it with today Sun,Wed,Fri and use the date command

1 6 * * Sun,Wed,Fri date >> /tmp/testcron.log

or if you are notsure, make three entries as

1 6 * * Sun date>> /tmp/testcron.log
1 6 * * Wed date>> /tmp/testcron.log
1 6 * * Fri date>> /tmp/testcron.log

103 thefredward May 30, 2012 at 11:43 am

i am trying to set 2 backup one for saturday at 1:00 am whole system the other one mon to fri 9:00 pm for project and data to a tape drive for all

104 thefredward May 30, 2012 at 12:31 pm

using crontab

105 Leslie Satenstein May 31, 2012 at 8:30 am

The answer is quite simple, create two lines in the crontab, one for the 1am time and one for the 9am time.

There is a false idea that a crontab can support only one row. Make two entries.

106 Thefredward May 31, 2012 at 8:47 am

Iam new linux so not sher how to use cron job

107 Alexander June 7, 2012 at 10:27 pm

really your stuffs very helpful… Its working fine

108 mahe July 16, 2012 at 1:15 am

how to stop mysql database particular time……….

109 sree July 16, 2012 at 6:10 am

#!/usr/bin/perl
service mysqld stop
how to run this command crontab………

110 akobulife July 22, 2012 at 7:32 am

hello house, i have done a check on my cron using; ps ax | grep crond, and found out that its running.
but i entered this simple task but cant see any output
* * * * * echo “this is a test”
does it mean this output won’t be displayed on my CLI terminal (konsole)
Or is the output coming out behind the scene cos i cant see any output i.e “this is a test”
plz help me house cos i am new to linux

111 Kiran August 15, 2012 at 4:01 pm

Hi When i give cron entry with below expression will it run on every 10th minute of the hour?
like 9:10,10:10,11:10 on weekdays from 9am -8pm
*/10 09-20 * * 1-5

112 Jason August 18, 2012 at 6:27 am

It will run every 10 minutes in the hour from 9:00 until 20:50, Monday to Friday.

i.e. 9:10,9:20,9:30…20:30,20:40,20:50.

113 dhanda vijay August 20, 2012 at 6:05 am

thanks a lot

114 kanhaiya September 26, 2012 at 5:19 pm

thanks ramesh ……… great way to help

115 Sai Kumar October 15, 2012 at 4:12 am

Very much informative. Thanks.

116 Jalal Hajigholamali November 2, 2012 at 6:22 am

Hi,

very useful article…

117 Pradeep November 29, 2012 at 8:38 am

Hi Ramesh,

Thanks for the post.

My cron is not working and I was not able to see any cron logs in /var/logs/ too.

The following is my crontab entries ::

user1@PC191391:/etc$ crontab -u user1 -l
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use ‘*’ in these fields (for ‘any’).#
# Notice that tasks will be started based on the cron’s system
# daemon’s notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
*/1 * * * * /home/user1/./xyzzyx.sh > ctb.log
*/1 * * * * zenity –info –text ‘ Strech yourself dude…..’

can you please help.

118 Kishore December 13, 2012 at 12:32 am

Very much useful.. Thanks

119 Mayank January 30, 2013 at 1:23 am

Excellent stuff ….

120 Rajendra Prasad February 7, 2013 at 12:20 pm

aesmeeeeee…….

Thanks…. for this article, its really helpful, if possible keep
posting with different type of real time issues.

121 V Nikhil M February 11, 2013 at 6:14 am

In the 13th point you mentioned that “You cannot schedule a every-second cronjob”. But I think its possible with the help of sleep command in the script. I’m not saying we can do it directly in the crontab file (I dont know if we can or cannot use the sleep command in the crontab file), but in the script that we want to execute, we can add a delay before the execution in the length of seconds with the help of sleep command (here and here).

122 isomorphismes March 5, 2013 at 5:36 pm

You could do a cron job every second using a loop like:

while true;
do the thing
sleep 1
done

123 Venkat March 11, 2013 at 10:24 pm

useful post, thank you very much.

124 MJM March 29, 2013 at 2:01 pm

Thanks lot

125 Sumit April 3, 2013 at 4:23 am

Rreally this was a useful article…!

126 Prabhakar Shelke April 3, 2013 at 11:23 pm

Hi Ramesh,

I have set cron job through cpanel. Now i have to execute cron every four months. I need command for this cron. Also I have execute another cron for 4 months and 7 days and 4 months and 14 days and 4 months and 21 days.

First Cron – every four month
Second Cron – every four month and 7 days
Third Cron – every four month and 14 days
Fourth Cron – every four month and 21 days

Please suggest me the linux command for the same..

Thanks Inadvance

Regards,
Prabhakar Shelke.

127 karthik kv April 4, 2013 at 10:35 pm

Great Post Dude Thankyouuuuuuuuuuuu!!!

128 Mohankumar April 9, 2013 at 5:41 am

Useful Post, Thnx.

129 Leslie Satenstein April 9, 2013 at 12:35 pm

Regarding a crontab every four months, this should be easy for you to follow.

You want the remainder of (month+offset)/4 to be zero. If it is april, august, december, then offset is equal to zero. If it is may,september, january, then offset has the value one.
You would trigger the crontab to handle your 4 months via the list with commands as
1,5,9 for month

Now tackle the other dates on your own

130 Prabhakar Shelke April 9, 2013 at 11:34 pm

Hi Leslie,

Thanks for your help.

could you please do one more favour. I wanna linux command for below mentioned time span,

First Cron – every four month
Second Cron – every four month and 7 days
Third Cron – every four month and 14 days
Fourth Cron – every four month and 21 days

Once again Thanks for your support.

Regards,
Prabhakar Shelke.

131 Herman Ginting April 10, 2013 at 2:51 am

HI SathiyaMoorthy

i have some oracle scheduler that runs some job in a specific time. and also a crontab that run in a specific time. did you get any idea how can synchronize all of this operation. the oracle scheduler will run a job after the first job completed then the crontab will run and after the crontab completed the job, then oracle will run the rest job left. is it posible to set it up that way ??

My Best
herman

132 shaik inayathullah May 27, 2013 at 2:38 am

Hi ,

Really good one and very helpful for beginners.can you please correct me in the following, as my cron job not starting at specified time .
i create a text file (cronjob_hotbackup.txt) and following are the entries
45 10 * * * /u01/scripts/HotBackup_EBSPROD_LOCAL_2.sh > /u01/scripts/logs/HotBackup_EBSPROD_LOCAL_2_`date +”%d-%b-%Y”`.log
i switch to user oraprod and use command like crontab cronjob_hotbackup.txt
and check the entries using crontab -l , everything fine without any errors . But still cannot able to start the cron job.
all the permissions and ownership of script, cron file is under user oraprod.

Thanks,
Inayath

133 Frank May 28, 2013 at 1:53 am

00 16 * * * /bin/repoquery –queryformat %{name} –installed -a > /lists/64/”$(hostname -s).list”

Getting the following error in logwatch:
Usage: repoquery [options]
repoquery: error: –queryformat option requires an argument

134 siegfried May 28, 2013 at 5:40 am

To the previous two posters, you need to escape the “%”

e.g. date +\%Y\%m\%d

as in post from december 25 2010 above.

good luck.

135 Sudhir Kumar June 7, 2013 at 10:16 am

Really great post !.. So precise and well detailed at the same time. Really appreciate your efforts putting this post.. Your post saved me a lot time and answered exactly what I wanted to know.

Please write more posts since your technical skills and way of explaining is really excellent.

Thanks again and all the best !
-Sudhir

136 danial July 16, 2013 at 8:23 pm

keep up the good work dude !

137 Anonymous July 17, 2013 at 1:09 am

Very inforamative …
Thanks

138 alam July 19, 2013 at 12:56 am

Hi,

I am new to Oracle dba, i want a full script to take backup of database automatically(every day 5 pm) with the help of crontab. Plz mail me the full details.

Regards,
Alam

139 Ajinkya July 25, 2013 at 9:00 am

Good job man.,…………its really helpfull……

140 Leslie Satenstein July 25, 2013 at 8:50 pm

Alam, Please read the above table at the introduction for crontab.
It tells you how to setup the crontab for what you want, including such rules as leaving out weekends, and the like.

A system may have many crontabs, in fact, one for each user.
Using the Oracle logon, you would create a crontab, with the command
crontab -e

0 17 * * * Oracle command here #for every day at 17:00 hours
0 17 * * 1-5 Oracle command for Monday to Friday. #

The above two examples will get you started

141 Vaibhav Gupta July 30, 2013 at 9:47 am

Nice..Really Helpful

142 Prashanth July 31, 2013 at 11:50 pm

how can i start an application like coovachilli using crontab in centos. I want to start it at EVERY reboot. Where do i mention the commands?
Please help!

143 Tejas Patel August 16, 2013 at 12:52 am

Good One Dude!

144 sathya Gopal September 3, 2013 at 6:09 am

Hi friends,
Please help, iam having an issue, i have to get the oracle database size in a file every one hour daily using crontab and also, to collect statistics of database once in a week,
how is that possible?

145 Leslie Satenstein September 7, 2013 at 6:39 am

Read this subject from beginning to end, and you will know. There are good examples to follow which you can use when you do take the 15 minutes of time to read.

146 ivy October 7, 2013 at 12:59 am

I am assigned a task to ‘migrate’ crontab tasks to another vender scheduing system.
1. How should I know the owner for each crontab line? For example, I could ask root adm to give me the whole list of crontab, however, I still need to identify the owner information for migration purpose. Any alternative other than I use ls -l | awk ‘{print $3, $4 }’ to find the owner information?
2. I think most cases the owner of the script would be the owner of crontab job. Is there possibility that they are different? In this case, it would be wrong for me to use the above ls&awk command to get the information.
Please kindly advise me. Thanks.

147 Leslie Satenstein October 21, 2013 at 5:59 pm

Hi Ivy,

Many times the basename of the script is the application name. If you have the script name, you have the application name, and from that, the application group or idividuals.

Or it could be documented in the script that the crontab initiates.

148 Anonymous October 28, 2013 at 3:15 am

Nice article!!

Is there any way to know when a crontab was installed?

149 Khanh Trinh October 30, 2013 at 9:37 am

How to create crontab
1. Scope of usage
Crontab can be created on workstation or server in Linux
2. Usage command
$crontab -l: List your exist crontab. The result will display on terminal
$crontab -r: Remove all your crontab
$crontab -e: Create your crontab
When you type crontab -e, a vim editor will open for your typing. When you finish setting your crontab, you will save it and close. Crontab will be established automatically. Sometime, crontab can not be established with this way. This problem can be solved by other way.
You will make a text file with tail formated by .v or .txt (Example: schedule.txt or backup_data.v). The content is the crontab setting (Example: * * * * * /home/u/admin/backup_data.csh). Then close file, return to terminal and create crontab by “crontab file” (Example: crontab schedule.txt).

Good luck. ^^

150 Lavanya November 5, 2013 at 5:57 am

Good one. Thanks

151 Craig R Morton November 25, 2013 at 8:57 am

A very handy article. Thanks for posting!

152 ct November 29, 2013 at 1:29 am

hi..
can i run 2 cron job of 1 script?
one script for daily report and another one for weekly report.

153 PC December 12, 2013 at 6:16 pm

How does one set up a cron job to run daily except for a couple of specified dates during the month of December?

154 Leslie Satenstein December 12, 2013 at 8:19 pm

I would leave the crontab alone to execute daily, but in the shell or bash script, I would do a date check as say
SKIPDAY=`date +%Y%,%d`

and in your script, I would check

if [ yyyymmdd -eq $SKIPDAY ] ; then
exit
fi,

There are many other ways as well.
for example
build a “file of dates”
yyyymmdd first date
yyyymm second date
etc

Then I would do a grep of
cat “file of dates” | grep $SKIPDAY
and check the return code. Different return code if grep yields no results.

155 Rizwan December 15, 2013 at 8:08 pm

@ Khanh Trinh

Thanks Much khan for your explanation, to be honest i started just entering number in terminal rather than creating such as crontab -e which gives me error bash: command not found.
You made it very clear for newbies like me.

@Sathya moorthy @Ramesh

Thanks you guys for this wonderful article, i wish you good luck in your all future works.

156 sandip nehare January 3, 2014 at 4:45 am

great tutorial, keep up good work

157 tkp February 5, 2014 at 1:30 am

thanks for ur stuff

158 Vishal Aanand April 1, 2014 at 4:02 am

sir i have made a crontab entry to execute my script on a time mentioned

00 18 * * * 1-6 /bin/bash /seatar.sh

i restarted the crond service and im able to see the pid running

but not working !!

159 jerry April 15, 2014 at 1:05 am

Hello,

I hope my quastion is possible…

Can i make a cronjob to backup my database after a costumer orders something in my webshop?
Now my database backup runs every 3 hours but i want it to run after invioce is sent to custumer..

160 Pinky April 16, 2014 at 9:53 am

i want to schedule stats on production on every Friday evening thru cron tab, can you please help me doing it.

there is already a crontab created for analyzing stats for sys and system schema but it is commented and i want to schedule it for sysadm schema.

can you please help me, as it production i am worried a little

161 Leslie Satenstein April 17, 2014 at 7:33 am

Jerry, what you want is an application change. It has nothing to do with crontab.

Cron has to do with things done on time.

162 jerry April 17, 2014 at 7:39 am

Leslie,

Thank you for explaining.

163 Leslie Satenstein April 17, 2014 at 9:47 pm

Pinky
Is your requirement for Linux or Unix? Do you have the name of a script that you want to have executed, and do you know when Friday evening you want execution to take place. Is it really Friday night, or Saturday at 2am in the morning.

#Here is 1 minute to midnight
59 23 * * 5 script to be executed

#Here is 2am Saturday AM
0 2 * * 6 script to be executed

The script must setup the path and all the symbolic variables required. That is because crontab does not include a path statement or the other environment variables that occur when you log into your system as a user.

Field Description Allowed Value
MIN Minute field 0 to 59
HOUR Hour field 0 to 23
DOM Day of Month 1-31
MON Month field 1-12
DOW Day Of Week 0-6
CMD Command Any command to be executed.

164 Afroz April 22, 2014 at 5:40 am

thanks for the stuff on cron

165 Rajesh April 22, 2014 at 7:48 am

Hi, I want to have a static variable which needs to be updated in every invocation.

Example: If am configuring to send email daily via a perl script,
Day 1: Email No-1
Day 2: Email No-2

The numbers should be updated daily. Is there any way to do it via cron jobs?

166 Harinatha Reddy May 11, 2014 at 4:52 pm

I want know the “yum configuration steps ” can you help me, we tried in search bar we did ‘t get perfect link for this.

167 Santosh June 24, 2014 at 3:22 am

How to run .ktr files through cron?

168 Anonymous July 15, 2014 at 12:35 am

Thanks Leslie.

i have scheduled the stats but i am unable to send mail.

can you please guide me on how to send an email thru cronjob

169 Somesh July 16, 2014 at 6:17 am

Really helpful .. Thanks a lot :)

170 Sagar July 16, 2014 at 1:30 pm

How to setup a cron job to run the script on Sun night at 11:50 pm, once every 2 weeks.

171 Jaydip August 6, 2014 at 12:10 am

Good examples.
This helped me a lot. :)
Thanks

172 Taslim August 26, 2014 at 4:44 am

Hi Ramesh,
I want to set crontab on daily to check tablespace is more than 90% or not. if it is more than 90%, i should get an email alert for this. how can i set it up using crontab?

173 Srihari Konakanchi September 10, 2014 at 7:40 am

these unix cron example were of great help.
many thanks
srihari konakanchi

174 Sergio November 16, 2014 at 11:25 am

Thanks for your tutorial, but I couldn’t find an answer to my question:

Is there a way to run a cron job up to the 2nd Sunday of March and stop?

I mean, all days of March at 7:00 am but at the 2nd Sunday the cron has to stop

Thanks a lot in advance for your kind answer.

175 Abdyrakhman November 17, 2014 at 1:02 pm

$Don

Yes, you can do it with @monthly crontab entries to maintance as follows

@monthly * * * * Sat(or 6) /home/abdyrakhman/check-db-status

176 Abdyrakhman November 17, 2014 at 2:21 pm

@Gaurov

What about if you try it as below:

40 14 * * * echo “xterm -e ping 4.2.2.2″ should works.i am not sure

Leave a Comment

Previous post:

Next post: