首页 > 其他分享 >crontab 环境变量的问题

crontab 环境变量的问题

时间:2024-01-16 14:00:58浏览次数:27  
标签:bin uuid fstab crontab 问题 device 环境变量

1、大致功能就是找出未在fstab中挂载的磁盘,并发送到云平台告警。

#!/bin/bash
source /etc/profile

remote_address="http://1.1.1.1:6666"
user=xxxx
pass=xxxx

except_block=("/dev/sr0" "/dev/cdrom" "/dev/dvd")

blkid_output=$(blkid -s UUID)
all_block=()


check_useless() {
  target=$1
  found=0
  for item in "${except_block[@]}"; do
      if [ "$item" == "$target" ]; then
          found=1
          break
      fi
  done
  echo $found
}

check_block_in_fstab(){
  uuid=$1
  device=$2
  uuid_wc=`grep $uuid /etc/fstab |wc -l`
  device_wc=`grep $device /etc/fstab|wc -l`
  appear_counts=$(($uuid_wc + $device_wc))
  echo $appear_counts

}

main(){
   while IFS= read -r line; do
     uuid=$(echo "$line" | awk '{print $2}' | cut -d "=" -f2 | sed 's/"//g')
     device=$(echo "$line" | awk '{print $1}' | sed 's/://g')
   
     found=`check_useless $device`
     if [ $found -eq 0 ];then
        check_res=`check_block_in_fstab $uuid $device`
        if [ $check_res -ne 1 ];then
            JWT_TOKEN=`curl -s -X POST -d "email=${user}&password=${pass}" "${remote_address}/jwt/api-token-path/"|awk -F '[:"]' '{print $8}'`

            curl "${remote_address}/receive/ReceiveCustomAlarm/" \
               -X POST \
               -H "Content-Type: application/json" \
               -H "Authorization: Bearer $JWT_TOKEN" \
               -d "{
                     \"subject\": \"有磁盘未在fstab中\",
                     \"ip\": \"`hostname -I | cut -d' ' -f1`\",
                     \"hostname\": \"`hostname`\",
                     \"source\": \"服务器\",
                     \"alarm_template_id\": 1, 
                     \"alarm_content\": {
                       \"title\": \"有磁盘未在fstab中\",
                       \"msg\": \"${uuid}-${device}\"
                     }
                   }" 
        fi
     fi
   done <<< "$blkid_output"
}

2、本身这个东西没啥有趣的,但是发现环境变量不一样,每次都能在环境变量上出问题,但是每次解决的方式也不一样,我就记录一下这次的处理方式,供小伙伴的解忧。

2.1)因为脚本用到了blkid这个命令

blkid: /usr/sbin/blkid /usr/share/man/man8/blkid.8.gz

2.2)我看crontab文件的内容,以为不会有什么问题,毕竟手动执行没有问题

cat /etc/crontab 
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

2.3) 然后放到crontab之后,发现命令没有执行,在crontab中的环境变量是

/usr/bin:/bin

2.4)所以需要的命令不在环境变量中,解决方式

2.4.1)使用全路径

2.4.2)引入/etc/profile,加载/etc/profile 文件中的环境变量

标签:bin,uuid,fstab,crontab,问题,device,环境变量
From: https://www.cnblogs.com/bill2014/p/17967520

相关文章

  • paxos协议之衍生协议:Raft协议的简述、协议模型、一致性算法、脑裂问题处理、选举流程
    raft简述raft协议中节点有三种状态leader、follower、candidate(候选人),leader复制日志的管理、客户端的新增更新请求,然后复制到follower节点,如果leader出现故障则follower就会重新选举,新增等操作若被follower所接收则会进行重定向转给leader,follower只负责客户端的读请求。有两......
  • 2024年了,玩Linux,配置环境变量,绕不开这6种方法!
    Linux环境变量配置在自定义安装软件的时候,经常需要配置环境变量,下面列举出各种对环境变量的配置方法。下面所有例子的环境说明如下:系统:Ubuntu14.0用户名:uusama需要配置MySQL环境变量路径:/home/uusama/mysql/binLinux读取环境变量读取环境变量的方法:export命令显示当前系统定义的所......
  • Windows 11 锁屏壁纸问题
    1、打开MicrosoftStore搜索"动态主题"2、安装动态主题并打开3、锁屏并查看效果 ......
  • 解决 Idea HttpClient 无法读取 http-client.env.json 配置的问题
    前言byd就我遇到了这种情况是吧,百度搜的全是nm复制粘贴的垃圾文章步骤创建一个.http文件,使用idea工具栏创建一个env.json,内容无所谓按理说现在应该就能正常使用了,但是如果到这一步还没法读取到这个环境的话,继续向下看右键env.json看看有没有这个,如果没......
  • 计算机专业研究生 复试面试问题
    复试面试问题一、英语问题最喜欢的课程是什么?介绍你的家乡最喜欢的书计算机的五个组成部分数据库建立的过程介绍家庭自我介绍你是如何知道江苏大学以及为何会选择江苏大学自己的优点缺点,以及缺点怎么克服二、数据库方面数据库完整性和安全性的区别答:数据库的完整......
  • 解决Git自动换行问题
    问题描述从main上拉取代码修改后,如果使用gitbash执行gitadd.会弹出警告warning:intheworkingcopyof'cmd/srv-transmission-line/apis/sys_log/create.go',LFwillbereplacedbyCRLFthenexttimeGittouchesitwarning:intheworkingcopyof'cmd/srv-trans......
  • 解决Windows11电脑微信语音通话麦克风自动调节话筒输入音量大小问题
    1、打开【声音设置】-【更多声音设置】2、打开【录制】,找到一个不常用的麦克风,右击“设置为默认通讯设备”,问题解决。......
  • windows作为jenkins slave使用问题
     1、windowsagent添加1.1ssh方式添加管理agent安装cygwin环境参考 https://github.com/jenkinsci/ssh-agents-plugin/blob/main/doc/CYGWIN.md下载安装程序安装openssh,注意要选择版本,否则策略是跳过,倒三角图标处选择版本下一步 安装cygrunsrv  配置ssh......
  • MVCC多版本并发控制和幻读问题的解决
    首先我们先介绍一下锁的分类,再进入今天的正题。一、锁分类:1.从性能上分:乐观锁、悲观锁。乐观锁(用版本号对比或CAS机制)适用于读比较多的场景,悲观锁适用于写比较多的场景。如果在写比较多的场景使用乐观锁,会导致对比次数过多,影响性能。2.从对数据的粒度上分:表锁、页锁、行锁......
  • border设置渐变boder-radius不生效问题解决方案
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><metahttp-equiv="X-UA-Compatible"content="IE=edge"/><metaname="viewport"c......