Apakah saya perlu khawatir tentang “tail: tipe file sistem 0xbeefdead yang tidak dikenal”?

32

Saya mencoba mengikuti file teks biasa dengan tail -f -n 50 filename. Saya mendapatkan informasi dari file dengan baik, kecuali saya selalu mendapatkan pesan kesalahan ini:

tail: tipe sistem file tidak dikenal 0xbeefdead

Itu terjadi pada setiap file. The 0xbeefdeadkhawatir - itu tampak seperti tag hacker.

$ tail --version
tail (GNU coreutils) 8.4
tahu
sumber
3
Bukankah seharusnya begitu 0xdeadbeef? :P
devnull
1
Tutup suara ditarik.
slm
1
Mungkin jelas tetapi 0xDEADBEEF sering digunakan untuk menunjukkan byte yang tidak diinisialisasi dan hal-hal seperti itu. BEEFDEAD mungkin merupakan sentuhan cerdas dalam hal ini. en.wikipedia.org/wiki/Hexspeak (mencari deadbeef)
user426724
@goldilocks: Ini adalah cerita yang bagus tapi tidak ada pertanyaan. Juga, perbaiki kunci caps lock Anda.
Ben Voigt
3
@BenVoigt Caps dikunci, dia membuat poin yang valid. Pertanyaannya sangat jelas: Dia hanya bertanya apakah dagingnya normal.
Navin

Jawaban:

34

Jika Anda mendapatkan peringatan ini saat menggunakan sistem file StorNext dan menjalankan coreutils8.21 atau sebelumnya, tidak ada banyak yang perlu dikhawatirkan; pesan peringatan ini diharapkan.

GNU tailmemiliki pengetahuan bawaan tentang sejumlah tipe sistem file, dan memperingatkan ketika bertemu dengan tipe yang tidak dikenal. Dukungan untuk filesystem StorNext ditambahkan ke taildalam coreutilspada April 2013, dan dirilis pada coreutils8.22. Komit ada di sini . Jika Anda tidak bisa mendapatkan versi itu coreutils, atau ingin mengedit dan mengkompilasi ulang sumbernya sendiri, berikut adalah perbedaan dari komit itu:

src/stat.c
@@ -399,6 +399,8 @@ enum
     return "selinux";
   case S_MAGIC_SMB: /* 0x517B remote */
     return "smb";
+  case S_MAGIC_SNFS: /* 0xBEEFDEAD remote */
+    return "snfs";
   case S_MAGIC_SOCKFS: /* 0x534F434B local */
     return "sockfs";
   case S_MAGIC_SQUASHFS: /* 0x73717368 local */
Tandai Plotnick
sumber
11
Mengapa program userspace suka tailharus kompatibel dengan sistem file tertentu? Saya kira yang saya maksud adalah, apakah tidak ada abstraksi filesystem yang bisa diandalkan?
15
@ illuminÉ, alasan utama untuk menentukan tipe sistem file adalah operasi "tail -f": cara paling efisien untuk mengetahui apakah data baru telah ditulis ke suatu file bervariasi dari satu sistem file ke yang lain.
Markus
9
taildengan -fopsi gunakan inotifyjika bisa. Tetapi inotifyhanya bisa memonitor perubahan yang disebabkan oleh aktivitas yang dilakukan oleh kernel sistem lokal. Jadi hanya tailakan digunakan inotifyjika argumen file ada pada apa yang diklasifikasikan sebagai sistem file "lokal".
Mark Plotnick
7
Dan informasi terakhir yang hilang adalah bahwa kernel tidak memberikan indikasi yang jelas bahwa ada sesuatu yang salah ketika Anda mencoba menggunakan inotify pada sistem file yang tidak mendukungnya, jadi nomor ajaib ini kludgefest pada dasarnya satu-satunya cara aman untuk menggunakannya.