1.简介
//作用:计划任务主要是做一些周期性的任务
目前最主要的用途就是定期备份数据
//分类:
一次性调度任务at
Schedule one-time tasks with at
循环调度执行cron
Schedule recurring jobs with cron
2.一次性调度执行
//语法格式:
at <TIMESPEC>
<TIMESPEC>示例:now +5min
teatime tomorrow(teatime is 16:00)
noon +4days
5pm august 3 2029
4:00 2024-7-9
//例:初识一次性任务
1.设置一个定时创建用户的任务
#at now +1min
at> useradd test001
at> <EOT> //ctrl+d输入完成,提交任务
job 1 at Tue Jul 9 15:40:00 2024
2.查询任务
#atq
3.验证结果
#id test001
能查询到信息,说明成功
3.循环调度执行
//简介:
cron的概念和crontab是不可分割的
crontab是一个命令,常见于Unix和Linux的操作系统之中
用于设置周期性被执行的指令
该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行
//查看进程状态
# systemctl status crond.service
● crond.service - Command Scheduler
Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
Active: active (running) since 二 2024-07-09 11:18:45 CST; 4h 38min ago
Main PID: 57188 (crond)
Tasks: 1
CGroup: /system.slice/crond.service
└─57188 /usr/sbin/crond -n
7月 09 11:18:45 localhost.localdomain systemd[1]: Started Command Scheduler.
7月 09 11:18:45 localhost.localdomain crond[57188]: (CRON) INFO (RANDOM_DELAY will...)
7月 09 11:18:49 localhost.localdomain crond[57188]: (CRON) INFO (running with inot...)
7月 09 11:18:49 localhost.localdomain crond[57188]: (CRON) INFO (@reboot jobs will...)
Hint: Some lines were ellipsized, use -l to show in full.
# ps aux|grep crond
root 57188 0.0 0.1 126280 1436 ? Ss 11:18 0:01 /usr/sbin/crond -n
//cron示例
计划任务存储位置:# ls /var/spool/cron/
管理方式:
创建计划:crontab -e Edit jobs for the current user
查询计划:crontab -l List the jobs for the current user
管理员可以使用 -u username,去管理其他用户的计划任务
删除计划:crontab -r Remove all jobs for the current users
语法格式 Job format:
# .---------------- 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
# | | | | |
# * * * * * command
说明:分 时 日 月 周 命令或者脚本程序(六个部分用空格隔开)
1、特定值
2、每.. *
3、离散值 #,#,#,#
4、连续的值 #-#
5、指定步长 /# 每隔#,要能整除
如果command里带有%,需要使用反斜杠转义。
command也可使用脚本代替