Дано: обычный линукс. На нем работает демон и пишет логи в файл. По несчастливой случайности ротирующий скрипт стёр запись о файле из директории. Но демона не перезапустил, поэтому демон продолжает писать в тот же файл.
Задача: прочитать данные из этого файла.
Решившие задачу безработные (или желающие сменить место работы) сисадмины могут присылать резюме.
Tags:
no subject
no subject
- пид писающего демона.
no subject
no subject
no subject
ДИЛ! Скринь комменты, блин!
И не облажайся со второй задачкой
no subject
В норме таких ситуаций возникать не должно. Если она возникла - админу будет не влом посмотреть пид процесса, зайти ручками в /proc/pid/fd, сказать там ls, увидеть соответствующий линк и выжрать из него данные в интересующем количестве.
Это работает, проверял.
no subject
no subject
no subject
no subject
если мало времени - то сюда http://recover.sourceforge.net/linux/recover/
удачи
no subject
lsofом найду inode, потом:
debugfs /dev/hda3
debugfs: cat <196511>
no subject
debugfs: cat <196511>
Ну cat не обязательно, есть другие команды в man debugfs.
no subject
хы
no subject
no subject
Но случайно его нельзя прочитать из /proc/[pid]/fd ?
no subject
по шагам для 2.6 (на другом лень проверять):
1) находим pid процесса. Далее pid
2) cd /proc//task//fd
3) ls -l | grep deleted. Пусть выдало n
4) cat n >>/path/to/real/file
no subject
cd /proc/pid/task/pid/fd
no subject
debugfs и -d? или там gdb и вставление в демона кода типа seek 0; read src; write dst? или стоит какая-нибудь экзотика типа http://amadeus.uprm.edu/~undelete/ ?
разве сложно?
Варианты для извращенцев (кодеров) и для тупых людей (админов): через gdb и через файловую систему.
(Типа задачи про место и время умерщвления мухи и двух поездов.)
Первых я ненавижу, поэтому этот шаг опустим.
Второй, для тупых. Вызнаём lsof-ом по имени процесса $pid и открытый номер $fd, лезем тупо в норку /proc/$pid/fd/$fd и шарим там кочергой.
После чего спасаемся бегством.
no subject
Проверил... действительно, блин, читается!
no subject
no subject
Re: хы
no subject