day21-定时任务
1.1复盘
- find
- sed
1.2今日内容
- 定时任务
- 定时备份
- 定时巡检
- 定时表白(发邮件...)
2.定时任务
2.1应用场景
- 定时执行任务(脚本)
- 备份:目前是打包备份,后续还有很多备份
- 巡检,检查:最多的,可以检查所有也可以检查某一项目.aide
- 其他任务...
- windows中叫 任务计划.
2.2使用
1.检查是否安装
rpm -qa | grep cron
2.检查是否运行,是否开机自启动
#1.方法1
systemctl is-active cron#2.方法2
systemctl is-enabled cron#3.方法3
systemctl status cron
3.命令与配置文件
- 定时任务管理命令:crontab命令
crontab table表格,
crontab选项 | 命令说明 |
---|---|
crontab -e | edit 编辑定时任务配置 vi /var/spool/cron/root |
crontab -l | list 查看定时任务内容 cat /var/spool/cron/root |
4.配置文件格式
2个部分:
🅰️时间部分
🅱️命令,脚本
- 定时任务中可以使用符号
定时任务时间部分的符号 | 说明 |
---|---|
* | 所有* |
/ | 间隔多久,每隔多久运行 */2****命令 |
- | 表示范围 11-20 00 11-20 *** 命令 |
2.3案例
1.书写定时同步时间
1️⃣测试命令或脚本
ntpdate ntp.aliyun.com
2️⃣书写定时任务配置文件
#1.配置
crontab -e#2.按i进入编辑模式
#每隔2分钟同步时间
*/2 * * * * /sbin/ntpdate ntp.aliyun.com >/dev/null 2>&1
3️⃣定时任务修改完成,检查看日志,看结果(时间是否变化)
/var/log/cron
#1.看日志更新--CMD
tail -f /var/log/cron#2.同时看时间
watch date
2.定时备份/etc/目录(脚本)
1️⃣脚本与测试(脚本不要放在家目录,否则可能有权限故障)
cat /server/scripts/bak-conf-log.sh
#创建脚本写入以下内容#!/bin/bash
#desc:备份etc和日志的脚本
#author:lidao996tar zcf /backup/log-`date +%F_%w`.tar.gz /var/log/
tar zcf /backup/etc-`date +%F_%w`.tar.gz /etc/#执行命令
/bin/bash /server/scripts/bak-conf-log.sh
2️⃣定时任务
[root@devops-99-kylin /backup]# crontab -l
#1.定时同步时间 by lidao996 at 20250530
*/2 * * * * /sbin/ntpdate ntp.aliyun.com >/dev/null 2>&1#2.定时备份
* * * * * /bin/bash /server/scripts/bakconf-log.sh >/dev/null 2>&1
3️⃣看日志,看结果
检查日志定时任务是否运行CMD的行
检查结果是否有,压缩包是否创建
4️⃣修改定时任务时间,改为正常的时间
一切正常后,调整定时任务时间为指定时间.
3.定时巡检脚本
- 目标:获取linux系统各种信息
主机基本信息:
1.主机名
2.ip地址
3.系统版本
4.内核版本
进程信息:
1.进程总数
2.僵尸进程数量
...主机基本信息
主机名:devops-99-kylin
ip地址:10.0.0.210
系统版本: Kylin Linux Advanced Server V10 (Lance)
内核版本:4.19.90-52.22.v2207.ky10.x86_64
cpu架构:x86_64进程信息
进程总数:240
僵尸进程总数:0
- 变量
已知x=5,y=10,问x+y=? x,y未知数
x,y变量
变量 == 书葵花宝典
看书 === $变量名字 查看变量内容
修改 变量名字=欲练此功必先自宫若不自宫也能成功#1.把等号右边给到等号左边
oldboy=lidao996#2.查看是否赋值成功
echo $oldboy#3.创建文件
touch $oldboy#4.查看是否创建成功
ll lidao996
将上述目标写入脚本,接着执行
- 一些小命令-剩着grep来awk去
命令 | 作用 |
---|---|
hostname -I | 显示本机ip地址 |
uname -r | 显示内核信息 |
uname -m | 显示cpu架构 |
- 在脚本中加上进程信息,再稍微优化一下输出
- 运行脚本
- 查看实时进度
🅰️tail -f文件没有就结束
🅱️tail -F文件没有过一会继续执行
- 排除故障
我们会发现ip命令有问题
原因:脚本中没用绝对路径
解决:在脚本中使用/sbin/ip绝对路径即可
3.今日总结
- 定时任务格式
- 定时备份
- 定时巡检
- 脚本书写与测试