Crond and Crontab detailed

Source: Internet
Author: User
Tags delete key
One, crontab is what.

1. Timing Task Software Type

At the scheduled command that ends only once, you need to start a back-end ATD service.
Crontab need to start a service Crond, Crond service is implemented through Crontab command.
Anacron can not be performed periodically, only in the days of the cycle, but there is a feature, in the shutdown state did not > perform the task, the next time the boot will be able to fill the implementation

Note: Crontab is the most commonly used timing task.
2. Crontab work
After running Linux, the boot Crond task, the system will check every minute whether there are tasks to perform (cyclic detection) The default system can be logged users can use the crontab to define scheduled tasks. However, you can restrict permissions by/etc/cron.allow files.
  
3. Crontab supports two states:
A. Direct preparation of planning tasks;
B. The way to use the directory, placed in the directory will be executed regularly, the timing directory can be set in the/etc/crontab.
Crond is a daemon that is used by Linux to periodically perform certain tasks or wait to handle certain events, similar to the Scheduled tasks under Windows, when the operating system is installed, the Service tool is installed by default, and the Crond process is started automatically. The Crond process periodically checks to see if there are any tasks to perform, and if there are tasks to perform, the task is automatically performed.

The task scheduling under Linux is divided into two types: System task scheduling and user task scheduling.

System task scheduling: The work to be performed periodically by the system, such as writing cache data to hard disk, log cleaning and so on. There is a crontab file in the/etc directory, which is the configuration file for system task scheduling.
The/etc/crontab file includes the following lines:
  

The first four lines are the environment variables that are used to configure the Crond task to run, and a shell variable that specifies which shell the system will use, this is bash, and the second line path variable specifies the path to the System execution command. The third row mailto variable specifies that Crond's task execution information will be emailed to the root user, and if the value of the mailto variable is null, the task execution information is not sent to the user, and the home variable on line fourth specifies the master directory to use when executing the command or script
User Task scheduling: Tasks that users perform on a regular basis, such as user data backup, timed email reminders, and more. Users can use the Crontab tool to customize their scheduled tasks. All user-defined crontab files are saved in the/var/spool/cron directory. The file name is the same as the user name. User Rights file:

File:

/etc/cron.deny

Description

The users listed in this file are not allowed to use the crontab command

File:

/etc/cron.allow

Description

Users listed in this file are allowed to use the crontab command

File:

/var/spool/cron/

Description

Directory of all user crontab files, named after user name

The meaning of the crontab file:

In the crontab file created by the user, each row represents a task, each field in each row represents a setting, its format is divided into six fields, the first five paragraphs are time set, and the sixth paragraph is the command segment to be executed, in the following format:

Minute   hour   Day   month   Week   command

which

Minute: Represents a minute, which can be any integer from 0 to 59.

Hour: Represents an hour, which can be any integer from 0 to 23.

Day: Represents a date, which can be any integer from 1 to 31.

Month: Represents the month, which can be any integer from 1 to 12.

Week: Indicates the day of the week, can be any integer from 0 to 7, where 0 or 7 represent Sunday.

command: The commands you want to execute, either system commands or script files that you write yourself.


  
In each of these fields, you can also use the following special characters:

Asterisk (*): represents all possible values, such as the month field if it is an asterisk, indicates that the command operation is performed every month after the constraints of other fields are met.

Comma (,): You can specify a list range with a comma-separated value, for example, "1,2,5,7,8,9"

Medium Bar (-): You can use the middle bar between integers to represent an integer range, for example, "2-6" means "2,3,4,5,6"

Forward slash (/): You can use a forward slash to specify the interval frequency of the time, for example, "0-23/2" means to perform every two hours. The forward slash can also be used with the asterisk, such as */10, which, if used in the minute field, means that it is executed every 10 minutes. Crond Service

Service Operation Description:

/sbin/service crond Start//start service

/sbin/service Crond stop//off service/sbin/service crond restart

//Restart service

/ Sbin/service Crond Reload//Reload Configuration

To view the Crontab service status:

Service Crond Status

To manually start the Crontab service:

Service Crond Start

To see if the Crontab service is set to boot, execute the command:

Ntsysv

Join the boot auto start:

Chkconfig–level Crond on
crontab Command Detailed

Command format:

crontab [-u user] file

crontab [-u user] [-e |-l |-r]

Command function:

With the crontab command, we can execute the specified system instructions or shell script scripts at a fixed interval of time. The unit of time interval can be any combination of minutes, hours, days, months, weeks, and more. This command is designed to work with periodic log analysis or data backup.

Command parameters:

-u User: Used to set a user's crontab service, for example, "-u ixdba" means setting the IXDBA user's crontab service, which is typically run by the root user.

File:file is the name of the command file, which means that file will be crontab as a task list and loaded into crontab. If this file is not specified on the command line, the crontab command accepts the commands typed on the standard input (keyboard) and loads them into crontab.

-E: Edit the contents of a user's crontab file. If you do not specify a user, edit the current user's crontab file.

-L: Displays the contents of a user's crontab file, or displays the contents of the current user's crontab file if no user is specified.

-r: Deletes a user's crontab file from the/var/spool/cron directory, and deletes the current user's crontab file by default if no user is specified.

-I: Give a confirmation prompt when deleting a user's crontab file.

Common methods:

1). Create a new crontab file

One of the first things to do before considering submitting a crontab file to a cron process is to set up the environment variable editor. The cron process depends on it to determine which editor to use to edit the crontab file. 9 9 of UNIX and Linux users use VI, if you do the same, then you edit the $ home directory. Profile file in which to add one line:

        Editor=vi; Export EDITOR

Then save and exit. You may wish to create a file named Cron, which is the user name, for example, Davecron. Add the following content to the file.

  # (Put your own initials) echo the ' date to the console every

  # 15minutes between 6pm and 6am

  0,15,30,45 18-06 * * */bin/echo ' date ' >/dev/console

Save and exit. Make sure that the first 5 fields are separated by spaces.

In the example above, the system will output the current time to the console every 1 5 minutes. If the system crashes or hangs, you can see at what time the system stopped working from the last time it was displayed. In some systems, using tty1 to represent the console, the above example can be modified according to the actual situation. To submit the crontab file you just created, you can use this newly created file as a parameter to the cron command:

$ crontab Davecron

The file is now submitted to the Cron process, which will run every 1 to 5 minutes.

Also, a copy of the newly created file has been placed in the/var/spool/cron directory, and the filename is the username (that is, Dave).

2). List crontab Files

To list crontab files, you can use:

$ crontab-l 0,15,30,45,18-06 * * * *

 /bin/echo ' date ' > dev/tty1

You will see something similar to the above. You can use this method to make a backup of the crontab file in the $ H O M e directory:

$ crontab-l > $HOME/mycron

In this way, once you accidentally delete the crontab file, you can use the method described in the previous section to recover quickly.

3). Edit Crontab File

If you want to add, delete, or edit entries in the Crontab file, and the E D i to r environment variable is set to V I, you can edit the crontab file with V I, and the corresponding command is:

$ crontab-e

You can modify the crontab file as you would edit any other file using V I and exit. If you modify some entries or add new entries, the C R o N will perform the necessary integrity checks on the file when you save it. If one of the fields has a value that is outside the allowable range, it prompts you.

When we edit the crontab file, we may add a new entry. For example, add the following article:

    # Dt:delete Core Files,at 3.30am on 1,7,14,21,26,26 for each month

     3 1,7,14,21,26 * */bin/find-name "core"-E xec rm {} \;

Now save and exit. It's a good idea to add a comment above each entry in the crontab file so that you know its function, uptime, and more importantly, who knows which user's job.

Now let's list all of its information using the CRONTAB-L command we talked about earlier:

    $ crontab-l 

    # (Crondave installed on Tue could 4 13:07:43 1999)

    # Dt:ech The date to the console every minites
  0,15,30,45 18-06 * * */bin/echo ' date ' >/dev/tty1

    # dt:delete core Files,at 3.30am on 1,7,14,21,26,26 Each month

    3 1,7,14,21,26 * */bin/find-name "core"-exec rm {} \;

4). Delete crontab file

To delete a crontab file, you can use:

$ crontab-r

5. Recovery of Lost crontab files

If you accidentally delete the crontab file and assume you have a backup under your $ H O M e directory, you can copy it to/var/spool/cron/, which is the username. If the copy cannot be completed due to permission issues, you can use:

$ crontab <filename>

Among them, is the file name of your copy in the $ H O M e directory.

I suggest that you save a copy of the file in your own $ H O M e directory. I have had a similar experience, several times mistakenly deleted the crontab file (because the R key is close to the right of the E key). This is why some system documents do not recommend editing the crontab file directly, but instead edit a copy of the file, and then resubmit the new file.

Some crontab variants are a bit weird, so be careful when using the crontab command. If you omit any of the options, crontab may open an empty file, or it might look like an empty file. At this point, click the Delete key to exit, do not press, or you will lose the crontab file.

Working with instances

Example 1: Execute command every 1 minutes

Command:

* * * * command

Example 2:3rd and 15 minutes per hour execution

Command:

3,15 * * * command

Example 3:3rd and 15 minutes from 8 o'clock in the morning to 11.

Command:

3,15 8-11 * * * command

* * There are spaces in the middle, do not forget to view the cron run log:

See/var/log/cron.log This file can be, can use tail-f/var/log/cron.log observation

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.