क्या कोई फ़ाइल दूषित है या नहीं यह जांचने के लिए कोई सामान्य समाधान हैं? उदाहरण के लिए, एक वीडियो फ़ाइल खराब है, या एक संपीड़ित फ़ाइल भ्रष्ट है, आदि।
echo "P = NP" >is-this-corrupt.txt
:)
क्या कोई फ़ाइल दूषित है या नहीं यह जांचने के लिए कोई सामान्य समाधान हैं? उदाहरण के लिए, एक वीडियो फ़ाइल खराब है, या एक संपीड़ित फ़ाइल भ्रष्ट है, आदि।
echo "P = NP" >is-this-corrupt.txt
:)
जवाबों:
नहीं, कोई सामान्य समाधान नहीं हैं। एक फ़ाइल भ्रष्ट है या नहीं यह जाँचने का एकमात्र तरीका यह है कि इसे आज़माएँ और पढ़ें; केवल सॉफ्टवेयर जो जानता है कि उस विशेष प्रारूप को कैसे पढ़ा जा सकता है।
file
फ़ाइल के प्रकार की पहचान करने के लिए आप क्या कर सकते हैं , और फिर फ़ाइल की जाँच करने के लिए एक उपयुक्त प्रोग्राम चुनने के लिए किस प्रकार का उपयोग करें। आप इस तरह से एक स्क्रिप्ट लिख सकते हैं:
# /bin/bash -eu
FILENAME=$1
FILETYPE="$(file -b $FILENAME | head -1 | cut -d , -f 1)"
case "$FILETYPE" in
"gzip compressed data") CHECKER="gunzip -t" ;;
# many, many more lines here
*) echo "Unknown type: $FILETYPE"; exit 1 ;;
esac
$CHECKER $FILENAME
लेकिन केस स्टेटमेंट को भरने के लिए आपके पास बहुत काम होगा।
यह संभव है कि किसी ने पहले से ही इस तरह की स्क्रिप्ट (या प्रोग्राम) लिखी हो, लेकिन मुझे इसका कोई पता नहीं है।
grep
, cat
, tar
...)। इसलिए आपका समाधान बहुत फूला हुआ है।
cat
भ्रष्टाचार के लिए जाँच करने के लिए किसी भी अन्य प्रोग्राम का उपयोग नहीं कर सकते हैं , जो किसी फाइल को शुद्ध रूप से बाइट्स की असंरचित धारा के रूप में मानता है। मुझे विश्वास नहीं है कि मेरा समाधान फूला हुआ है।
यदि आप किसी बिंदु पर जानते हैं कि फ़ाइल अच्छी है, तो आप इसका एक चेकसम बना सकते हैं और बाद में तुलना करने के लिए इसका उपयोग यह सुनिश्चित करने के लिए कर सकते हैं कि यह अभी भी पूरा है। यह माध्यमों या नेटवर्क के बीच फ़ाइलों को स्थानांतरित करने से पहले उपयोगी है।
यदि आप किसी फ़ाइल की अच्छी स्थिति के बारे में नहीं जानते हैं, तो कोई भी सार्वभौमिक तरीका या भ्रष्टाचार की जाँच नहीं है। प्रत्येक मामले में केवल विशिष्ट फ़ाइल प्रारूप यह निर्धारित करता है कि भ्रष्ट क्या है या भ्रष्ट डेटा नहीं है।
यदि आप ZFS का उपयोग करते हैं, तो या तो आप फ़ाइल पढ़ सकते हैं और यह गारंटी दी जाती है कि यह दूषित नहीं है या आपको पढ़ने में त्रुटि हुई है और यह है।
बुद्धिमान टिप्पणियों के बाद संपादित करें, यहाँ मेरे जवाब का स्पष्टीकरण है:
ZFS मूक डेटा भ्रष्टाचार के खिलाफ सुरक्षा और पता लगा सकता है। उदाहरण: http://www.zdnet.com/blog/storage/data-corruption-is-worse-than-you-know/191 यदि फ़ाइल पहले से ही लिखी गई समय पर पहले से ही दूषित है, तो कुछ भी नहीं है फ़ाइल सिस्टम कर सकता है।
फ़ाइल के प्रसारण के दौरान होने वाले भ्रष्टाचार से बचाने के लिए, सामान्य सामान्य प्रयोजन तकनीकें md5sum या इसी तरह की हैश होती हैं।