linux 多台远程设备传递文件

传递文件分两种

linux本地----->远程linux

linux本地<-----远程linux

  主要有两种常要方式:ftp 与 scp

                  1.ftp:方式

               登陆ftp:

               >ftp servername@remoteip #之后需要输入密码 或者:

               >ftp remote #回车后提示输入用户名和密码

                 上传|下砸文件: put /home/user/t.sh /home/remoteDir get /home/user/remoteFile /home/localFile

                  这里讲一下ftp按照指定密码多台设备传递: mv.sh

                  #!/bin/ksh

                    root=root

                    pwd=pwd remoteips='10.71.148.15 10.71.148.23' for ip in remoteips do ftp $ip<远程linux 指令:scp local_file remote_username@remote_ip:remote_folder linux本地<-----远程linux 指令:scp remote_username@remote_ip:remote_folder local_file 具体详细连接:http://www.cnblogs.com/hitwtx/archive/2011/11/16/2251254.html 这里详细说说如何实现多台设备传输 实现步骤: 1)写xshell脚本的一个expect 插件实现一台设备的传输编程输入密码 exp.sh #!/usr/bin/expect -f   set timeout 10   set username [lindex $argv 0]   set password [lindex $argv 1]   set hostname [lindex $argv 2]   spawn scp $username@$hostname   expect "yes/no"   send "yes "   expect "password:"   send "$password "    expect eof 测试:./exp.sh root pasword hostname1 #expect接收参数的方式和bash脚本的方式不太一样,bash是通过$0 ... $n 这种方式,而expect是通过set <变量名称> [lindex $argv],例如set username [lindex $argv 0] 2)写一个循环调用脚本 #!/bin/ksh #定义一个远程主机ip数组,也可以通过文件查询方式 remoteips='10.71.148.15 10.71.148.23' uesrname=root passwd= pwd for ip in $remoteips do ./exp.sh $uesrname $pwd $ip done 执行前确保文件可执行 >chmod +x XX.sh

原文地址:https://www.cnblogs.com/niusir/p/5551611.html