linux主机之间单个文件上传下载
#!/bin/bash
#SFTP配置信息
#IP
IP=192.168.x.x
#端口
PORT=22
#用户名
USER='xxx'
PASSWORD='xxx'
#SFTP目录
REM_DIR=$1
#待上传文件
FILNM=$2
lftp -u ${USER},${PASSWORD} sftp://${IP}:${PORT} <<EOF
cd ${REM_DIR}
#get ${FILNM}
put ${FILNM}
by
EOF
get:sh xx.sh /etc passwd
put: sh xx.sh ./passwd /etc
linux主机之间多个文件上传下载
#!/bin/bash
#SFTP配置信息
#IP
IP=192.168.14.33
#端口
PORT=22
#用户名
USER='lcims'
PASSWORD='lcIMS!#5'
#SFTP目录
REM_DIR=$1
#待上传文件
FILNM=$2
FILNM1=$3
lftp -u ${USER},${PASSWORD} sftp://${IP}:${PORT} <<EOF
cd ${REM_DIR}
get ${FILNM}
get ${FILNM1}
by
EOF
get:sh xx.sh /etc passwd passwd1
或者使用mget,mput批量上传下载,mget时只能带一个变量,可使用通配符匹配
#!/bin/bash
#SFTP配置信息
#IP
IP=192.168.14.33
#端口
PORT=22
#用户名
USER='lcims'
PASSWORD='lcIMS!#5'
#SFTP目录
REM_DIR=$1
#待上传文件
FILNM=$2
lftp -u ${USER},${PASSWORD} sftp://${IP}:${PORT} <<EOF
cd ${REM_DIR}
mget ${FILNM}
#mpet ${FILNM}
by
EOF
get:sh xx.sh /etc passwd*
文件批量上传至多台主机–只用于put
#!/bin/bash
array_name=(192.168.xx.xx 192.168.xx.xxx 192.168.xx.yy) --可定义多个ip
for ays in ${array_name[*]}; do
{
#SFTP配置信息
IP=$ays
PORT=22
#用户名
USER='xxx'
PASSWORD='xxx'
#待上传文件
FILNM=$2
lftp -u ${USER},${PASSWORD} sftp://${IP}:${PORT} <<EOF
put ${FILNM}
by
EOF
echo `date "+%y-%m-%d %H:%M:%S"`
}
done
put: sh xx.sh ./passwd /etc --同时将本机passwd文件上传至定义主机的/etc目录下