OS X uygulaması için dosya erişimi nasıl izlenir?


61

Daha sonra ProcessMon'a dahil olan FileMon'un OS X muhabiri arıyorum .

BTW, işlem ile filtre edebilmek için esastır.


Üç seçenek ekleyeceğim - Mac OS X'in unix mirası NT mimarisinden farklı olduğundan - araçlar mükemmel örtüşmüyor. Programlamak için bir API mi arıyorsunuz yoksa şu anda neler olduğuna bakmak için araçlar (veya belirli bir dosya değişikliğinden sonra eylemleri tetikleyin)
bmike

Yanıtlar:


62

Araçlar - Apple Xcode geliştirme paketinin bir parçası - tüm dosya erişimini ve yazmaları izleyebilir. /Applications/Xcode.app/Contents/Applications/Instruments.app adresinden açın, uygulamanızı veya işleminizi seçin ve Başlat'a basın. Menülerde geniş filtre seçeneklerine sahipsiniz.

Xcode'un eski sürümleri, Uygulamayı /Developer/Applications/Instruments.app adresinde saklıyor


7
Xcode 5'ten itibaren, şimdi /Applications/Xcode.app/Contents/Applications/Instruments.app - 'da bulunur ve XCode uygulamasından - Xcode-> Open Developer Tool-> Instruments içinden de erişilebilir.
Mixolog

Bu, erişilen dosya uygulamanızdan dolayı gerçekleşmiyorsa işe yaramaz
liquidblueocean

Aslında OS X için çalışmıyor: "G / Ç etkinliği macOS platformunu desteklemiyor". Ayrıca şunları da okuyun: stackoverflow.com/questions/35621938/…

Bu konuda daha fazla bilgi verebilir misiniz? Hangi enstrüman - Etkinlik Monitörü? Buradaki tüm işlemler için uzun bir çıktı görüyorum, bir işlem için diski g / Ç'ye nasıl filtreleyeceğinden emin değilim
Elliott

43

Bir komut var opensnoop. Argümansız çalıştırma, çıktı ile sizi ezebilir, ancak -n nameçıktıyı adlandırılmış işlemlerle sınırlamak için argümanlarla çalıştırılabilir name.


1
Benzer şekilde sudo opensnoop | grep .classpath, örneğin bir sınıf yoluna erişmenizi sağlar.
Dávid Natingga,

1
Açma notası ve Aletler aynı DTrace motorunun ön uçlarıdır. Diğer ön uçlar: dtrace.org/blogs/brendan/2011/10/10/…
MarcHas

13

Launchd, her zaman çalıştığından, dosyaları (ve bir klasör özel bir dosyadır) izlemek için kullanılan temel sistem aracıdır. Hazel , piyasaya sürülen WatchPath'lerin etrafına güzel bir GUI yerleştirmeye yardımcı olan bir programdır. Yüzlerce öğreticinin yanı sıra iyi bir wikipedia makalesi ve Apple dev docs'ın yanı sıra lansman hakkında birçok ipucu için buraya bakın.

fseventsd bazı değişiklikleri günlüğe kaydeder - bu nedenle FSeventer'ı kullanabilir veya fırlatmanız çay bardağınız değilse, bu dosyalara erişebilirsiniz.

fs_usage ve lsof , çalışıyorken IO alt sistemine dokunmak için kullanılan işleme duyarlı komut satırı aracıdır. Fs_usage arabelleği aşırı yüklenebilir, bu nedenle daha garantili ve daha az "hızlı bir göz atma" istiyorsanız, diğer komutlarda olduğu gibi toplam doğru sonuçlar için daha az güvenilirdir.


Bir uygulamanın ne erişim sağladığını bulmak için FSEventer'ı birkaç kez kullandım. Bu, laboratuar dağıtımı için sistem görüntüleme için lisans dosyaları ararken harika bir özelliktir.
Digitalchild

fseventer büyük resmin gerçek zamanlı olması için mükemmel, gerçekten neler olduğunu görüyorsunuz!
ling

1
FSeventer öldüğü için FSMonitor
GDP2

10

Hiç kimse /Applications/Utilitiesklasörde bulunan Etkinlik İzleyici'den bahsetmedi .

Listedeki İşlem Adı'na tıklayın, ardından araç çubuğundaki "İncele" düğmesine basın.

Ortaya çıkan pencerede üç sekme vardır: Memory, Statistics, Open Files and Ports. Open Files and PortsSekmesi, tüm açık dosyaları işlem tarafından kullanılıyor gösterecektir.


1
Dosyaya bilinmeyen bir uygulama tarafından erişiliyorsa bu işe yaramaz
liquidblueocean

3

lsof

Terminal.app komutunu sizin için yapabilir? kullanımı man lsofile yetişmek için kullanın. Şerefe


3

Daha hızlı yol:

$ lsof [path_to_file]

Bu çözüm root şifresini gerektirmez ve size şu açık, net sonucu verir:

COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF     NODE NAME
Finder     497  JR7   21r   REG    1,2   246223 33241712 image.jpg
QuickLook 1007  JR7  txt    REG    1,2   246223 33241712 image.jpg

1

Ayrıca mevcut iosnoopve iotopsizin özel gereksinimlerinize bağlı. Bu terminal komutları, grepbelirli bir işlemden veya belirli bir dosyadan dosya sistemi olaylarını izlemek için yönlendirilebilir .


0

lsofBilgi yazmak için bir grafik arayüzü var . Bu HAMSoft gelen bağış oluyor ve denir Me tutulması Neler . "Bunu neden çöp kutusundan silemiyorum?" Diye yanıtlamak için tasarlandı. Her ne kadar OS X'te sıkça ortaya çıkan soru, neler olup bittiğini merak ediyorsanız, açık I / O tutamaçlarını izlemek için kullanışlı bir yoldur. Bazı basit arama ve filtreleme yapmanızı sağlar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.