使用ssh 批量上传文件

上传文件大多数用的是ftp,但是用ftp有一点不好,就是本地和远程的目录要对应,这样就要在多个目录下去切换,这样挺麻烦的,如果不注意的话,很有可能传错。所以想了个办法利用scp来批量上传文件或者目录。

一、scp上传不要输入密码

如果要用scp来上传文件,第一步就要去掉scp上传时要输入密码。要不然就没办法批量上传了。具体请参考:ssh 不用输入密码

二、ssh批量上传脚本

1、要上传的文件列表放到一个test文件中

root@ubuntu:/home/zhangy# cat test
/home/zhangy/test/aaa
/home/zhangy/test/nginx.conf
/home/zhangy/test/test.sql
/home/zhangy/test/pa.txt
/home/zhangy/test/password

上面就要上传的文件。

2、批量上传的脚本

vim file_upload.sh[neiqian]

#!/bin/sh
DATE=`date +%Y_%m_%d_%H`
if [ $1 ]
then
  for file in $(sed '/^$/d' $1)     //去掉空行
  do
    if [ -f $file ]                 //普通文件
    then
      res=`scp $file $2:$file`      //上传文件
      if [ -z $res ]                //上传成功
      then
        echo $file >> ${DATE}_upload.log   //上传成功的日志
      fi
    elif [ -d $file ]              //目录
    then
      res=`scp -r $file $2:$file`
      if [ -z $res ]
      then
        echo $file >> ${DATE}_upload.log
      fi
    fi
  done
else
  echo "no file" >> ${DATE}_error.log
fi

上传成功后,返回的是一个空行,上传不成功,什么都不返回

[erji]3、上传的格式[erji]

./file_upload.sh test 192.168.1.13

test是上传列表文件,[neiqian]192.168.1.13文件要传到的地方。

转载于:https://my.oschina.net/u/3585265/blog/3006825

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值