Saya memiliki skrip bash yang membuat file '.tar'. Setelah file dibuat, saya ingin menguji integritasnya dan mengirim email ke pengguna root jika integritasnya buruk.
Saya tahu saya perlu menggunakan perintah tar -tf /root/archive.tar
untuk memeriksa integritas file, tetapi bagaimana saya mengimplementasikan ini dalam bash jika pernyataan dan memeriksa kesalahan?
tar
output ke/dev/null
, karena Anda mungkin tidak benar-benar ingin melihatnya.tar
implementasi mendeteksi atau melaporkan semua kesalahan dengant
(bsdtar
tidak, Anda dapat menggunakannya ditar xOf file.tar > /dev/null
sana). Tidak semuatar
implementasi akan keluar dengan status keluar 2,star
(255) otbsdtar
(1) tidak, tetapi yang penting adalah bahwa status keluar tidak nol di sini.exit(2)
saya memperhatikan halaman manual yang sesuai, bukan nilai keluar yang tepat (itulah sebabnya saya »non-nol« secara eksplisit disebutkan dalam kalimat berikut). Beranotasi ini (dan mengubah bagian ke kanan -.-).maaf, tetapi Anda tidak bisa, sepertinya tar tidak memiliki kemampuan pengujian (misalnya jika Anda lupa tentang * nix dan mencoba mengujinya dengan winrar, hasilnya adalah: "Perintah tidak didukung untuk jenis arsip ini")
bagaimana saya tunjukkan dalam komentar di atas, tar benar-benar tidak memiliki CRC internal untuk memiliki istilah perbandingan, oleh karena itu jika Anda mengubah arsip tar dengan editor, daftar dan ekstraksi dapat bekerja tanpa cacat tanpa kesalahan, tetapi mengekstrak data yang rusak
Kesimpulannya, saya akhirnya di sini berharap untuk solusi, tetapi tidak ada satu, untungnya ada dua kabar baik:
ada arsip tar yang sangat, sangat, sangat langka yang tidak juga dikompres dengan program lain (seperti gzip, bzip2, dll.) oleh karena itu program itu akan memiliki solusi pengujian dan orang-orang yang tidak mengompresnya agak timpang, BENAR-BENAR Lame
untuk masalah pribadi saya, saya beruntung, setelah mengekstraknya, saya baru saja menemukan file md5sum dengan CRC dari semua file di dalamnya (bahkan orang yang meletakkan tar arhive di internet dan tidak ingin mengompresnya, ia masih ingin menjadi dapat diverifikasi)
sumber
Anda dapat melakukannya dengan meneruskan argumen berikut ke
tar
:sumber
-c
membuat file bernama via-f
('test.tar').-z
gzip arsip.-v
membuatnya verbose. Saya cukup yakin ini bukan solusi yang akurat.