传递文件分两种
linux本地----->远程linux
linux本地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本地[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