shell: sftp获取远程文件信息到本地;sftp上传多个文件;ftp上传多个文件

以下是本人在写一个通用的sftp\ftp上传脚本(带检查和重试功能)时碰到的问题,问过度娘,没有好的解决办法,后来自己解决的,特共享出来,供大家参考。

以下内容是在linux环境进行过验证,AIX下应该是通用。如果有描述不对的地方,请友好提出,不要口吐芬芳,谢谢。

由于办公电脑无法连外网,以下是通过个人电脑纯手工敲打。只做参考,使用时,可将变量都通过变量传入。

1. 简单办法 sftp 获取远程ls信息到本地:

 shell中通过函数的方式,将远程ls内容输出到本地,然后通过grep -v 进行加工去掉不必要的数据,得到最后的 ftpinfo.tmp

sftpGetLsInf()
{
sftp_ls()
{
    sftp  user@127.0.0.1 <<EOF
        cd  tmp
        ls -l test.txt
        exit
EOF
}

    sftp_ls 2>&1 > ./ftpinfo.tmp0
    grep -v 'sftp>' ./ftpinfo.tmp0 > ./ftpinfo.tmp
    rm -f ./ftpinfo.tmp0

}

ftp就好说了,直接 mdir  test.txt ./localdir/ftpinfo.tmp  即可将 test.txt详细信息缓存到本地ftpinfo.tmp文件中

 

2. sftp是否能批量上传文件?

答: 没办法通过 put  a.txt  b.txt   或者 mput a.txt  b.txt  上传多个明确的文件。这样只会将a.txt上传后改名成b.txt。

但可以 mput *.txt  这样通过通配符上传多个文件

 

3. ftp 是否能批量上传文件?

答: ftp 可以通过 mput  a.txt  b.txt 或者  mput  *.txt 上传多个文件。

ftp中 put  a.txt  b.txt 和sftp一样,也会将a.txt上传后改名成b.txt

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值