X'den küçük boyutlu dosyaları nasıl scp yapabilirim?


13

Dizüstü bilgisayarımda bir şey geliştiriyorum ve dosyaları yüksek performanslı bir PC'ye (monitörü olmayan bir sunucu) scp'ing. Tembellikten şu anda bunu yapıyorum (dizüstü bilgisayarda):

scp -r ~/project/* server:~/project/

Ancak, proje dizinindeki bazı dosyalar göndermem gerekmeyen bazı günlük dosyaları ve çıkış dosyalarıdır, bu da bazen bir konser olabilir. Ne istiyorum temelde aynı şeyi (proje ve alt dizinleri tüm dosyaları iletir) ama sadece 100 mb gibi belirli bir dosya boyutu eşiği altında dosyaları gönderir güzel bir temiz komut. Ben sadece bash ile hafif deneyimliyim ve regexp ile hiç deneyimli değilim, bu yüzden python içine sys içe aktarma ve ifs ve karşılaştırmaları bir demet kullanma gibi bazı kıvrık yöntem olmadan bunu nasıl yapacağım hakkında hiçbir fikrim yok.

Yanıtlar:


27

hariç tutulacak dosya boyutunu denetleme seçeneği olan 'rsync' komutunu kullanabilirsiniz.

rsync -rv --max-size=100m /path/in/local/ server:~/project/

' man rsync ' den,

--max-size=SIZE    don't transfer any file larger than SIZE

Güncellenmiş cevap : günlük dosyalarını 'rsync' --exclude seçeneği ile hariç tutmanız yeterlidir

rsync -rv --exclude='*.log' --max-size=100m /path/in/local/ server:~/project/

veya 'scp' ile 'find' komut kombinasyonunu kullanabilir ve seçenekle dosya boyutu sınırını belirleyebilirsiniz -size. ! -name '*.log''log' ile biten belirli dosyaları hariç tutmak için kullanın .

find /path/in/local -type f ! -name '*.log' -size -100m -exec scp '{}' server:~/project/ \;

1
OP: için bir not rsyncbenzerdir scp, ancak daha etkilidir, çünkü yalnızca bir dosya değiştirilirse aktarılır.
Paddy Landau

dizinleri emriyle dikkatli olarakrsync -rv --max-size SOURCE DESTINATION. Düzgün okumadım ve bu coud'un çok kötü sonuçları var.
toto_tico
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.