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
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.
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.
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.
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.
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
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
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
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
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.
The above is the detailed content of cronatab periodic task scheduler. For more information, please follow other related articles on the PHP Chinese website!