2011-03-28 22 views
9

Bir dosyayı uzak bir sunucudan yerel makineye kopyalamak için bir bash komut dosyası yazıyorum. Dosyanın uygun olup olmadığını kontrol etmem gerekiyor, eğer orada değilse alternatif bir işlem yapabilirim.bash: scp kullanarak uzak bir dosya var mı kontrol edin

Yerel bir dosya olup olmadığını nasıl test edeceğimi biliyorum, ancak scp kullanarak işleri biraz karmaşıklaştırıyor. Sağduyu, bir şekilde dosyanın bir şekilde scp yapmaya çalışacağını ve geri dönüş kodunu scp komutundan kontrol edeceğimi söyler. Bu konuda gitmek için doğru yolu bu mu?

Evet ise, dönüş kodunu scp çağrısından nasıl sınayabilirim?

cevap

9

; Dosya aktarımı başarısız olmadan önce bir karar vermeniz gerektiğinde bu yöntemi kullanın;

ssh remote-host 'sh -c "if [ -f ~/myfile ] ; then gzip -c ~/myfile ; fi" ' | gzip -dc > /tmp/pkparse.py 

Eğer dizinleri aktarmak istiyorsanız isteyebilirsiniz etmek "katran" demecinde ilk

Eğer böyle dönüş kodunu kontrol edebilirsiniz scp kullanmak istiyorsanız

:

if scp remote-host:~/myfile ./ >&/dev/null ; then echo "transfer OK" ; else echo "transfer failed" ; fi 

onu Dosyanın olup olmadığını bilmek sizin için önemli olduğunda gerçekten bağlıdır; transfer başlamadan önce (ssh + sh kullanın) veya bittikten sonra.

0

da, scp'u kullanabildiğiniz için, listeye devam etmek için dosyanın listede olup olmadığını görmek için ssh kullanmayı deneyebilirsiniz. Ssh + cmd satırına gömülü bazı kabuk kodlarını kullanarak

İlgili konular