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

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. 总结

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

http://www.xdnf.cn/news/9548.html

相关文章:

  • 秒杀系统—2.第一版初步实现的技术文档
  • 医院闭环系统业务介绍
  • Linux基础 -- 设备树引脚复用之`/omit-if-no-ref/` 用法解析
  • 8.7 基于EAP-AKA的订阅转移
  • Springboot 集成 TDengine3.0版本
  • git stash 的使用
  • qt ubuntu 20.04 交叉编译
  • python实战:在Linux服务器上使用LibreOffice命令行批量接受Word文档的所有修订
  • MCP 与 AI 模型的用户隐私保护——如何让人工智能更懂“界限感”?
  • Python-114:字符串字符类型排序问题
  • HBO Max 中国大陆订阅与使用终极指南(2025 最新)
  • LangChain4j(17)——MCP客户端
  • 在PHP编程中包(Package)和库(Library)怎么区分?
  • 企业级AI开启落地战,得场景者得天下
  • LeeCode 94. 二叉树的中序遍历
  • YARN架构解析:大数据资源管理核心
  • 【MYSQL】mysql单表亿级数据查询优化处理
  • 2021年认证杯SPSSPRO杯数学建模D题(第二阶段)停车的策略全过程文档及程序
  • 探寻黄金奶源带,悠纯乳业打造西北乳业新标杆
  • Spring AI框架快速入门
  • day12 leetcode-hot100-20(矩阵3)
  • 【Linux】网络(上)
  • Vue开发系列——如何使用Vue
  • 图像卷积OpenCV C/C++ 核心操作
  • 【DB2】ERRORCODE=-4499, SQLSTATE=08001
  • 【C++基础知识】匿名命名空间
  • mysql prepare statement
  • 如何查询服务器的端口号
  • 数据结构 -- 树相关面试题
  • SFTP工具类实现文件上传下载_