linux 多台远程设备传递文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 多台远程设备传递文件相关的知识,希望对你有一定的参考价值。
传递文件分两种
linux本地----->远程linux
linux本地<-----远程linux
主要有两种常要方式:ftp 与 scp
1.ftp:方式
登陆ftp:>ftp [email protected] #之后需要输入密码
或者:>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 [email protected]_ip:remote_folder
linux本地<-----远程linux
指令:scp [email protected]_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 [email protected]$hostname
expect "yes/no"
send "yes\\r"
expect "password:"
send "$password\\r"
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以上是关于linux 多台远程设备传递文件的主要内容,如果未能解决你的问题,请参考以下文章
一台手机同步控制多台手机
一台电脑控制多部手机怎么实现
eNSP——通过Telent登录系统
Linux+Shell获取及拷贝最新数据到远程设备
Chromecast 到多台设备
Linux中网卡相关命令以及SSH连接远程主机