首页 > 其他分享 >使用expect在生产环境中跨机器拿日志

使用expect在生产环境中跨机器拿日志

时间:2023-02-07 12:14:19浏览次数:39  
标签:机器 name user expect sdb path 日志 log

1、shell脚本

config_file_path=$1
port=$2
sjc=$3
user_name="sdbadmin"
#read -sp "sdbadmin's password: " 
passwd="1qaz@WSX123"
#获取当前脚本的执行路径
SCRIPT_PATH=$(cd `dirname $0` ; pwd)

if [ ! -n "${config_file_path}" ];then
        echo "主机名或ip的配置文件不能为空,请检查后重新输入!"
        exit 1
fi

if [ ! -n "${port}" ];then
 echo "待匹配的节点名称不能为空,请检查后重新输入!"
        exit 1
fi

if [  -n "${sjc}" ];then
 if [[  ! ${sjc} =~ "-"  ]];then
         echo "时间格式不正确,请输入yyyy-MM-dd格式的日期!"
         exit 1
 fi
 if [[ ${#sjc} -ne 10 ]];then
                echo "时间格式不正确,请输入yyyy-MM-dd格式的日期!"
                exit 1
        fi
fi

sdb_log_path=$(sdblist -l | grep ${port} | awk '{print $10}')
while read line 
do
 defaultPath=${SCRIPT_PATH}/${line}/${port}
 if [ ! -d ${defaultPath} ];then
         mkdir -p ${defaultPath}
 fi 
 /bin/expect -f getProductionEnvLog.exp ${user_name} ${passwd} ${line} ${sdb_log_path} ${defaultPath} ${sjc}
done < ${config_file_path}

2、exp脚本

#!/bin/expect -f  

#用户名
set user_name [lindex $argv 0]
#密码
set user_passwd [lindex $argv 1]
#ip地址
set host_name [lindex $argv 2]
#目标机器待复制路径
set sdb_log_path [lindex $argv 3]
#当前机器路径
set sdb_save_log [lindex $argv 4]
#匹配指定日期的日志
set log_date [lindex $argv 5]


if {$log_date == ""} {
 spawn scp   ${user_name}@${host_name}:${sdb_log_path}diaglog/sdbdiag.log   ${sdb_save_log}
        expect "password*"
        send "${user_passwd}\r"
} else {
 spawn scp   ${user_name}@${host_name}:${sdb_log_path}diaglog/sdbdiag.log.${log_date}*   ${sdb_save_log}
 expect "password*"
 send "${user_passwd}\r"
}

#spawn scp   ${user_name}@${host_name}:${sdb_log_path}diaglog/sdbdiag.log.${log_date}*   ${sdb_save_log}
#expect "password*"
#send "${user_passwd}\r"
expect eof
#interact

 

标签:机器,name,user,expect,sdb,path,日志,log
From: https://www.cnblogs.com/bzp-cyhf/p/17097916.html

相关文章

  • 【机器学习】支持向量机+神经网络+连接学习
    机器学习入门上篇:【机器学习】基础+数据预处理+分类与聚类算法5.支持向量机支持向量机(SupportVectorMachine,SVM)算法,是在统计学习理论的VC维理论和结构风险最小原理......
  • [java] 判断两台机器之间网络是否可达
    Java类库判断两台机器之间网络是否可达,常用ping方法来实现。packagecom.iaiai.test;importjava.net.InetAddress;/****<br/>*Title:Test.ja......
  • 温习日志-13
    温习日志——2023年2月6日下午学习内容InternationalizingDates(Intl)通过newIntl.DateTimeFormat('当地ISO码',可以对创建的对象具体格式化)创建对象,通过.format......
  • 机器学习 吴恩达 第十章 笔记
    十、机器学习系统的设计(MachineLearningSystemDesign)11.1确定执行的优先级  在接下来的视频中,我将谈到机器学习系统的设计.这些视频将谈及在设计复杂的机器学习......
  • 机器学习基础总结
    一,机器学习系统分类机器学习系统分为三个类别,如下图所示:二,如何处理数据中的缺失值可以分为以下2种情况:缺失值较多:直接舍弃该列特征,否则可能会带来较大噪声,从而对......
  • 为在线客服系统接入chatGPT(三):通过chatGPT接口,开发自己的智能聊天机器人,附代码
    通过前面两篇我们已经能够知道通过接口获取chatGPT的内容了下面这个是服务端调用chatGPT接口的代码案例:packagelibimport("fmt""kefu/tools""log")......
  • 白玉楼製作所 ThLink 联机器
    ThLink的目标是,有则的地方就能联机。本体使用GoLang编写,GTK3客户端使用GoLang和C联合编写。v0.0.9加入了非想天则的观战支持,感谢delthas的非想天则协议......
  • 蓝桥杯备战日志(Python)10-最短路-(图的遍历)
    最短路原题如下图所示, 是一个无向图,其中蓝色边的长度是 、橘色边的长度是 、绿色边的长度是 。则从  到  的最短距离是多少?分析本题考查图的遍历,本题使用深度优先(DF......
  • nginx访问日志和错误日志分割
    #!/bin/sh#Program:#Autocutnginxlogscript.#nginx日志路径LOGS_PATH=/home/wwwlogsTODAY=$(date-d'today'+%Y-%m-%d)#移动日志并改名mv${LOGS_PA......
  • 机器学习之sklearn回归--01
    #coding=utf-8importpandasaspdimportmatplotlib.pyplotaspltimportnumpyasnpfromsklearn.preprocessingimportlabelfromsklearn.linear_modelimportLogist......