Linux 定时计划任务 Crontab 设置
就像再 Windows 上有计划任务一样,Linux 自然也有计划任务,而且设置更为灵活,好用。再 Linux 上可以利用 crontab 来执行计划任务, 依赖与 crond 的系统服务,这个服务是系统自带的,可以直接查看状态,启动,停止。
1、安装 crontabs 服务:
RHEL / CentOS / Fedora 安装:
sudo yum install crontabs
Ubuntu / Debian 安装:
sudo apt install cron
2、启动 crond 服务并设为开机启动:
RHEL / CentOS / Fedora 设置:
sudo systemctl start crond
sudo systemctl enable crond
Ubuntu / Debian 设置:
sudo systemctl start cron
sudo systemctl enable cron
3、查看状态:
RHEL / CentOS / Fedora 设置:
sudo systemctl status crond
Ubuntu / Debian 设置:
sudo systemctl status cron
4、设置用户自定义定时任务,修改并保存:
编辑计划任务
sudo vi /etc/crontab
输出结果可以看到:
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
说明:
* * * * *
分别代表:分钟(0-59) 小时(0-23) 日(1-31) 月(11-12) 星期(0-6,0表示周日) 用户名 要执行的命令
示例展示:
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
# 每小时的10,30分钟,以 root 身份分别执行一次命令脚本,共执行2次
10,30 * * * * * root /usr/local/mycommand.sh
# 每小时的10-30分钟,以 root 身份每分钟执行一次命令脚本,共执行20次
10-30 * * * * root /usr/local/mycommand.sh
# 每天11点到13点之间,以 root 身份每10分钟执行一次命令脚本
*/10 11-13 * * * root /usr/local/mycommand.sh
# 每天凌晨3点,以 root 身份执行一次命令脚本
0 3 * * * root /usr/local/mycommand.sh
# 每30分钟,以 root 身份执行一次命令脚本
*/30 * * * * root /usr/local/mycommand.sh
# 每天12点30分;以 root 用户身份运行 reboot 命令
30 12 * * * root reboot
# 每次开机,等待15秒 给予 /root/test 目录、以及它的子目录和文件777权限
@reboot root sleep 15; chmod 777 -R /root/test
5、加载任务,使之生效:
每次修改完计划任务之后,运行这个命令使之马上生效
crontab /etc/crontab
6、查看任务:
crontab -l