Apakah ada solusi umum untuk memeriksa apakah suatu file rusak atau tidak? Misalnya, apakah file video buruk, atau file terkompresi rusak, dll.
echo "P = NP" >is-this-corrupt.txt
:)
Apakah ada solusi umum untuk memeriksa apakah suatu file rusak atau tidak? Misalnya, apakah file video buruk, atau file terkompresi rusak, dll.
echo "P = NP" >is-this-corrupt.txt
:)
Jawaban:
Tidak, tidak ada solusi umum. Satu-satunya cara untuk memeriksa apakah suatu file rusak adalah dengan mencoba dan membacanya; hanya perangkat lunak yang tahu cara membaca format tertentu yang dapat melakukannya.
Apa yang dapat Anda lakukan adalah menggunakan file
untuk mengidentifikasi jenis file, dan kemudian menggunakan tipe tersebut untuk memilih program yang sesuai untuk memeriksa file. Anda dapat menulis skrip seperti ini:
# /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
Tetapi Anda akan memiliki banyak pekerjaan yang harus dilakukan untuk mengisi pernyataan kasus.
Mungkin saja seseorang telah menulis skrip (atau program) seperti itu, tetapi saya tidak tahu.
grep
, cat
, tar
...). Solusi Anda karenanya sangat membengkak.
cat
, atau program lain yang memperlakukan file murni sebagai aliran byte yang tidak terstruktur, untuk memeriksa korupsi. Saya tidak percaya solusi saya membengkak.
Jika Anda tahu suatu saat file tersebut bagus, Anda dapat membuatnya sebagai checksum dan menggunakannya untuk membandingkan nanti untuk memastikan itu masih utuh. Ini berguna sebelum mentransfer file antara media atau lintas jaringan.
Jika Anda tidak tahu tentang keadaan file yang baik, tidak ada cara universal atau memeriksa korupsi. Hanya format file tertentu dalam setiap kasus yang menentukan data yang rusak atau tidak.
Jika Anda kebetulan menggunakan ZFS, Anda dapat membaca file dan dijamin tidak rusak atau Anda mendapat kesalahan baca dan itu.
Sunting Setelah komentar bijak, inilah klarifikasi jawaban saya:
ZFS dapat melindungi dan mendeteksi terhadap kerusakan data diam. misalnya: http://www.zdnet.com/blog/storage/data-corruption-is-worse-than-you-know/191 Tentu saja jika file tersebut sudah rusak pada saat awalnya ditulis, tidak ada apa-apa sistem file dapat dilakukan.
Untuk melindungi dari korupsi yang akan terjadi selama transmisi file, teknik tujuan umum yang umum adalah md5sum atau hash serupa.