2013-02-05 22 views
5

merhaba ben var /ifshk5/BC_IP/PROJE/T1 1073/T11073_RICljiR/bölme/AG19_235/120225_I872_FCC0HN2ACXX_L8_RICljiRSYHSD2-1-IP AAPEK-17_1.fq.gzscp ve uzaktan mkdir -p

gibi bazı dosya yolu

Bir ftp sunucusundan diğerine kopya dosyalarına ihtiyacım var. ve ayrıca sunucuda mevcut değilse dizin oluşturması gerekir. i o zaman bu kodu bazı sorun var

#! /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 [email protected] mkdir -p $location 
    scp -r $i [email protected]:$location 

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

, 1. her zaman işe gösterir olamaz çalıştırmak olanlar dosyasını içeren sever giriş izni reddedildi, lütfen tekrar deneyin. ama

ssh [email protected] mkdir -p /sample/xxxx 

o çalışabilir türünü yönlendirebilir ve yeni dir konumu /opt/tırmanış/Storage3/ftp/ftp_climb/100033/T11073_RICekkR/Fq/AS59_59304

+1

Neden sadece rsync kullanabilirsiniz kullanılır? –

+0

beni daha fazla ayrıntı çözüm verebilir? Teşekkürler, – Jessesiu

cevap

5

gibi gösteren iyi olunca "İzin reddedildi" hatasının nereden geldiğini göremiyorum; hataya neden komutu görmek için bash -x ile komut dosyasını çalıştırın. Belki de beklediğiniz şey değildir.

rsync --dirs $i [email protected]:$b 

--dirs uzak tarafında gerekli klasörleri oluşturur (ve bir şey başarısız olduğunda size iyi hata mesajları verecektir):

Ayrıca yerine tekrar tekerleği icat rsync deneyin.

Hatta her iki tarafta aynı klasör yapısını varsa rsync tek bir çağrı ile her şeyi yapmak mümkün olabilir: yolları sonrası

rsync -avP /ifshk5/BC_IP/PROJECT/T11073/ [email protected]:/opt/CLiMB/Storage3/ftp/ftp_climb/100033/ 

Not /! Onları ihmal etme.

rsync

dosya transfer edilmesi gereken ve sadece bu kopya hangi anlamaya olacaktır. Eğer yalnızca bir alt küme aktarmak istiyorsanız, --include-from