5

こんにちは、/ifshk5/BC_IP/PROJECT/T1 1073/T11073_RICljiR/split/AG19_235/120225_I872_FCC0HN2ACXX_L8_RICljiRSYHSD2-1-IP AAPEK-17_1.fq.gz のようなファイル パスがあります。

ある ftp サーバーから別の ftp サーバーにファイルをコピーする必要があります。また、サーバーに存在しない場合はディレクトリを作成する必要があります。それらのファイルを含むサーバーにログインしてから、このコードを実行します

 #! /bin/bash

 while read myline
 do
   for i in $myline
    do
    if [ -f $i ]
    then
    location=$(echo "$i" | awk -F "/" '{ print "", $6, $7, $8 }' OFS="/")
        #location shows /T11073_RICekkR/Fq/AS59_59304
    location="/opt/CLiMB/Storage3/ftp/ftp_climb/100033"$location
    echo $location

    ssh tam@192.168.174.43 mkdir -p $location
    scp -r $i tam@192.168.174.43:$location

    fi
   done
 done < /ifshk5/BC_IP/PROJECT/T11073/T11073_all_3254.fq.list

何らかの問題があります。1. 常にアクセス許可が拒否されて動作しません。もう一度お試しください。しかし、私が直接タイプするとき

 ssh tam@192.168.174.43 mkdir -p /sample/xxxx

それは機能し、新しいディレクトリの場所は正しい /opt/CLiMB/Storage3/ftp/ftp_climb/100033/T11073_RICekR/Fq/AS59_59304 のように表示されます

4

1 に答える 1

5

「許可が拒否されました」というエラーがどこから来ているのかわかりません。でスクリプトを実行してbash -x、エラーの原因となるコマンドを確認します。多分それはあなたが期待するものではありません。

またrsync、車輪の再発明の代わりに試してみてください。

rsync --dirs $i tam@192.168.171.34:$b

--dirsリモート側に必要なフォルダを作成します(何かが失敗したときに適切なエラーメッセージが表示されます)。

rsync両側に同じフォルダ構造がある場合は、1回の呼び出しですべてを実行できる場合もあります。

rsync -avP /ifshk5/BC_IP/PROJECT/T11073/ tam@192.168.171.34:/opt/CLiMB/Storage3/ftp/ftp_climb/100033/

/パスの後に注意してください!それらを省略しないでください。

rsyncどのファイルを転送する必要があるかを判断し、それらだけをコピーします。サブセットのみを転送する場合は、--include-from

于 2013-02-05T08:47:42.783 に答える