2013-11-02 3 views
2

Я запускаю сценарий python python a.script в ящике linux (я знаю всю информацию об этом процессе из/proc), но я случайно запускаю 'rm a.script', как мне восстановить сценарий ? Я нашел это How do I determine the path to a binary of a process?, но я нашел только интерпретатор python. Как насчет lsof, но я понятия не имею, с чего начать.Восстановление удаленных, но запущенных скриптов python

+1

С моей точки зрения, практического решения нет. Вы можете найти части кода в памяти, но будет очень сложно найти их, и я серьезно сомневаюсь, что вы можете вообще восстановить код. (Я никогда не писал сценарий python длиной более 90 строк.) –

+0

В следующий раз я задам этот вопрос на superuser.com. Извините за шум. (Но на самом деле я пытаюсь добиться выполнения одного экземпляра для одного скрипта с использованием библиотеки psutil). – schemacs

ответ

1

Сам файл пропал. Вы можете восстановить его только по очень сложной магии файловой системы. Могут быть программы для определенных файловых систем (например, DOS), которые могут восстановить файл на диске ... но это действительно плохой обход файловой системы.

Другое дело, что исполняемый скрипт также находится в памяти. Но как вы могли это восстановить? Конечно, вы можете сделать дамп памяти - но я думаю, вы только получите предварительно скомпилированный код Python - и даже это будет нелегко найти. Получить исходный код из предварительно скомпилированного Python непросто. Кроме того, вы не можете получить непрерывный блок данных, поэтому получить кодировку почти невозможно. По крайней мере, ваши комментарии действительно потеряны. Но я бы предположил, что возвращение даже какого-то теневого кода без комментариев станет задачей, которая стоит дороже, чем повторное кодирование.

Итак, я с сожалением расскажу вам: я не вижу никаких шансов.

Смежные вопросы