GNU/Linux >> Znalost Linux >  >> Linux

Obnovte smazaný soubor, do kterého se právě zapisuje

Pomocí tail v režimu sledování by vám mělo umožnit dělat, co chcete.

tail -n +0 -f /proc/<pid>/fd/<fd> > abc.deleted

Udělal jsem jen rychlý test a zdá se, že to funguje. Neuvedl jste, zda váš soubor byl binární soubor nebo ne. Mým hlavním problémem je, že se nemusí kopírovat od začátku souboru, ale argument -n +0 by to měl dělat i pro binární soubory.

Příkaz tail nemusí být ukončen na konci stahování, takže jej budete muset ukončit sami.


Vlastně mě napadlo něco jiného. Pokud ke čtení /proc/<pid>/fd/<fd> použijete jiný příkaz a ponechte tento program spuštěný a po dokončení stahování jej můžete zkopírovat z příslušného /proc/<pid2>/fd/<fd2> soubor druhého příkazu.

Jen to zkuste

less /proc/<pid>/fd/<fd>

v samostatné skořápce. Pohled na položku /proc pro příkaz less by vám měl ukázat váš smazaný soubor.


Linux
  1. /proc/[pid]/pagemaps a /proc/[pid]/maps | linux

  2. Kdy mám použít /dev/shm/ a kdy /tmp/?

  3. Jak zjistit, ze které složky běží proces?

  1. Linux:Rozdíl mezi /dev/console, /dev/tty a /dev/tty0?

  2. unix:///var/run/supervisor.sock žádný takový soubor

  3. /sys/ dokumentace?

  1. Linux – propojení /proc/mnt s /proc/mounts?

  2. Nainstalujte binární soubory do /bin, /sbin, /usr/bin a /usr/sbin, interakce s --prefix a DESTDIR

  3. Statické adresáře http nejsou obsluhovány