Crontab is a commonly used timing execution tool for Unix/Linux systems that runs specified jobs without human intervention.
yum install vixie-cron crontabs // install Crontab chkconfig crond on // set to boot from boot service crond start //start
Description: The vixie-cron package is the main program for cron; the crontabs package is the program used to install, uninstall, or enumerate the tables used to drive the cron daemon.
Cron is a resident service that provides a timer function that allows users to execute preset commands or programs at specific times. As long as the user edits the timer's configuration file, the timer function can be used.
View crontab timing execution task list
Add crontab to perform tasks regularly
Crontab task command format
Format: minute hour dayofmonth month dayofweek command
Explanation: Minutes Hours Dates Monthly Payment Week Order
Range: 0-59 0-23 1-31 1-12 0-7, 0 and 7 are on Sunday
In the crontab we will often use the 4 symbols of *, - /n, they all have a specific meaning.
* (asterisk) represents all valid values. For example: 0 23 * * * backup Execute the backup command at 23 o'clock on the day of the week.
, (comma) means splitting multiple values. Such as: 30 9 1,16,20 * * command The command command is executed at 9:30 on the 1st, 16th, and 20th of each month.
- (minus sign) represents a range of time. Such as 0 9-17 * * * checkmail Execute the checkmail command from 9:00 to 17:00 every day.
/n stands for every n long time. For example, */5 * * * * check Executes the check command every 5 minutes, the same as 0-59/5.
Give a few chestnuts:
The backup program is executed every day at 3:00 am: 0 3 * * * /root/backup.sh
The log cleanup process is performed at 8:30 every Sunday: 30 8 * * 7 /root/clear.sh
Execute the test program at 0:00 every week for 1 week: 0 0 * * 1,5 test
The wenchuan program is executed at 14 o'clock every year on May 12th: 0 14 12 5 * /root/wenchuan
Restart php-fpm every 15 minutes from 18 to 23 every night: */15 18-23 * * * /etc/init.d/php-fpm
Execute PHP scheduled tasks
Example 1: Perform business data statistics tasks at 1 o'clock every morning.
5 * * * * /usr/local/bin/php -f /home/web/stat.php >> /dev/null 2>&1
Example 2: Get the WeChat access_token at the 5th minute of each hour.
5 * * * * /usr/local/bin/php -f /home/web/access.php >> /dev/null 2>&1
/usr/local/bin/php is the installation path for your PHP executable.
The minimum granularity of a Crontab scheduled task is minutes, so what if we want to perform a second-level scheduled task? For example, do you perform a task every 10 seconds? One way is to use the bash script sleep to achieve second-level timing. Another way is to use the Swoole extension to implement the second-level task. Next we will post a special timer program that supports the second-level processing based on the swoole extension.