Home  >  Article  >  System Tutorial  >  cronatab periodic task scheduler

cronatab periodic task scheduler

WBOY
WBOYOriginal
2024-06-13 18:49:11308browse

cronatab periodic task scheduler

To perform periodic tasks, ensure that the service is running. The service name is crond; service crond start; systemctl start crond;

Configuration file

/etc/crontab

cron log file

cat /var/log/cron

Introduction

crond is a daemon process used under Linux to periodically perform certain tasks or wait for processing certain events. It is similar to scheduled tasks under Windows. When the operating system is installed, this service tool will be installed by default, and The crond process will be started automatically. The crond process will regularly check whether there are tasks to be executed every minute. If there are tasks to be executed, the task will be automatically executed.

Classification of task scheduling

Task scheduling under Linux is divided into two categories, system task scheduling and user task scheduling.

System task scheduling: The work that the system performs periodically, such as writing cached data to the hard disk, log cleaning, etc. There is a crontab file in the /etc directory, which is the configuration file for system task scheduling.

System task scheduling

By editing the configuration file /etc/crontab, indicate the required running time in the format of the following figure. One line corresponds to one task, and the format is as shown below.
cronatab periodic task scheduler

User task scheduling

Using the command crontab -e under the current user will create a task schedule as the current user. Different from the system task scheduling file format, there is no need to specify which user to run as.
cronatab periodic task scheduler

Time representation

Specify value: specify a specific number

Range value: * means every, execute the task once every this time period.

Discrete values: 10 2, 3, 4 * * *; executed once every 10 minutes at 2, 3, and 4 o'clock. (Executed 3 times in total)

Continuous range: 10 2-10 * * *; executed from 2:10 to 10:10 every day (executed 8 times in total)

Step range: /3 * *; executed 3 times per minute (i.e. executed once every 20 seconds)

Example:

10 10 /6 * *;Execute the task at 10:10 every 6 days

Date and day of the week

10 10 1-10 * 0,6 #Executed at 10:10 on the 1st to 10th of each month, or at 10:10 on Saturdays and Sundays

Example:

1 1 /6 * root echo "hello word " ; Execute the task at 1:01 every 6 days.

1 1-10/3 * * * root echo "hello word"; executed in the first minute of every 3 hours within the range of 1-10 o'clock every day

Create periodic tasks

crontab -e

* * * * * /bin/echo "`date +\%F \%H:\%M:\%S`"

#The command must write the absolute path. Unless variable

is specified

#If you create a new crontab under the user, % needs to be escaped

Other settings when creating

When creating a periodic task, the default editor is vi so there is no syntax highlighting. You can change the default editor to vim

through the following methods

#Writing to /etc/porfile.d takes effect for all users

#Write ~/bash_profile to the current user

export EDITOP=vim

Permission to create tasks

Allow specified users to create tasks

cat /etc/cron.deny #Write the user name in the file so that new tasks cannot be created, but already created tasks will still be executed

Deny the specified user to create a task

cat /etc/cron.allow #Default file does not exist

Allow and deny priority

If the allow file exists, the deny file will not take effect.

If allow is empty, deny all users

If neither allow nor deny exists, no user can create scheduled tasks

Realizing periodic tasks at the millisecond and second level

Use usleep to achieve subtle level operation

usleep 1000000; 1 second

usleep 1000; 1 millisecond

usleep 1; 1 microsecond

Use the loop body and sleep to achieve the second level. Sleep for 20 seconds during the task to be executed every minute.
cronatab periodic task scheduler

The above is the detailed content of cronatab periodic task scheduler. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn