ACIK KAYNAK
 
*
Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun. Aralık 01, 2008, 04:40:28 ÖS


Kullanıcı adınızı, parolanızı ve aktif kalma süresini giriniz



Reklamlar
Sayfa: [1]   Aşağı git
  Yazdır  
Gönderen Konu: Lsof komut kullanılarak nasıl dosya kurtarılır ?  (Okunma Sayısı 242 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
acikkaynak
Administrator
*
Offline Offline

Mesaj Sayısı: 265



Üyelik Bilgileri
« : Mart 22, 2008, 09:06:16 ÖÖ »

Öncelikle lsof nedir bunu açıklayalım.
LSOF(list open files) acık olan dosyaları gösterir.Bunun içersinde açık olan portlarda vardır.
Kullanımında herhangi bir parametre almaksızın sistem tarafından kullanılan bütün açık dosyaları ve portları görüntüler
grep kullanarak herhangibir programın  yada dizin içerisindeki açık dosyaları görüntüleyebiliriz.

Lsof kullanarak nasıl dosya kurtarılır....

Linux dosya sistemlerinde bir dosya aslında bu dosyanın hakkında bilgi veren bir linkten ibarettir. Burada dosyaya ait izinler, sahiplik hakları, dosyanın disk üzerinde kapladığı yerin adres bilgileri gibi bir takım özellikler tutulur. Biz rm ile dosyayı sildiğimizde aslında hakkındaki bilgileri işaret eden linki silmiş oluruz. Eğer bu dosyayı kullanan bir uygulama varsa, bu uygulama kapatılıp, dosyaya işaret eden tüm linkler silinmedikçe dosyanın kendisi silinmiş olmaz. İşte biz bunu kullanarak dosyayı kurtarmayı başarabiliriz.

Bu işlemi yapmamızı sağlayan Linux üzerindeki bilinen /proc dizinidir. Sistem üzerindeki her işlem bu dizin altında bu işleme ait bir isimle bir alt dizinde bulunur. Bu alt dizinde birçok bilgi bulunur, işte bunlar birisi de fd(file descriptor) alt dizinidir. Bu dizin altında dosyanın yapıldığı işleme ait linkler mevcuttur. Dosya silinse bile bilginin bir kopyası dosyayı çalıştıran işlem devam ettiği sürece burada kalmaya devam eder

Kod:
/proc/process id/fd/file descriptor

Bu bilgiyi nerede bulabileceğinizi bilmeniz için işlemin id numarasını ve file descriptor'ı bulmanız lazım, işte burada devreye lsof (list open files) uygulaması girer.
lsof ile bilgiyi aldıktan sonra artık tek yapmanız gereken dosyayı /proc dizininden geri kopyalamanız


Bir örnek işlem yapalım :

GODFATHER.MP3 parçasını videolan programı ile açtık dinliyoruz sonra rm komutu ile mp3 ümüzü silelim

Kod:
rm GODFATHER.MP3

Burada önemli olan dosyayı sildiğiniz anda yürütme işlemini durdurmanız ancak kesinlikle kapatmayın. Durdurmamızın sebebi yürütme işleminin tamamen bitip, yani mp3 dosyasının sonuna gelip, geri getirecek dosyanın /proc dizini altından dahi silinmesidir.

Kod:
lsof | grep GODFATHER

Kod:
vlc        6379      root    7r      REG        8,1  2445061    6752891 /root/.Trash/GODFATHER.MP3 (deleted)

Evet lsof ile bilgileri gördük. En sondaki deleted ibaresine dikkat edin, dosyanın silindiğini buradan anlayabiliriz. Bu bilgilerden ilk sütundaki dosyayı hangi uygulamanın kullandığını gösterir. 2. sütun process id, 4. sütun ise file descriptor'dır. Tüm bilmemiz gereken bunlar. Gördüğümüz gibi mp3 dosyamızın process id'si 6379, file descriptor'ı ise 7'dir. Şimdi /proc altından bu dosyayı kurtarabiliriz.

Kod:
cp /proc/6379/fd/7 GODFATHER.MP3
ve

dosyanız geri geldi.
Not : cp komutunu parametre kullanmadan çalıştırın.

Bu belgenin oluşumunda yardımcı olanlara teşekkür ederiz.


« Son Düzenleme: Mart 22, 2008, 09:09:01 ÖÖ Gönderen: acikkaynak » Logged
erens
Newbie
*
Offline Offline

Mesaj Sayısı: 17


Üyelik Bilgileri
« Yanıtla #1 : Mart 25, 2008, 02:27:14 ÖS »

teşekkürler.
Logged
Sayfa: [1]   Yukarı git
  Yazdır  
 
Gitmek istediğiniz yer:  


[Basit Gorunum]

MySQL ile Güçlendirildi PHP ile Güçlendirildi Powered by SMF 1.1.6 | SMF © 2006, Simple Machines LLC

acikkaynak
XHTML 1.0 Geçerli! CSS Geçerli! Dilber MC Theme by HarzeM