当前位置: 首页 > news >正文

day22-定时任务故障案例

1. 命令路劲问题

1.1. PATH环境变量

  • 环境变量:系统运行中可以在绝大部分直接使用的变量
    • PS1控制命令格式
    • PATH命令的位置

1.2. 定时任务运行命令或脚本

  • 故障现象
    • 脚本或命令在命令行直接运行时
    • 脚本或命令写入到定时中无法执行或输出命令找不到提示
  • 原因
    • 定时任务运行命令或脚本的时候PATH只有/bin和/usr/bin没有/sbin
    • 导致定时任务运行命令或脚本,/bin/以外的命令,无法识别
  • 解决:
    • 针对特定的命令使用绝对路劲,不推荐,命令较少可以
    • 根本方法
      • 在脚本开头重新定义PATH变量:export PATH=/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
      • 在脚本开头source /etc/profile

1.3. 定向到空问题

  • 命令或脚本定向到空 >/dev/null 2>&1 或者追加到文件 >>/var/log/test.log 2>&1

2. 发送邮件

2.1. 安装软件

  • 麒麟
yum -y install mailx sendmail
  • ubuntu
apt install s-nail

2.2. 配置邮件服务

  • 麒麟
cat >>/etc/mail.rc <<EOF
set from=邮箱地址
set smtp=smtp.163.com 
set smtp-auth-user=邮箱用户名
set smtp-auth-password=授权码
set smtp-auth=login
EOF
  • ubuntu
cat >>/etc/s-nail.rc <<EOF
set v15-compat
set from="邮箱地址"
set mta=smtps://邮箱用户名:授权码@smtp.163.com:465
set smtp-auth=login
EOF

2.3. 测试发送邮件

  • 麒麟
echo "测试邮件" | mail -s 每日表白 邮箱地址mail -s 每日表白 -a /tmp/result.txt 邮箱地址
-a参数可以发送附件
  • ubuntu
s-nail -s "测试" 邮箱地址

3. 巡检脚本与邮件发送结果

  • 麒麟
1.编写巡检脚本
#!/bin/bash
#desc: 巡检脚本
#author zbl
source /etc/profile#基本信息
#1.变量
hostname=`hostname`
ip=`ip a s ens33 | awk -F '[ /]+' 'NR==3 {print $3}'`
os=`hostnamectl | awk -F ':' '/Operating System/ {print $2}'`
kernel=`uname -r`
result_file=/tmp/result.txt
title=`date +%F`-巡检结果
mail=邮箱地址#2.使用
cat>${result_file}<<EOF
###########################################
主机基本信息
1.主机名: $hostname
2.ip地址: $ip
3.系统版本: $os
4.内核信息: $kernel
###########################################
EOF#进程信息
#1.变量
procnum=`top -bn1 | awk 'NR==2{print $2}'`
zombie=`top -bn1 | awk 'NR==2{print $(NF-1)}'`#2.使用
cat>>${result_file}<<EOF
进程信息
1.进程总数: $procnum
2.僵尸进程总数: $zombie
EOF#发送邮箱
cat ${result_file} | s-nail -s ${title} ${mail}2.写计划任务
05 09 * * * bash /server/scripts/check_mail.sh >/dev/null 2>&1
  • ubuntu
#!/bin/bash
#desc: check system info
#author: zbl
source ~/.bashrc
#基本信息
#1.vars变量
hostname=`hostname`
ip=`ip a s ens33 | awk -F '[ /]+' 'NR==4{print $3}'`
os=`hostnamectl | awk -F ':' '/Operating System/{print $2}'`
kernel=`uname -r`
result_file=/tmp/result.txt
title=`date +%F`-巡检结果
mail=邮箱地址#2.使用
cat>${result_file}<<EOF
##################################
基本信息
1.主机名: $hostname
2.ip地址: $ip
3.系统版本: $os
4.内核版本: $kernel
##################################
EOF#进程信息
#1.vars变量
proc_total=`top -bn1 | awk 'NR==2{print $2}'`
zombie=`top -bn1 | awk 'NR==2{print $(NF-1)}'`#2.使用
cat>>${result_file}<<EOF
进程信息
1.进程总数: $proc_total
2.僵尸进程数量: $zombie
EOF#发送邮件
cat ${result_file} | s-nail -s "${title}" ${mail}

4. 总结

  • 定时任务案例
  • 发送邮件
  • 巡检脚本自动发送邮件

相关文章:

  • docker容器间服务访问的问题
  • mimics导出图像 标注文件
  • css样式块重复调用
  • 通义实验室开源针对RAG的预训练框架
  • Lua中table、模块、元表和元方法
  • delta 流响应
  • 【C/C++】delete nullptr;
  • Nginx的反向代理
  • 传输线的特性阻抗和传播延迟
  • 15.为什么HashMap的容量是2的幂次方
  • 代码随想录算法训练营第五十二天
  • 无法删除/重装VirtualBox,提示缺少msi安装包
  • 【系统架构设计师】2025年上半年真题论文回忆版: 论事件驱动架构及应用(包括解题思路和参考素材)
  • 中望CAD与AutoCAD的SWOT对比分析(基于2025线上发布会观察与行业数据)
  • 最终章:终焉之塔 · 前端之道
  • Telnet 命令详解
  • 传感器技术的演进与测试方法探究
  • 【设计模式】责任链
  • Ubuntu 系统grub日志级别设置
  • 专业课复习笔记 10
  • 为什么检测行业不能用网站做/网站建设优化收费
  • 网站开发是固定资产吗/指定关键词seo报价
  • 做网站赌博代理没有盈利违法吗/网络推广和网络营销的区别
  • 山东青岛网站建设公司/seo排名策略
  • 徐州vi设计公司/seo项目是什么
  • 做招聘的网站/中国十大电商培训机构