Apakah ada cara untuk mendeteksi mengapa tugas baris perintah seperti rm masih belum selesai setelah beberapa jam di mac os x?


0

Saya mencoba untuk membuat Time Machine berfungsi kembali pada OS X 10.7 (Lion) saya yang didukung iMac, dan sebuah pengandar jarak jauh di stasiun pangkalan bandara, dan satu-satunya solusi yang berhasil adalah mengubah nama file .sparsebundle saya pada hard drive menjadi "INVALID. sparsebundle ", sehingga ia akan mulai dari awal pada volume itu.

Cadangan adalah .sparsebundle (yang sebenarnya merupakan folder yang penuh dengan file) berukuran sekitar 400 gb. Saya mencoba perintah ini pagi ini jam 8 pagi dan jam 6:30 malam masih belum selesai:

sudo rm -rf INVALID.sparsebundle

Apakah ada cara untuk mengetahui mengapa itu tergantung atau apa yang dilakukannya? Ada semua jenis trik keren yang mungkin di baris perintah Mac OS X dan bahkan menggunakan beberapa alat grafis OS X yang bagus, mungkin melibatkan penggunaan debugger GCC, atau dtrace, atau mungkin bahkan semacam proses pemantauan kernel yang dapat memberitahu saya panggilan fungsi atau syscall apa yang sedang dijalankan.

Saya dapat menemukan PID untuk perintah rm:

$ ps aux |grep "rm -rf"

root             392   0.0  0.3  2454248  20232 s001  U+    9:08am   0:12.04 rm -rf /Volumes/Backup3tb/INVALID.sparsebundle

Adakah yang bisa saya lakukan untuk mencari tahu apa yang dilakukan PID 392 saat ini dan apakah itu benar-benar digantung atau tidak? (Saya akan membiarkannya dalam semalam, dan setelah 24 jam tidak menanggapi, saya akan mempertimbangkan untuk membatalkannya, dan jika saya melakukannya, saya hanya akan memformat volume ini.)

Saya mencoba iosnoop, seperti ini:

$ sudo iosnoop -p 392
  UID   PID D    BLOCK   SIZE       COMM PATHNAME

Itu tidak menunjukkan apa-apa padaku. Saya menduga itu berarti bahwa prosesnya baik dan benar-benar menutup sesuatu?

Jawaban:


1

Untungnya .sparsebundle sebenarnya adalah hierarki direktori yang penuh dengan 8MB "file band". Jika Anda menavigasi ke hierarki direktori dan menonton, Anda mungkin dapat melihat apakah ada file yang dihapus. Jika Anda ingin melakukan ini dari Finder, gunakan opsi menu kontekstual untuk "Tampilkan Isi Paket" ketika mengklik kanan pada .sparsebundle.

Saya percaya Time Machine hanya menggunakan .sparsebundle ketika Anda mencadangkan ke server AFP jauh, seperti Time Capsule atau Mac OS X Server (atau "klien" Mac OS X dengan berbagi file dinyalakan, atau netatalk pada Unix, dll). Jadi, Anda mungkin mengalami kelambatan jaringan atau server; ini mungkin bukan masalah dengan mesin lokal Anda. Pertimbangkan untuk me-reboot server AFP Anda jika memungkinkan, dan kemudian restart proses penghapusan.

Untuk drive USB lokal, Time Machine biasanya membutuhkan partisi khusus untuk dicadangkan, dan memanfaatkan hardlink filesystem dengan cerdas untuk melacak file mana yang tidak berubah dari cadangan ke cadangan. Pertanyaan Anda membuatnya terdengar seperti drive USB lokal, jadi fakta bahwa Anda berbicara tentang .sparsebundle mengejutkan saya. Apakah dulu dicolokkan ke server AFP jauh, tapi sekarang ini lokal atau sesuatu?


Entri direktori root tidak lagi terlihat di finder atau terminal shell
Warren P

0

Saya menemukan bahwa Monitor Sistem di Mac OS memiliki fitur praktis yang disebut Contoh Proses yang memungkinkan saya melihat apakah ia melakukan sesuatu atau jika dibekukan.

masukkan deskripsi gambar di sini

Dengan menemukan proses yang mungkin digantung dan mengambil sampelnya, saya dapat melihat fungsi apa yang dieksekusi (jika ada). Jika saya tidak mendapatkan apa-apa, wajar untuk menganggap bahwa prosesnya terhenti.

Perhatikan bahwa menghapus .sparsebundle melalui protokol jaringan Apple (AFP) seperti ketika menghubungkan mac Anda ke drive jaringan jarak jauh pada stasiun pangkalan ekstrim Bandara dan menghapus cadangan mode jaringan yang dibuat oleh Time-Machine, andal menutup "/ bin / rm "perintah baris darwin / bsd rm utility untuk saya.

Saya juga menemukan bahwa Time Machine akan merusak .sparsebundles ketika mereka tumbuh sangat besar, dalam kasus saya, lebih dari 600 gb pada sistem saya. Saya hanya dapat menggunakan Time Machine dengan andal (a) tanpa jaringan, atau (b) jika ukuran cadangan total tetap di bawah 500 gb.


/usr/bin/rm? Jenis rmapa yang Anda miliki Milik saya /bin, dan saya belum pernah melihat sistem di mana itu tidak ... coba gunakan /bin/rm; mungkin implementasi yang menyebabkan masalah.
Blacklight Shining

Oh salah ketik saya. Saya seharusnya mengatakan / bin / rm
Warren P
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.