10系统定时任务

2020-08-24  本文已影响0人  Jachin111

作用
类似生活中的闹钟
可以自动完成操作命令
​    夜里备份数据(访问量不大)
​    cp /data /backup
​    自动清理磁盘
​    自动进行时间同步更新 ntpdate

软件种类
cronie 实现定时任务功能
atd 实现定时任务功能(只能一次设置功能)
anacron 实现定时任务功能,应用在家用电脑

检查软件是否安装
rpm -qa cronie 查看系统中是否有指定软件
rpm -ql cronie 查看大礼包中都有什么数据信息
​    /etc/cron.deny
​    /bin/crontab

rpm -qf 查看一个命令文件属于哪个软件大礼包

rpm -ivh 软件包.rpm 手动安装软件
​    -i install 安装
​    -v 显示过程
​    -h 以人类可读方式显示信息

无法解决软件依赖关系
rpm -e cronie --nodeps 卸载

如何让linux和windows主机之间传输数据
yum install -y lrzsz

rz -y 从windows上下载重要数据信息
sz -y 数据信息 从linux上上传重要数据到windows

定时任务实现方式
系统定时任务

for oldboy in {1..200}
do
    cat /root/secure-20161219 >>/var/log/secure
done

日志文件需要定期进行切割处理

系统特殊目录
每小时 /etc/cron.hourly
每一天 /etc/cron.daily
每一周 /etx/cron.weekly
每个月 /etc/cron.monthly

用户定时任务
查看 crontab -l

编辑定时任务 crontab -e
​    编辑配置定时任务信息

crontab -e 编写定时任务 vim /var/spool/cron/ 定时任务配置文件保存
visudo 对普通用户提权 vim /etc/sudoers
定时任务配置文件 /var/spool/cron/root root文件表示是root用户设置的定时任务

常见提示信息
no crontab for root 相应用户没有编辑定时任务
do you want to retry the same edit 定时任务编辑错误是否继续

定时任务实践应用

定时任务环境准备
​    定时任务服务是否启动/是否开机自动启动 systemctl status crond

定时任务服务应用方法
​    配置定时任务服务 crontab -e
​    等价于使用vim命令编辑定时任务配置文件
​    管理用户 vim /var/spool/cron/root
​    普通用户 vim /var/spool/cron/oldboy
​    查看定时任务信息 crontab -l
​    等价于使用cat命令查看定时任务配置文件
​    cat /var/spool/cron/root
​    定时任务命令作用
​    定时任务命令有语法检查功能,配置文件格式不对会报错
​    定时任务命令使用时方便简单

​    定时任务相关文件
​    定时任务服务配置文件所在目录 /var/spool/cron
​    定时任务服务运行记录日志文件 /var/log/cron
​    定时任务服务禁止用户运行名单 /etc/cron.deny(定时任务黑名单)

​    定时任务编写格式
​    什么时间做什么,然后再想下一次什么时候执行;什么时间做什么事情
​    分 时 日 月 周 具体做什么事情
​    利用数值表示时间信息
​    利用特殊符号表示时间信息

​    * 每 定时任务最短执行周期为每分钟
​    */ 每隔
​    01-05 01到05 指定时间的范围
​    14,20 指定不连续的时间信息

​    每天下午02:30分钟 起来学习 30 14 * * *
​    每隔3天 夜里2点 执行数据备份 00 02 */3 * *

​    00/10 01,03 * * * 每天凌晨1点和凌晨3点每隔10分钟0点整
​    */10 01-03 * * *
​    * 01,03 * * *
​    * 01-03 * * *
​    00 02 28 */2 7

​    在写时间信息的时候,如果想表示每隔多久执行什么任务,/上面尽量用*号表示,不要写具体数值
​    时间信息由左到右依次书写,尽量不要跳步
​    当编写定时任务时,日期信息不要和星期信息同时出现

​    定时任务编写案例
​    每天凌晨两点备份 /data目录 到 /backup
​    第一个历程,写上时间信息 00 02 * * *
​    第二个历程,写上完成任务的具体命令 cp -a /data /backup
​    第三个历程,编写定时任务
​    crontab -e
​    00 02 * * * cp -a /data /backup

​    定时任务排查方法

​    检查是否有定时任务配置文件
​    cat /var/spool/cron/root
​    00 02 * * * cp -a /data /backup

​    检查定时任务日志文件
​    ll /var/log/cron

​    日志信息说明
​    执行时间 主机名 编辑定时任务/执行定时任务 以什么用户编辑或执行定时任务/干了什么事情

定时任务编写注意事项
编写定时任务要有注释说明
编写定时任务路径信息尽量使用绝对路径
编写定时任务命令需要采用绝对路径执行
编写定时任务时,可以将输出到屏幕上的信息保存到黑洞中,避免占用磁盘空间
* * * * * sh test.sh &> /dev/null

定时任务中执行命令,如果产生输出到屏幕的信息,都会以邮件方式告知用户,/var/spool/mail/root不断变大占用磁盘空间,占用block空间(不要产生 systemctl stop postfix.service)
当邮件服务停止后,会在/var/spool/postfix/maildrop/产生大量小文件,占用inode空间(不要产生 systemctl start prostfix.service)

编写定时任务尽量不要产生屏幕输出信息
cd /
tar zcf /backup/data.tar.gz ./data 无信息输出
当需要多个命令完成一个定时任务需求时,可以利用脚本编写定时任务

定时任务9句劝告
定时任务规则之前加注释,表示定时任务在干什么
使用脚本替代命令执行定时任务,超过两条就用脚本,脚本相当于命令的集合
定时任务中date命令% * * * * * date + %F%T > /oldboy/time.txt 2>&1
运行脚本一定要用/bin/sh /bin/bash 因为默认脚本没有执行权限
定时任务中命令或脚本结果(正确及错误)定向到黑洞(> /dev/null 2>&1)或追加到文件中 >>/tmp/oldboy.txt 2>&1
避免不必要的程序及命令输出
打包压缩使用相对路径(切到目标目录的上一级打包目标)
定时任务脚本中的程序文件,尽量使用绝对路径
系统与命令位置有关的环境变量问题 $PATH = /usr/bin:/bin

上一篇 下一篇

猜你喜欢

热点阅读