ipmitool的shell小工具

簡介

ipmitool 是一種可用在 linux 系統(tǒng)下的命令行方式的 ipmi 平臺管理工具,通過它可以實現(xiàn)獲取傳感器的信息、顯示系統(tǒng)日志內(nèi)容、網(wǎng)絡(luò)遠程開關(guān)機等功能。

應(yīng)用場景

批量遠程控制服務(wù)器開機關(guān)機,下次啟動pxe,配置bmc賬號密碼等等

腳本內(nèi)容

[root@test01 ~]# cat ipmi_tool.sh 
#!/bin/sh
#description: ipmitool command tool
#author: liuxin
#date: 20180117

function usage()
{
  cat << EOF
ipmi_tool.sh: ipmitool command tool
Usage: ipmi_tool.sh [options...] <command>
  -f                  The file of remote host name for LAN interface
  -u                  Remote session username, default value in this shell
  -p                  Remote session password, default value in this shell

Help options:
  -h                  Show this help message
EOF
  return 0
}

function get_params()
{

  [[ $# -lt 1 ]] && usage && exit 0
  while getopts :hu:p:f: opt
  do
    case "$opt" in
    h) usage && exit 0 ;;
    u) USERNAME="$OPTARG" ;;
    p) PASSWORD="$OPTARG" ;;
    f|-file) HOST_FILE="$OPTARG" ;;
    *) echo "Unknown option: $opt" && exit 1 ;;
    esac
  done
  shift $[ $OPTIND - 1 ]

  COMMAND="$@"
  if [ -z "$COMMAND" ]
  then
    echo "command is null" && exit 1
  fi

  return 0
}

function print_params()
{
  echo "USERNAME: $USERNAME"
  echo "PASSWORD: $PASSWORD"
  echo "HOST_FILE: $HOST_FILE"
  echo "COMMAND: $COMMAND"
  return 0
}

function ipmitool_run()
{
  cat $HOST_FILE |grep -v '^#' |while read ip
  do
    received=$(ping $ip -c 5 -i 0.01 |egrep -o '[0-9] received' |awk '{print $1}')
    echo -en "$ip\t$COMMAND:\t"
    if [ $received -gt 0 ]
    then
      echo "ipmitool -I lanplus -U $USERNAME -P $PASSWORD -H $ip $COMMAND"
      #ipmitool -I lanplus -U $USERNAME -P $PASSWORD -H $ip $COMMAND
    else
      echo "Unreachable"
    fi
  done
  return 0
}

function main
{
  USERNAME="root"
  PASSWORD="123456"
  HOST_FILE=""
  COMMAND=""
  
  get_params $@
  ipmitool_run
  #print_params
  return 0  
}

#--------------------
main $@

[root@test01 ~]# cat ip.txt 
192.168.1.1
192.168.1.2
192.168.1.60

[root@test01 ~]# ./ipmi_tool.sh -f ./ip.txt chassis power reset
192.168.1.1 chassis power reset:    ipmitool -I lanplus -U root -P 123456 -H 192.168.1.1 chassis power reset
192.168.1.2 chassis power reset:    Unreachable
192.168.1.60    chassis power reset:    ipmitool -I lanplus -U root -P 123456 -H 192.168.1.60 chassis power reset

[root@test01 ~]# ./ipmi_tool.sh -u admin -p pass -f ./ip.txt chassis power reset
192.168.1.1 chassis power reset:    ipmitool -I lanplus -U admin -P pass -H 192.168.1.1     chassis power reset
192.168.1.2 chassis power reset:    Unreachable
192.168.1.60    chassis power reset:    ipmitool -I lanplus -U admin -P pass -H 192.168.1.60   chassis power reset
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容