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/nulltüm wget çıktılarını yönlendirir, /dev/nullbu yüzden komut dosyası oluşturmak için idealdir AMA hata ayıklama wgethatalarını zorlaştırır.
wget -q ... || { handle ; error ; }
mancevaplamak 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ş.
wgetkı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 wgettür tutarlılık olup olmadığını veya http spec'in bu konuda ne söylediğini emin değilim .