Linux中的定时任务

Linux中的定时任务

定时任务概述

定时任务的服务名:crond
	crond就是计划任务,类似于我们平时生活中的闹钟,定点执行。
为什么要用crond
	1.系统级别的定时任务
		临时文件清理 系统信息采集 日志文件切割
	2.用户级别的定时任务
		定时向互联网同步时间 定时备份系统配置文件 定时备份数据库的数据
时间同步
	先安装时间同步的命令
		yum install -y ntpdate
	ntpdate [时间同步服务器]
		ntpdate time1.aliyun.com

定时任务的配置文件

命令的环境变量

[Thu Jul 01 12:11:29 root@localhost ~]
 #echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

配置文件

[Thu Jul 01 15:33:41 root@localhost ~]
 vim /etc/crontab
	# 定时任务中,指定bash shell
		SHELL=/bin/bash
	# 在PATH路径中的命令可以直接写不加绝对路径
		PATH=/sbin:/bin:/usr/sbin:/usr/bin
	# 将定时任务输出的结果,发送邮件给root
		MAILTO=root
	# For details see man 4 crontabs
# 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
分 时 日 月 周
#建议:
		1.在写定时任务的时候,所有命令一律使用绝对路径
		2.定时任务中最好不要有输出,如果有,一定要扔到黑洞/dev/null
		3.如果写定时任务,尽量以脚本的形式呈现
		4.每个定时任务请写上注释

时间同步定时任务

## 定时任务的相关命令
	crontab
		-e:edit 编辑(设置闹钟..)
		-l:list 列表(查看闹钟..)
		-r:删除所有的定时任务
		-u:指定用户创建定时任务或者查看定时任务,或者删除定时任务
## 编辑定时任务
	[Thu Jul 01 15:41:04 root@localhost ~]
	 #crontab -e
    #Create by:wk  Time:2021-07-01  Name:3mins ntp time
     */3 * * * * /user/sbin/ntpdate time1.aliyun.com $>/dev/null
## crontab日志文件
     [Thu Jul 01 15:42:00 root@localhost ~]
    #tail -f /var/log/cron

定时任务编写

00 02 * * * ls # 每天凌晨两点执行ls命令
00 02 1 * * ls # 每个月1号的凌晨2点执行ls命令
00 02 14 2 * ls # 每年的2月14号凌晨2点执行ls命令
00 02 * * 7 ls # 每周日的凌晨2点执行ls命令
00 02 * 6 5 ls # 每年6月的周五凌晨2点执行ls命令
00 02 14 * 7 ls # 每个月的14号如果这一天是周日在凌晨2点执行ls命令
00 02 14 2 7 ls # 每年2月14号刚好是周日的凌晨2点执行ls命令
*/10 02 * * * ls # 每天凌晨2点每10分钟执行1次ls命令
* * * * * ls # 每分钟执行一次ls命令
 00 00 14 2 * ls # 每年的2月14日的零点执行ls命令
 */5 * * * * ls # 每5分钟执行一次ls命令
 00 02 * 1,5,8 * ls # 每年的1月,5月,8月的每天凌晨2点执行一次ls命令
 00 02 1-8 * * ls # 每个月的1号到8号的凌晨2点执行一次ls命令
 00 21 * * * ls # 每天的晚上21点执行ls命令
 45 4 1,10,22 * * ls # 每个月的1号,10号,22号的凌晨4点45分执行一次ls命令
 45 4 1-10 * * ls # 每个月的1号到10号凌晨4点45分执行一次ls命令
 3,15 8-11 */2 * * ls # 每2天的8点到11点的3分钟和15分钟执行一次ls命令
 00 23-7/1 * * * ls # 每天的23点-24点,1点-7点各执行一次ls命令
 15 21 * * 1-5 ls # 每周一到周五的晚上21点15分执行一次ls命令

服务器发邮件

yum install -y mailx
## 编辑邮件的配置文件
	[Thu Jul 01 15:48:44 root@localhost ~]
	 #vim /etc/mail.rc
			set from=1922142306@qq.com
set smtp=smtps://smtp.qq.com:465
set smtp-auth-user=1922142306@qq.com
set smtp-auth-password=lskqebgvqcoadfbe
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb/
##发送邮件
		[Thu Jul 01 15:54:15 root@localhost ~]
   #echo 'dsb'|mail -s 'nihaosuai' 3474046419@qq.com
posted @ 2021-08-08 12:12  手可摘星辰1314  阅读(157)  评论(0)    收藏  举报