• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >linux shell > expect实现单台、多台服务器批量scp传输文件

expect实现单台、多台服务器批量scp传输文件

作者:junjie 字体:[增加 减小] 来源:互联网

junjie 通过本文主要向大家介绍了expect scp,expect,expect是什么意思,expect的用法,expect to do sth等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

今天公司同事要在一台服务器上对另外两台同机房的服务器进行文件传输,两台服务器的文件存放地址一致,密码和key也一致(我们公司在安全上做得有点变态的),为了效率写了下面这个脚本.

1.单台传输脚本

cat /root/soft_shell/allscp.sh

#!/usr/bin/expect
if {$argc < 2} {
        send_user "usage: $argv0 src_file username ip dest_file password\n"
exit
}
##set key [lindex $argv 0]
set src_file [lindex $argv 0]
set username [lindex $argv 1]
set host_ip [lindex $argv 2]
set dest_file [lindex $argv 3]
set password [lindex $argv 4]
##spawn scp -i $key $src_file $username@$host_ip:$dest_file
spawn scp  $src_file $username@$host_ip:$dest_file
expect {
        "(yes/no)?"
                {
                        send "yes\n"
                        expect "password:" {send "$password\n"}
                }
        "password:"
                {
                        send "$password\n"
                }
}
expect "100%"
expect eof
</div>

2.多台传输脚本

cat /root/soft_shell/mainscp.sh

#!/bin/bash
host_list="server_list.conf"
cat $host_list | while read line
do
  host_ip=`echo $line|awk '{print $1}'`
  username=`echo $line|awk '{print $2}'`
  password=`echo $line|awk '{print $3}'`
  src_file=`echo $line|awk '{print $4}'`
  dest_file=`echo $line|awk '{print $5}'`
  ##key=`echo $line|awk '{print $6}'`
  ##./allscp.sh $key $src_file $username $host_ip $dest_file $password
  ./allscp.sh $src_file $username $host_ip $dest_file $password
done
</div>

3.服务器信息文件


cat /root/soft_shell/server_list.conf
</div>


格式为:


ip 用户名 密码 源文件 目标文件地址
</div>

ps:以上3个文件,相信大家都看出来了,都是放在同一文件夹下面的.我本地测试只用ssh密码,没有加上ssh key,如果要用上跟我们公司正式环境一样的安全方式(ssh密码+key,才能登录服务器),那么请自己修改脚本文件,我比较懒这里就不说得那么详细了.

最后来张效果图吧,免得大家说我脚本有问题.

</div>

您可能想查找下面的文章:

  • expect实现单台、多台服务器批量scp传输文件

相关文章

  • linux awk时间计算脚本及awk命令详解
  • shell脚本函数:控制颜色、定位、居中显示的代码
  • Git 常用命令整理
  • 如何正确使用Linux命令–du
  • 一天一个shell命令 linux好管家--磁盘--df命令详解
  • Linux下压缩与解压命令详解
  • Shell编程中的特殊变量之进程状态变量介绍
  • linux命令详解之useradd命令使用方法
  • Linux下的tar压缩解压缩命令详解(小结)
  • Shell脚本实现删除一年前文件功能分享

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Hadoop单机版和全分布式(集群)安装
    • Linux shell脚本输出日志笔记整理(必看篇)
    • Bash Shell字符串操作小结
    • linux定时任务基础命令介绍(14)
    • centos中mysql备份数据库脚本分享
    • Shell踢人的三种方法
    • 实现MySQL定时批量检查表repair和优化表optimize table的shell脚本
    • linux获取系统启动时间示例详解
    • git 使用及常用命令
    • linux下监控网络流量的脚本

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有