作用
类似生活中的闹钟
可以自动完成操作命令
夜里备份数据(访问量不大)
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
网友评论