except 脚本中执行scp 命令

Linux ssh下执行ssh命令远程登录其他机器,总是需要输入密码,如果人工去登录,输入密码那还可以,但是让程序自动化登录远程ssh服务器,并执行命令着就比较麻烦了

安装expect

centos安装:  yum  install  expect -y

#!/usr/bin/expect

set timeout 120

spawn scp -r  /tmp/file.txt [email protected]:/mnt/ccc/

expect {

"yes/no" {exec sleep 1

send "yes\r"; exp_continue}

password: {exec sleep 5

send "111111\r" ; exp_continue}

eof exit

}

注意: password:  后要有空格,如果没有空格会没有任何提示报错。

默认情况下 10 秒执行命令就会中断

set timeout 120 添加这一段时间会长很多

时间: 2024-10-06 18:52:34

except 脚本中执行scp 命令的相关文章

shell脚本中解决SCP命令需要输入密码的问题

使用密钥文件. 这里假设主机A(192.168.100.3)用来获到主机B(192.168.100.4)的文件. 在主机A上执行如下命令来生成配对密钥: ssh-keygen -t rsa 遇到提示回车默认即可,公钥被存到用户目录下.ssh目录,比如root存放在: /root/.ssh/id_rsa.pub 将 .ssh 目录中的 id_rsa.pub 文件复制到 主机B 的 ~/.ssh/ 目录中,并改名为 authorized_keys, 到主机A中执行命令和主机B建立信任,例(假设主机B

appium自动化测试框架——在python脚本中执行dos命令

一般我们运行dos命令,会有两种需求,一种是需要收集执行结果,如ip.device等:一种是不需要收集结果,如杀死或开启某个服务. 对应的在python中就要封装两种方法,来分别实现这两种需求. 1.引入包 import os 2.只执行不收集结果 os.system(command) 3.执行并手机结果 os.popen(command).readlines() 4.代码实现 1 #coding=utf-8 2 import os 3 4 class DosCmd: 5 ''' 6 用来封装w

shell脚本中执行mysql命令

1.mysql -hhostname -uuser -ppsword -e "mysql_cmd" 2. mysql -hhostname -uuser -ppsword << EOF    mysql_cmdEOF 如下简单例子: #!/bin/bashmysql -hservicedb-online -uroot -proot123 -e "use test;select * from tests;"  #方法1实例mysql -hservicedb

Crontab执行脚本中的ssh命令访问被拒绝

我们经常会通过crontab来执行定时任务,通常生产环境中在不同主机直接进行登录是通过ssh来连接的.比如我们通过在备份服务器上设定定时任务,定期通过scp(使用SSH的远程拷贝命令)来拷贝远程服务器的数据到备份服务器上,这也是我遇到的一个事情. 环境描述: 脚本与定时任务: 定时任务设置如下: 无论是否执行成功,都把信息输出到2222.txt中 脚本内容如下: 我这里仅用ssh命令来测试,实际上这个命令如果可以正常执行的话,你执行scp命令也一样 #!/bin/bash ssh -v 192.

在bat脚本中执行另一个bat脚本,下面的命令不再执行

在bat脚本中执行另一个bat脚本,下面的命令不再执行,如下bat.bat: bat1.bat bat2.bat 在执行完bat1.bat 之后直接返回,bat2.bat没有被执行,这种情况下,用call bat1.bat即可解决,如下: call bat1.bat call bat2.bat 至于是什么原因也没有去分析,毕竟bat脚本很少写,能用就好.

脚本中调用top命令

Linux系统中top命令是交互式命令,故脚本中执行时会卡住,不再执行下一个命令. 解决办法是:top -n 1. 命令使用详解: 1.简介 显示系统当前的进程和其他状况: top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间 对任务进行排序:而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定. 2.用法 2.1使用格式 n][n 设置退出前屏幕刷新的次数 top输出编排成适合输出到文件的格式,可以使

在 Ruby 中执行 Shell 命令的 6 种方法

我们时常会与操作系统交互或在 Ruby 中执行 Shell 命令.Ruby为我们提供了完成该任务的诸多方法. Exec Kernel#exec 通过执行给定的命令来替换当前进程,例如: $ irb >> exec 'echo "hello $HOSTNAME"' hello codefun $ 注意 exec 利用 echo 命令替换了 irb 进程,然后退出.因为 Ruby 实际上结束了该方法,所以只能有限使用.该方法的缺点是,你无法从 Ruby 脚本中知道命令是执行成功

shell脚本中常用的命令:wget、curl、ss、lsof、nmap、nc、netstat、telnet

shell脚本中常用的命令:wget.curl.ss.lsof.nmap.nc.netstat.telnet 实验环境说明: (1)远程nginx服务器IP:192.169.5.136,nginx服务使用的端口是80: (2)本地ceshiji的IP: 192.169.5.121 在服务器本地监控服务端口常见命令:netstat.ss.lsof(简称三'S') 举例说明常用命令的选项: (1)[[email protected] ~]# netstat -lnp |grep nginx tcp

Shell脚本中执行sql语句操作

这篇文章主要介绍了Shell脚本中执行sql语句操作mysql的5种方法,本文讲解了将SQL语句直接嵌入到shell脚本文件中.命令行调用单独的SQL文件.使用管道符调用SQL文件等方法,需要的朋友可以参考下 对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本.本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考.对于脚本输出的结果美化,需要进一步完善和调整.以下为具体的示例及其方法. 1.将SQL语句直接嵌入到sh