İndirmeleri kıvrılma ile devam ettirmeye devam etmek


17

Mac'liyim ve ftp sunucusundan indirmek istediğim dosyaların bir listesi var. Bağlantı biraz buggy olduğunu, bu yüzden yeniden denemek ve bağlantı kesilirse devam etmek istiyorum.

Bunu wget ile yapabileceğimi biliyorum, ama ne yazık ki Mac OS X wget ile gelmiyor. Yükleyebilirim, ancak bunu yapmak için (bir şey kaçırmadıkça) önce XCode ve MacPorts'u yüklemem gerekiyor, bu da kaçınmak istiyorum.

Curl göründüğü halde kullanılabilir, ancak bunun nasıl çalıştığını veya gerçekten nasıl kullanılacağını bilmiyorum. Bir metin dosyasındaki dosyaların bir listesi varsa (her satırda bir tam yol, ftp: // user: pass @ server / dir / file1 gibi ) Tüm bu dosyaları indirmek için curl'u nasıl kullanabilirim? Ve asla pes etmemek için kıvrılma alabilir miyim? Gibi sonsuz yeniden deneyin ve kaldığı yerden indirme devam ve böyle?

Yanıtlar:


20

Googling ve adam okuma ve böyle bir süre sonra benim için çalışan bir çözüm bulduk:

curl ftp://server/dir/file[01-30].ext --user user:pass -O --retry 999 --retry-max-time 0 -C -
  • [01-30] file01.ext, file02.ext ve benzeri 30 dosyayı indirecek
  • --user user:pass açık olmalı
  • -O orijinal ada sahip dosyalara çıktı vermek için
  • --retry 999 999 kez tekrar denemek
  • --retry-max-time 0yeniden deneme zaman aşımını önlemek için. Sabit bir yeniden deneme-gecikmesi belirtmezseniz varsayılan davranış, yeniden denemeler arasında ilk bir saniye uyumak, ardından 10 dakikaya ulaşana kadar iki katına çıkarmaktır. yeniden denemeler arasında
  • -C -bırakıldığı yerden devam etmesini sağlamak için (komutu tekrar çalıştırırsanız). Daha sonra çizgi, ona nereden devam edileceğini bulmasını söyler

Birisi bunun yerine dosya adlarını bir dosyadan nasıl alacağını biliyorsa, lütfen bana bildirin.


Man sayfasında şunları söylüyor:

--url <URL>
Alınacak bir URL belirtin. Bu seçenek çoğunlukla bir yapılandırma dosyasında URL'leri belirtmek istediğinizde kullanışlıdır.

Bunun bir şey olabileceği anlaşılıyor, ancak nasıl kullanılacağını tam olarak anlama ...


2

Bir yapılandırma dosyası belirtmek için kıvrılmak üzere -K seçeneğini kullanabilirsiniz. Bu durumda, sözdizimini kullanırsınız:

optionname=<value>

URL'lerin listesini içeren bir dosyanız varsa, aşağıdaki gibi kıvırmayı kullanabilirsiniz:

sed 's/\(.*\)/-O\nurl=\1/g' url_list.txt | curl -K -

URL listesini dönüştüren, örneğin:

http://host1.com/foo.html
http://host2.com/bar.html

şunun gibi bir biçime dönüştürün:

-O
url=http://host1.com/foo.html
-O
url=http://host2.com/bar.html

Curl bunu okur ve bu seçeneklerin her birini yorumlar.

HTH,

Adem

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.