设为首页 收藏本站
查看: 957|回复: 0

[经验分享] PUPPET-通过配置服务器对多台服务器巡检

[复制链接]

尚未签到

发表于 2018-8-2 13:33:48 | 显示全部楼层 |阅读模式
  #!/bin/bash
  #变量需先声明才能使用
  shopt -s -o nounset
  date1=`date +%Y%m%d`
  # mkdir Directory
  #判断/mnt/backup下是否存在已当前日期的文件夹,如果没有则创建,有则跳过
  if [ -e /mnt/backup/$date1 ] ; then
  :
  else
  mkdir -p /mnt/backup/$date1
  fi
  # Hostname
  #定义主机名,生成文件调用
  HostCmd="/bin/hostname"
  HostName=$($HostCmd)
  Name=${HostName%%.*}
  # Operatig system checks
  #检测系统当前版本
  # Version
  check_version (){
  echo "Sytem Version:"
  kernel=`uname -a | awk '{print $3}'`
  hostname=`uname -a | awk '{print $2}'`
  bit=`uname  -a | awk '{print $14}'`
  echo "System Kernel:" $kernel
  echo "System Hostname:" $hostname
  #判断当前系统版本位数
  if [ $bit = x86_64 ]; then
  echo "System Bit: 64位."
  else
  echo "System Bit: 32位."
  fi
  }
  # Network
  #定义网络配置,截取ip地址,mac地址,rx,tx信息,忽略其他信息
  check_network () {
  echo "System Network:"
  ip_addr=`ifconfig -a | grep eth0 -C 8 | grep inet | awk '{print $2}' | awk -F: '{print $2}'`
  ip_mac=`ifconfig -a | grep eth0 | awk '{print $5}'`
  ip_rx_packets=`ifconfig  | grep eth0 -C 8 | grep "RX packets"`
  ip_tx_packets=`ifconfig  | grep eth0 -C 8 | grep "TX packets"`
  ip_rx_bytes=`ifconfig  | grep eth0 -C 8 | grep "RX bytes"`
  echo "IP_add:" $ip_addr
  echo "IP_MAC:" $ip_mac
  echo "IP_RX:" $ip_rx_packets
  echo "IP_TX:" $ip_tx_packets
  echo "IP_RX_Bytes:" $ip_rx_bytes
  }
  # Crontab check
  #检测任务计划
  check_crontab () {
  echo "Crontab check:"
  crontab -l
  }
  # Performance Check
  # Average system load
  #检测负载,检查cpu数量,型号及主频
  check_load () {
  echo "Average system load:"
  W="/usr/bin/w"
  show_loading=$($W | head -1)
  L1=$(echo $show_loading | awk '{print $10}')
  L5=$(echo $show_loading | awk '{print $11}')
  L15=$(echo $show_loading | awk '{print $12}')
  L1=${L1%,*}
  L5=${L5%,*}
  cpu_sl=`cat /proc/cpuinfo | grep processor | wc -l`
  cpu_xh=`cat /proc/cpuinfo  | grep name | cut -f2 -d: | uniq -c`
  cpu_zp=`cat /proc/cpuinfo  | grep name | cut -f2 -d: | uniq -c | awk '{print $8}'`
  echo "1、5、15分钟系统的平均负载为:" $L1 $L5 $L15
  echo "CPU 数量为:" $cpu_sl
  echo "CPU 型号:"  $cpu_xh
  echo "CPU主频:"  $cpu_zp
  }
  # Memory usage
  #检查内存,列出总内存,可用内存及占用百分比,检查内存插槽
  check_memory () {
  Memslot=`dmidecode | grep -A16 "Memory Device$"  | grep Memory | wc -l`
  echo "Memory usage:"
  MemFree=`free -m | grep Mem | awk -F: '{print $2}' | awk '{print $3}'`
  MemBuffers=`free -m | grep Mem | awk -F: '{print $2}' | awk '{print $5}'`
  MemCached=`free -m | grep Mem | awk -F: '{print $2}' | awk '{print $6}'`
  MemTotal=`free -m | grep Mem | awk -F: '{print $2}' | awk '{print $1}'`
  #计算可用内存
  MemSY=`expr $MemFree \+ $MemBuffers \+ $MemCached`
  #计算剩余内存百分比%
  MemB=`awk 'BEGIN{printf "%.2f%\n",'$MemSY/$MemTotal\*100'}'`
  echo "服务器共有" $Memslot "插槽","系统总内存为(M):" $MemTotal ",可用内存为(M):"$MemSY ",剩余百分比为:" $MemB
  }
  # Disk Space
  #检查分区状态
  check_disk () {
  echo "Disk Space:"
  df -h
  }
  # Process Resource
  #检查ps进程,并排除tty及pts信息
  check_process () {
  echo "Process Resource:"
  ps -ef  | grep -v pts | grep -v tty*
  }
  # Security check
  #检查当前登录用户
  # Currently logged in user
  check_who () {
  echo "Currently logged in user"
  who
  }
  # System uptime
  #检查系统运行时间
  check_uptime () {
  echo "System uptime:"
  u=`uptime | awk '{print $3}'`
  echo "系统运行时间为:$u 天"
  }
  # System Account check
  #检查系统账户,剔除nologin用户
  check_account () {
  echo "Sytem Account check:"
  cat /etc/passwd | grep -v nologin
  }
  # System open ports
  #检查服务器开放端口
  check_ports () {
  echo "Sytem open ports:"
  netstat -an | grep LISTEN
  }
  # System chkconfig
  #检查chkconfig,只列出终端3启用状态的。
  check_chkconfig  () {
  echo "Sytem chkconfig:"
  chkconfig --list | grep 3:启用
  }
  # System Iptables
  #检查防火墙配置
  check_iptables () {
  echo "System Iptables:"
  iptables -L
  }
  for i in check_version check_network check_crontab check_load check_memory check_disk check_process check_who check_uptime check_account check_ports check_chkconfig check_iptables
  do
  echo "--------------------------------------------------------------------------------------------------------------------"
  $i
  done > /mnt/backup/$date1/$date1.$HostName.doc  #生成报告

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-545436-1-1.html 上篇帖子: puppet-dashboard安装及用apache和nginx进行管理 下篇帖子: 报错custom_require.rb:36:in gem_original_require: no such file to load--puppet的解决
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表