Bootstrap

Centos配置一次性任务at和周期性任务crontab

一次性计划任务

使用命令at

#没有这个命令要安装包
yum insatll -y at


#启动服务并设置开机自启动

systemctl start atd
systemctl enable atd

定义一个具体的时间

at "10:40 2020-03-04"

-l查看
-r 删除
-c job_id(为-l 里面的id) 查看对应的文件内容

at任务的文件地址
在/var/spool/at/目录下
执行完就会自动删除

其他的时间定义方式

例子

at now + 1 day			一天后
at now + 1 min			一分钟后
at now + 1 hours		1小时后
at 20:00 2021-9-30		在某天某时
at 17:00 tomorrow 		明天下午5点执行
at 6:00 pm + 3 days 	在三天后的下午6点执行

在输入过程中的键盘操作

ctrl + backspace 删除
ctrl + d 完成

周期性任务

启动服务并设置开机自启动

systemctl start crond
systemctl enable crond
crontab -e -u user_name
-e 编辑
-u 指定用户(root才可以-u)(没有指定就是当前用户)
-l 查看
-r 删除所有


#任务定义的格式

 *        *       *         *       *      command 
分钟      时      日        月      星期		命令

小技巧:分时日月星

#参数配置
星期可以用0 7 表示
*/	时间间隔(每隔多久) 							例:*/2
*	代表取值范围内的所有数字					(任意/每)
/	指定时间的间隔频率							例:*/10每十分钟
-	代表某个数字到某个数字,例如xx时间-xx时间			例:1-18
,	分开几个零散的数字,例如零散的时间					例:6,10-13,20

#注意
定义星期就不要定义日月,日月就为*
定义日月就不要定义星期,星期就为*
周期性任务执行完是不会删除的
crontab不支持每秒的任务

例子:

每隔两分钟执行
*/2	*	*	*	*	command 

每一天两点1分开始备份:
1	2	*	*	*	tar zcvf /opt/grub2.tar.gz	/boot/grub2

每天晚上21:00 重启apache
0	21	*	*	*	systemctl restart httpd
			
每月1、10、20日的2 : 45重启apache。
20 2 1,10,20 * *  systemctl restart httpd

每月1到10日的2 : 45重启apache。
20 2 1-10 **	systemctl restart httpd
			
每隔两天的上午8点到12点的第3和第15分钟重启apach
3,15 8-12 */2 * *  systemctl restart httpd

晚上11点到早上7点之间,每隔一小时重启apach
0 23-7/1 * * *	systemctl restart httpd

删除:
删除某个周期计划任务,用crontab -e 编辑,删除对应的内容就行

任务地址


ls /etc/cron	按两下tab键

注: cron.d/		#是系统自动定期需要做的任务,但是又不是按小时,按天,按星期,按月来执行的,那么就放在这个目录下面。
cron.deny		#控制用户是否能做计划任务的文件;
cron.monthly/	#每月执行的脚本;
cron.weekly/	#每周执行的脚本;
cron.daily/		#每天执行的脚本;
cron.hourly/	#每小时执行的脚本;
crontab			#主配置文件 也可添加任务;

查看日期

cal显示日历
cal 年份(2020)显示该年的日历
cal 月名(june)显示该月的日历

;