У мене є файл, який часто переписується якоюсь програмою. Програма запускається і виходить у циклі, тому обробка файлів випускається через короткі проміжки часу. Чи можливо отримати послідовну копію знімків всього файлу?
Чи засмучений файл, що відсутній / порожній, або програма здатна повністю переписати весь файл з нуля?
—
Дан Корнілеску
Це зображення, яке послідовно оновлюється. Тож додаток, швидше за все, читає повний файл і повністю записує його згодом. Тож якщо файл тим часом буде вилучено, він, напевно, буде відтворений. Якщо все-таки відійде перед читанням, воно зірве або відтворить порожнє зображення, яке потім замінить справжнє.
—
дрон
Можна зробити знімок файлу
—
дрон
mv
, але це призведе до згаданих вище проблем. Можливо, файл, який використовується для читання та для запису, може бути двома різними, тому щойно записаний файл може бути скопійований під час запису досить швидко, щоб бути перенесеним для читання наступного раунду. Якщо є спеціальний вид фіфо, який би розсікав доступ для читання і запису, можна було б використати tee
для зйомки виводу до двох файлів і cat
для подання процесу останнього написаного файлу для читання.
Вони, ймовірно, потребують модифікацій в операційному описі файлів програми, оскільки файл більше не буде звичайним / єдиним файлом. Ззовні я можу думати лише про те, щоб зробити копію в циклі виконання, одразу після того, як одне виконання зупиняється і до початку іншого. Звичайно, якщо цей цикл є доступним і якщо тривалість операції копіювання не впливає негативно на час циклу.
—
Дан Корнілеску