Linux Crontab: Cron and Crontab usage and Examples


Linux Crontab Format - Cron Job Sceduling, usage with Examples

The content of the file can be divided in to 6 fields(first 5 for specifying time and last one for executing scripts/app etc). The first five fields are separated by either a space or a tab and represent the following units, respectively:
* minutes (0-59)

* hour (0-23)

* day of the month (1-31)

* month of the year (1-12)

* day of the week (0-6, 0=Sunday)

An example of crontab format with commented fields is as follows:

# Minute   Hour    Day of Month      Month           Day of Week        Command   
# (0-59)  (0-23)     (1-31)      (1-12 or Jan-Dec)  (0-6 or Sun-Sat) 

Allowed special character for job scheduling(*, -, /, ?, #)

Asterik(*) – Match all values in the field or any possible value
Hyphen(-) – To define range.
Slash (/) – 1st field /10 meaning every ten minute or increment of range.
Comma (,) – To separate items.
Hash  (#) - To comment job, or to make a job inactive.

1. To View/List Crontab Entries
To List or view crontab job entries you can use crontab command with -l option, here you will see all the scheduled jobs.
# crontab -l

00 10 * * * /bin/ls >/ls.txt

2. To Edit Crontab Entries
To edit crontab entry, use -e option with crontab as shown below. After proper entry press escap :wq which saves the file and will make necessary changes after editing.
# crontab -e

3.To Remove Crontab Entries
Caution: Crontab with -r parameter will remove complete scheduled jobs without your confirmation from crontab. You can use -i option which confirm's you before removing entries.
# crontab -r

4. Ask Confirmation Before Deleting Crontab
crontab with -i option will prompt you confirmation from user before deleting user’s crontab.
# crontab -i -r

crontab: really delete root's crontab?

5. To Create Crontab for a User
As a root user you can create crontab entries for a particular user using the following command.
#crontab -e -u username

-e is for editing and -u for specifying user name when you are scheduling crontabs for other users. If users want to schedule their own he can just give (crontab -e). After entering the values save and exit the file. A file will be created in crontab file location as /var/spool/cron/orahow with the above content.

6. To View User’s Crontabs entries
To view crontab entries of other Linux users, login as root and use -u {username} -l as shown below.
[root@orahow]# crontab -u santosh -l
@monthly /home/santosh/monthly-backup
00 09-18 * * * /home/santosh/check-db-status 
7. To Check Cron Process
To find out what are the cron jobs which are running at any instant on a Solaris server, you can use ps command which list all the cron jobs which are running on the server. To Check if the 'cron' daemon is running.
ps -ef | grep cron

There should be a process: /usr/sbin/cron that started at the same time as the system booted (check with who -b).

You can 'bounce' the cron daemon, if you want, with:
/etc/init.d/cron stop
/etc/init.d/cron start

 Most frequently used Crontab Examples in Linux/Unix.

1. Schedule a cron to execute at 5 am daily. 
To schedule a job at 5 am daily, you can edit entries as shown below.
0 5 * * * /var/test/ > /temp/script.out 

2. Schedule a cron to execute on every Sunday at 6 PM.
This type of cron are useful for doing weekly tasks, like backup, log rotation etc.

0 18 * * sun  /var/test/ > /temp/script.out

3. Schedule a cron to execute on every 15 minutes.
If you want to run your script on 15 minutes interval, can configure entries like below. These type of crons are usefull for monitoring.

*/15 * * * * /var/test/ > /temp/script.out

*/15: means to on each 15 minutes.

 4. Schedule a cron to execute on every six hours.
If you want to run script on 6 hours interval. It can be configure like below.

0 */6 * * * /var/test/ > /temp/script.out 

5. To Schedule Job on every weekday(Mon to Fri) during the working hours 10 a.m – 6 p.m.

00 10-18 * * 1-5 /var/test/ > /temp/script.out 

00 – 0th Minute
10-18 : At 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

6. To execute script on every 10th of each month at 11:45pm
Script located in /var/test/ executed at given time and save output to the /temp/script.out.
45 23 10 * * /var/test/ > /temp/script.out 

here * in month field and week field indicates any month and any week execute this script

7. To schedule job on every minute of every hour of every day of every month.
This line executes the "ping" command every minute of every hour of every day of every month. The standard output is redirected to dev null so we will get no e-mail but will allow the standard error to be sent as a e-mail. If you want no e-mail ever change the command line to "/sbin/ping -c 1 > /dev/null 2>&1".

*       *       *       *       *       /sbin/ping -c 1 > /dev/null 

You can also use some of the Special strings for job scheduling:

string         meaning
------         -------

@reboot        Run once, at startup.
@yearly        Run once a year, "0 0 1 1 *".
@annually      (same as @yearly)
@monthly       Run once a month, "0 0 1 * *".
@weekly        Run once a week, "0 0 * * 0".
@daily         Run once a day, "0 0 * * *".
@midnight      (same as @daily)
@hourly        Run once an hour, "0 * * * *".

 Schedule a job to execute on yearly basis.
@yearly timestamp is similar to “0 0 1 1 *”. This will execute job at 00:00 on Jan 1st for every year.
@yearly /var/test/ 

Schedule a tasks to execute on monthly
@monthly timestamp is similar to “0 0 1 * *”. This will execute job at 00:00 on 1st of every month.
@monthly /var/test/ 

 Schedule a tasks to execute on Weekly.
@weekly timestamp is similar to “0 0 1 * *”. It will execute task on first minute of month. It may usefull to do weekly tasks like cleanup of system etc.
@weekly /var/test/ 

 Schedule a tasks to execute on daily ( @daily ).
@daily timestamp is similar to “0 0 * * *”. It will execute job at 00:00 on every day..
@daily /scripts/ 

 Schedule a tasks to execute on hourly ( @hourly ).
@hourly timestamp is similar to “0 * * * *”. It will execute task on first minute of every hour.
@hourly /var/test/ 

Schedule a tasks to execute on system reboot
@reboot is usefull for those tasks which you want to run on your system startup. It will be same as system startup scripts. It is usefull for starting tasks in background automatically.

@reboot /var/test/ 
System Wide Cron Schedule
you can also use predefine cron directory for job scheduling as shown below.
So this is all about Linux crontab for cron job scheduling. Here we have explained basics and limited usage examples, if you are planning to deploy any script under crontab we recommend you to cross-verify again from experts or from similar sources.
Read more ...

Install Wine in RHEL/CentOS/Ubuntu 7.0/6.x/5.x and Fedora 21-12

Wine is used To Run Windows Software on Linux. Linux users generally search for some techniques using which they could install Windows .exe files like VLC, on Linux machine. In this article you will show you a step by step process on "how to install latest version of Wine on Red Hat - RHEL and Debian based operating systems like CentOS, Fedora, Ubuntu, Linux Mint and other supported distributions.

Install Wine on RedHat, Ubantu, CentOS, Fedora

Some of the Extra Features Added In this New Release:

  • New version of the Mono engine.
  • A few more functions implemented in MSHTML.
  • Improved support for restoring display mode.
  • Font metrics improvements in DirectWrite.
  • Various types of bug fixes in this new release.

How to install Wine on redhat Linux based operating Systems

Before wine installation we need to install some of the "Development tools" which is required to install the package smoothly. These tools are mostly required to compile and install them using YUM command. If previously installed no need to install again.

#yum groupinstall 'Development Tools'
# yum install libX11-devel freetype-devel zlib-devel libxcb-devel

 Download Wine Packages for Installation from Source using Wget Command

Download the latest version of source file using Wget command under /tmp directory as a normal User, you can also find the latest release from the wine website.

$ cd /tmp

$ wget

Now, extract the downloaded tar file using the following command

$ tar -xvf wine-1.7.32.tar.bz2

To install extracted Wine Packages

Now, it’s time to compile and build Wine installer using the following commands as normal user, if asked for root password provide the same. Note: The installation process might take up-to 10-15 minutes depending upon your internet speed.

On 64-Bit Systems

$ cd wine-1.7.32/

$ ./configure --enable-win64

$ make

# make install

On 32-Bit Systems

# cd wine-1.7.32/


# make

# make install

To Install Wine On Ubuntu, Debian and Linux Mint

Under Ubuntu based systems, you can easily install the latest development build of Wine using the official PPA. Open a terminal and run the following commands with sudo privileges.
$ sudo add-apt-repository ppa:ubuntu-wine/ppa

$ sudo apt-get update

$ sudo apt-get install -y wine1.7 winetricks

How to Install and run EXE files in Linux, RHEL, CentOS, Fedora, Ubantu

Navigate to the directory location of your windows application setup file and double click on it. It will automatically start the installation of the application (.exe) file. If it does not work then you can start the installation process from the terminal by typing the following command:

wine your_application_setup_file_name.exe


wine VLC.exe

Read more ...



Email *

Message *