使用ssh 批量上傳文件

上傳文件大多數用的是ftp,可是用ftp有一點很差,就是本地和遠程的目錄要對應,這樣就要在多個目錄下去切換,這樣挺麻煩的,若是不注意的話,頗有可能傳錯。因此想了個辦法利用scp來批量上傳文件或者目錄。html

1、scp上傳不要輸入密碼linux

若是要用scp來上傳文件,第一步就要去掉scp上傳時要輸入密碼。要否則就沒辦法批量上傳了。具體請參考:ssh 不用輸入密碼nginx

2、ssh批量上傳腳本sql

一、要上傳的文件列表放到一個test文件中ubuntu

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

上面就要上傳的文件。vim

二、批量上傳的腳本ssh

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

上傳成功後,返回的是一個空行,上傳不成功,什麼都不返回htm

[erji]三、上傳的格式[erji]blog

./file_upload.sh test 192.168.1.13

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

相關文章
相關標籤/搜索