linux 定时任务
定时任务的概念
设定指定的时间周期性执行你的计划或者任务
crond 守护进程 分钟级别
两种:
系统级别定时任务:定时清理文件 收集系统信息 定切割日志
用户级别定时任务: 同步时间 定时备份数据
定时任务相关介绍
# -d 把目录像文件一样展示
[root@localhost ~]# ll -d /etc/cron* # 定时相关所有配置文件
drwxr-xr-x. 2 root root 21 Jul 29 08:56 /etc/cron.d # 定时任务的统一存放目录
drwxr-xr-x. 2 root root 57 Jul 29 08:56 /etc/cron.daily # 系统每天执行的定时任务
-rw------- 1 root root 0 Apr 11 2018 /etc/cron.deny # 定时任务的黑名单
drwxr-xr-x. 2 root root 22 Jul 29 08:56 /etc/cron.hourly # 系统每小时执行的定时任务
drwxr-xr-x. 2 root root 6 Jun 10 2014 /etc/cron.monthly # 系统每月执行的定时任务
-rw-r--r-- 1 root root 451 Jun 10 2014 /etc/crontab # 定时任务主配置文件
drwxr-xr-x. 2 root root 6 Jun 10 2014 /etc/cron.weekly # 系统每周执行的定时任务
# 跟定时任务相关的文件
[root@qls ~]# ll /var/spool/cron/root # 存放定时任务的配置文件
[root@qls ~]# ll /var/log/cron # 定时任务执行的过程 日志
[root@qls ~]# ll /var/spool/mail/ # 用户的邮件
# 怎样书写定时任务
crontab == vim /etc/crontab # 书写定时任务的命令
crontab 选项:
1. 语法检查
2. 方便简单
-e # 编辑定时任务 === vi /var/spool/cron/root
-l # 查看定时任务 === cat /var/spool/cron/root
# 定时任务的规则
* # 每(分时日月周)都执行
*/5 # 每 5 (分时日月周)执行 每隔多长时间
/5
1-3 # 时间范围 1-3 连续的时间 1点到3点
1,3 # 不连续的时间 1点和3点
定时相关配置文件
定时任务配置
定时任务时间示例
00 02 * * * #每天的凌晨2点整
00 02 1 * * #每个月的1号凌晨2点整
00 02 14 2 * #每年的2月14日凌晨2点整
00 02 * * 7 #每周日的凌晨2点整
00 02 * 6 5 #每年的6月份的每周五的凌晨2点整
00 02 14 * 7 #每个月的14号或者周日的凌晨2点整
00 02 14 2 7 #每年的2月份的14号或者周日的凌晨2点整
*/10 02 * * * #每天的凌晨2点每隔10分钟
* * * * * # 每分钟
00 00 14 2 * # 每年的2月份14号的凌晨0点整
*/5 * * * * # 每隔5分钟
00 02 * 1,5,8 * # 每年的1和5和8月的每天的凌晨2点整
00 02 1-8 * * # 每个月的1到8号的凌晨2点整
00 21 * * * # 每天晚上21点整
45 4 1,10,22 * * # 每个月的1,10,22号 的凌晨4点45分
45 4 1-10 * * # 每个月的1到10号的凌晨4点45分
3,15 8-11 */2 * * # 每个月每隔两天的8到11点的3分和15分的时候
0 23-7/2 * * * # 每天的23点到7点的每隔2个小时的整点
15 21 * * 1-5 # 每周一到周五的晚上21点15分
定时任务总结
总结:
1. 定时任务要有注释 作者 时间
2. 定时任务的命令一定要在命令行上面执行成功
3. 定时任务要使用绝对路径
4. 定时任务写命令的时候,尽量复制之前执行成功的命令 减少出错率
5. 定时任务的执行结果定向到指定的文件中或者定向到空
6. 定时任务中,有些特殊字符不识别,需要转义
定时发邮件
# 定时发邮箱首先需要安装发邮件的软件包管理
yum install mailx
# 邮件管理配置变量文件
vim /etc/mail.rc
# 发件人
set from=1176494252@qq.com
# 邮件服务器
set smtp=smtp.qq.com
# 发件人用户名
set smtp-auth-user=1176494252@qq.com
# 发件人密码(QQ邮箱不可以使用密码,只能使用授权码)
set smtp-auth-password=xxx
# 登录方式
set smtp-auth=login
# 邮件服务器协议及端口
set smtp=smtps://smtp.qq.com:465
# 忽略证书
set ssl-verify=ignore
# 指定证书位置或者指定别的证书位置,创建证书目录
set nss-config-dir=/etc/pki/nssdb/
# 放到邮件配置变量文件最后
set from=xxx@qq.com
set smtp=smtp.qq.com
set smtp-auth-user=xxx@qq.com
set smtp-auth-password=xxx # 客户端的授权码
set smtp-auth=login
set smtp=smtps://smtp.qq.com:465
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb/
示例:
[root@qls ~]# echo "test" | mail -s "hello" xxxx@qq.com # -s 邮件主题
[root@qls ~]# Error in certificate: Peer's certificate
issuer has been marked as not trusted by the. # 错误忽略