zoukankan      html  css  js  c++  java
  • 实现远程服务器操作

    当存在多台实例时,出现问题后,无法确认具体哪个实例让有异常信息,因此,才有该查询日志脚本。

    使用前,需要在部署脚本的服务器上安装expect。可以通过yum install expect安装

    将两个脚本上传至已安装了expect的服务器上,修改logSearch.sh脚本中各个模块对应的实例信息

    logSearch.sh

    #!/usr/bin/expect
    if [ $# -ne 2 ];
    then
      echo "sh logSearch.sh serviceName "grep --color 'ERROR' service.log""
      exit 1
    fi
    declare -A serviceMap
    #依次添加需要的服务与对应的实例关系
    serviceMap["serviceName"]="172.16.xx.xx,172.16.xx.xx"
    
    serviceName=$1
    filter=$2
    hostnameStr=${serviceMap[$serviceName]}
    hostnameArray=(${hostnameStr//,/ })
    echo $hostnameStr
    for hostname in ${hostnameArray[@]}
    do
         echo $hostname  $serviceName $filter
         expect login.exp $hostname $serviceName "${filter}"
    done

    login.exp

    #!/usr/bin/expect
    set hostname [lindex $argv 0]
    set serviceName [lindex $argv 1]
    set command [lindex $argv 2]
    # 非root用户登录的话,这里改为其他用户 spawn
    ssh root@$hostname expect { "yes/no" {send "yes ";} #{send "yes "; exp_continue;} "password:" {exp_send "password ";} #这里是你要输入的密码 } expect "#" send "cd /home/work/${serviceName}/orp/logs " #这里需要调整为对应的服务路径 #expect "#" send "${command} " #expect "#" send "exit " expect eof

    CASE1:查询日志

    sh logSearch.sh serviceName "grep --color 'ERROR' service.log" 

    CASE2:删除日志

    sh logSearch.sh serviceName  "rm service.log"

    CASE3:查询磁盘使用情况

    sh logSearch.sh serviceName  "df -h"

      

  • 相关阅读:
    P1855 榨取kkksc03
    P1359 租用游艇
    P1656 炸铁路
    P1536 村村通
    P3367 【模板】并查集
    P3395 路障(洛谷)
    P1135 奇怪的电梯(洛谷)
    P1331 海战(洛谷)
    conda安装和pip安装的国内镜像配置
    cvpr2020 | 图像增强与恢复论文盘点
  • 原文地址:https://www.cnblogs.com/woniu4/p/13681451.html
Copyright © 2011-2022 走看看