使用expect在实现跨机器拿日志
1、shell脚本
config_file_path=$1 #集群的ip
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、expect脚本
#!/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
使用expect在实现跨机器拿日志的更多相关文章
- 第23章 COM和ActiveX(COM可以实现跨进程跨机器的函数调用)
控件对象既可在EXE中实现,也可在DLL中实现.这种实现对于COM对象的用户来说是透明的.因为COM提供了调度服务(marshaling).COM调度机制能够化进程甚至跨机器的函数调用,这使得16位程 ...
- 有空可以对C#尝一下鲜,WCF看上去很诱人(跨进程、跨机器、跨子网,跨企业网乃至跨Internet的分布式服务)
说道底不还是要借助NGNIX实现,PHP自身呢?C#的WCF可以脱离IIS就可以实现跨进程.跨机器.跨子网,跨企业网乃至跨Internet的分布式服务,宿主可以是IIS,WinForm,WPF, Wi ...
- wcf跨机器访问的问题
wcf跨机器访问的问题 在wcf跨机器的访问中遇到了各种无法访问的问题,本人也是在通过个人解决问题的基础上发表一下自己的经验,如果还有其他方面可能影响wcf跨机器的问题,还希望大家多多发言! 好了废话 ...
- 关于wcf跨机器访问的问题
在wcf跨机器的访问中遇到了各种无法访问的问题,本人也是在通过个人解决问题的基础上发表一下自己的经验,如果还有其他方面可能影响wcf跨机器的问题,还希望大家多多发言! 好了废话不多说了,正文如下: 1 ...
- 利用SSH端口转发实现跨机器直接访问
在实际项目测试中经常会遇到数据库操作,但是因为公司安全问题,访问数据库往往需要通过跳板机.但通过跳板机,测试效率大打折扣,因此通过使用SSH端口转发,从而达到跨机器直接访问数据库.实际项目中的应用会比 ...
- (Dubbo架构)基于MDC+Filter的跨应用分布式日志追踪解决方案
在单体应用中,日志追踪通常的解决方案是给日志添加 tranID(追踪ID),生成规则因系统而异,大致效果如下: 查询时只要使用 grep 命令进行追踪id筛选即可查到此次调用链中所有日志,但是在 du ...
- Linux中使用expect脚本实现远程机器自动登录_linux shell
首先创建一个expect脚本ssh_expect,文件内容如下: #!/usr/bin/expect -f set hostname [lindex $argv 0] set user [lindex ...
- python3 分布式进程(跨机器)BaseManager(multiprocessing.managers)
A机器负责发送任务和接受结果: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 #ta ...
- 小记------查看‘阿里云机器’yarn 日志
通过ip:8088 页面 复制正在运行的application ID 在linux客户端执行 xshell yarn logs -applicationId application_155869 ...
- 解决WCF跨机器调用时发生“调用方未由服务进行身份验证”的错误
1.服务器端Web.config配置文件,增加如下部分: <system.serviceModel> <bindings> <wsHttpBinding> < ...
随机推荐
- war包形式安装jenkins
(1)下载war包 输入命令:java -jar jenkins.war --httpPort=8080,更改端口 重新登录之后,输入密码创建用户等完成设置 (2)结合Tomcat安装: 将jenki ...
- overflow_auto在flex_1的容器失效
旧文章从语雀迁移过来,原日期为2022-02-22 我们经常使用flex:1来动态分配父容器剩余空间,这时候如果要在容器上增加滚动条,使用overflow: auto可能会失效. 原因: 一般原因:因 ...
- NetCore模型绑定之FromBodyFromUriFromQueryFromRoute
title: .Net Core模型绑定之FromBody.FromUri.FromQuery.FromRoute categories: 后端 date: 2022-10-29 17:21:11 t ...
- 【深入浅出Seata原理及实战】「入门基础专题」带你透析认识Seata分布式事务服务的原理和流程(1)
分布式事务的背景 随着业务的不断发展,单体架构已经无法满足我们的需求,分布式微服务架构逐渐成为大型互联网平台的首选,但所有使用分布式微服务架构的应用都必须面临一个十分棘手的问题,那就是"分布 ...
- angular小练习--手写弹出窗口以及文件上传或者复制粘贴,后读取打印文件内容
实现代码如下 <page-header> <ng-template> </ng-template> </page-header> <div> ...
- 玩转web3第二篇——Web3UI Kit
介绍 开发web2应用的时候,可以很方便找到很多优秀的UI库,比如antd,material ui,element ui等等,但web3应用对应的UI库却不多. 今天给大家介绍一款优秀的WEB3的UI ...
- 【随笔记】NDK 编译开源库 ffmpeg
一.下载源代码 wget http://ffmpeg.org/releases/ffmpeg-4.4.tar.gz tar -zxvf ffmpeg-4.4.tar.gz 二.编译配置脚本 #! /b ...
- 服务器搭建(CenOS 7 Apache + PHP _Mysql环境(LAMP))
服务器搭建(CenOS 7 Apache + PHP _Mysql环境(LAMP)) 第一步.更换阿里云 yum源 curl -o /etc/yum.repos.d/CentOS-Base.repo ...
- 浅析 SeaweedFS 与 JuiceFS 架构异同
SeaweedFS 是一款高效的分布式文件存储系统,最早的设计原型参考了 Facebook 的 Haystack,具有快速读写小数据块的能力.本文将通过对比 SeaweedFS 与 JuiceFS 在 ...
- 《Terraform 101 从入门到实践》 第四章 States状态管理
<Terraform 101 从入门到实践>这本小册在南瓜慢说官方网站和GitHub两个地方同步更新,书中的示例代码也是放在GitHub上,方便大家参考查看. 军书十二卷,卷卷有爷名. 为 ...