Yanıtlar:
İndirilen dosyaların bütünlüğünü doğrulamanın en yaygın yolu MD5 sağlama toplamlarını kullanmaktır. Bu, indirdiğiniz sitenin dosyalarının gerçekten yayınlanmış MD5 sağlama toplamlarını aldığını varsayar. İndirilen dosyanın kendi sağlama toplamını oluşturarak ve yayınlanan sağlama toplamıyla karşılaştırarak bir MD5 sağlama toplamını doğrulayabilirsiniz. Bunlar aynıysa, indirdiğiniz dosya tamamlanır ve değiştirilmez.
İndirdiğiniz dosyanın değişmesini beklemiyorsanız, bir sağlama toplamı ve sabit kodunu komut dosyasına önceden kodlayabilirsiniz, ancak dosya güncellenirse doğrulama başarısız olur.
Bir dosyayı çalıştırmak için MD5 sağlama toplamı oluşturmak için md5sum myFile
. Wget durumunda, özellikle indirdiğiniz dosya büyükse bu komutu yararlı bulabilirsiniz:
wget -O - http://example.com/myFile | tee myFile | md5sum > MD5SUM
.
Bu, indirirken "myFile" adlı bir sağlama toplamı oluşturur ve MD5SUM dosyasına kaydederek muhtemelen size zaman kazandırır.
Bağlantı kesilmesi durumunda, en iyi yolun wget'in çıkış kodlarını kontrol etmek olduğunu düşünüyorum. İndirme işlemi herhangi bir hata olmadan başarılı olursa, wget geri dönecektir 0
. Başka bir şey bir şeyin yanlış gittiğini gösterir. Sayfasının "Çıkış durumu" bölümüne bakın man wget
.
Dosyayı indirmek için kullanılan komutun dönüş kodu, komutun başarıyla yürütülüp yürütülmediğini size bildirir. Tipik olarak, 0 döndürme kodu başarıyı ve sıfır olmayan herhangi bir sayı bir hatayı belirtir. Dönüş koduna $?
değişken üzerinden erişebilirsiniz .
Kullanarak temel bir örnek wget
:
#!/bin/bash
wget foo.tgz &> /dev/null
if [[ "$?" != 0 ]]; then
echo "Error downloading file"
else
echo "Success"
fi
&> /dev/null
tüm wget çıktılarını yönlendirir, /dev/null
bu yüzden komut dosyası oluşturmak için idealdir AMA hata ayıklama wget
hatalarını zorlaştırır.
wget -q ... || { handle ; error ; }
man
cevaplamak için okurken buldum ve söyleyeceğim iki şey zaten iki cevapta - bu yüzden iki yorum yaptım. Sana da hoş bir dokunuş.
wget
kırılmış olsa bile indirme işleminin tamamlandığını düşünebilir. Varsayılan olarak kapalı TCP olarak kapalı TCP kullandığı için bozuk TCP bağlantıları ve kapalı TCP bağlantıları hakkında HTTP ile ilgili sorunlu proxy'ler. Bu yüzden, toplu indirmeyi çalıştırdığımda, başlıktaki dosya boyutunun indirilen dosya boyutuyla eşleşip eşleşmediğini kontrol ettim. Bu wget
tür tutarlılık olup olmadığını veya http spec'in bu konuda ne söylediğini emin değilim .