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在实现跨机器拿日志的更多相关文章

  1. 第23章 COM和ActiveX(COM可以实现跨进程跨机器的函数调用)

    控件对象既可在EXE中实现,也可在DLL中实现.这种实现对于COM对象的用户来说是透明的.因为COM提供了调度服务(marshaling).COM调度机制能够化进程甚至跨机器的函数调用,这使得16位程 ...

  2. 有空可以对C#尝一下鲜,WCF看上去很诱人(跨进程、跨机器、跨子网,跨企业网乃至跨Internet的分布式服务)

    说道底不还是要借助NGNIX实现,PHP自身呢?C#的WCF可以脱离IIS就可以实现跨进程.跨机器.跨子网,跨企业网乃至跨Internet的分布式服务,宿主可以是IIS,WinForm,WPF, Wi ...

  3. wcf跨机器访问的问题

    wcf跨机器访问的问题 在wcf跨机器的访问中遇到了各种无法访问的问题,本人也是在通过个人解决问题的基础上发表一下自己的经验,如果还有其他方面可能影响wcf跨机器的问题,还希望大家多多发言! 好了废话 ...

  4. 关于wcf跨机器访问的问题

    在wcf跨机器的访问中遇到了各种无法访问的问题,本人也是在通过个人解决问题的基础上发表一下自己的经验,如果还有其他方面可能影响wcf跨机器的问题,还希望大家多多发言! 好了废话不多说了,正文如下: 1 ...

  5. 利用SSH端口转发实现跨机器直接访问

    在实际项目测试中经常会遇到数据库操作,但是因为公司安全问题,访问数据库往往需要通过跳板机.但通过跳板机,测试效率大打折扣,因此通过使用SSH端口转发,从而达到跨机器直接访问数据库.实际项目中的应用会比 ...

  6. (Dubbo架构)基于MDC+Filter的跨应用分布式日志追踪解决方案

    在单体应用中,日志追踪通常的解决方案是给日志添加 tranID(追踪ID),生成规则因系统而异,大致效果如下: 查询时只要使用 grep 命令进行追踪id筛选即可查到此次调用链中所有日志,但是在 du ...

  7. Linux中使用expect脚本实现远程机器自动登录_linux shell

    首先创建一个expect脚本ssh_expect,文件内容如下: #!/usr/bin/expect -f set hostname [lindex $argv 0] set user [lindex ...

  8. 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 ...

  9. 小记------查看‘阿里云机器’yarn 日志

    通过ip:8088 页面 复制正在运行的application ID    在linux客户端执行 xshell yarn logs -applicationId application_155869 ...

  10. 解决WCF跨机器调用时发生“调用方未由服务进行身份验证”的错误

    1.服务器端Web.config配置文件,增加如下部分: <system.serviceModel> <bindings> <wsHttpBinding> < ...

随机推荐

  1. Pytorch基础-张量基本操作

    一,张量的基本操作 二,维度变换 2.1,squeeze vs unsqueeze 维度增减 2.2,transpose vs permute 维度交换 三,索引切片 3.1,规则索引切片方式 3.2 ...

  2. .NET周报【1月第2期 2023-01-13】

    国内文章 [ASP.NET Core]按用户等级授权 https://www.cnblogs.com/tcjiaan/p/17024363.html 本文介绍了ASP.NET Core如何按照用户等级 ...

  3. MySQL 字符串长度 char_length、length

    一.方法分类 二.具体方法 函数 描述 区别 char_length(str)或character_length(str) 返回字符串 str 的字符 1.单位为字符2.不管汉字还是数字或者是字母都算 ...

  4. 动力节点——day07

    什么是异常? 异常是指在程序的运行过程中所发生的不正常的事件,它会中断正在运行的程序 Java中异常的存在形式? 异常在java中以类的形式存在,每一个异常类都可以创建异常对象 异常的继承结构图 编译 ...

  5. Xmake v2.7.6 发布,新增 Verilog 和 C++ Modules 分发支持

    Xmake 是一个基于 Lua 的轻量级跨平台构建工具. 它非常的轻量,没有任何依赖,因为它内置了 Lua 运行时. 它使用 xmake.lua 维护项目构建,相比 makefile/CMakeLis ...

  6. What's new in Dubbo 3.1.5 and 3.2.0-beta.4

    在 1 月 27 日,新年伊始,Dubbo 3.1.5 和 3.2.0-beta.4 正式通过投票发布.本文将介绍发布的变化一览. Dubbo 3.1.5 版本是目前 Dubbo 3 的最新稳定版本, ...

  7. Stochastic Methods in Finance (1)

    Bootcamp Topics related to measure theory. 略去,详见测度论专栏中的文章 Expectations 令 \(X\) 为 \((\Omega, \mathcal ...

  8. nginx微信对接

    location /MP_verify_l47ZUDtvieeDlVWR.txt { default_type text/html; return 200 'l47ZUDtvieeDlVWR'; }

  9. Django-request、django连接数据库、ORM

    1.静态文件配置 1.静态文件:不经常变化的文件,主要针对html文件(CSS文件.js文件.img文件.第三方框架文件). 2.django针对静态文件资源需要单独开始一个目录统一存放:static ...

  10. spring-in-action_day02

       开发web应用 # 开发Spring web应用,最基本的需要构建以下组件: 1.pojo类(从数据库获取数据) 2.pringmvc控制器 3.视图模板(页面) ##第一步 构建pojo类 p ...