Копирование или перемещение файла в каталог с параллельной обработкой из другого процесса

Копирование или перемещение файла в каталог с параллельной обработкой из другого процесса

22.01.2020 12:30:33 Просмотров 26 Источник

Я запускаю два процесса в AIX. Процесс один генерирует несколько файлов, процесс два делает резервные копии из всех файлов, которые находятся в каталоге резервного копирования.

Процесс один будет копировать или перемещать файлы в каталог резервного копирования. Поскольку второй процесс всегда выполняется в фоновом режиме, существует риск запуска резервного копирования файла, который все еще находится в процессе копирования или перемещения и поэтому неполон. Как я могу избежать этой проблемы?

У вопроса есть решение - Посмотреть?

Ответы - Копирование или перемещение файла в каталог с параллельной обработкой из другого процесса / Copy or move file into directory with parallel processing from another process

Lorinczy Zsigmond

22.01.2020 12:44:55

Процесс один должен создавать файлы в другом каталоге (на том же диске); и когда файл будет создан, переместите его в конечный каталог. Перемещение-это атомарная операция, поэтому process2 будет находить только полные файлы.

Edit: в AIX /usr / bin / istat помогает убедиться, что два каталога (или файла) находятся на одном диске / разделе / устройстве, например

for Dir in /home /home/zsiga /tmp;
    do /usr/bin/istat "$Dir" | grep device;
done

Результат:

Inode  2 on device 10/8 Directory
Inode 33 on device 10/8 Directory
Inode  2 on device 10/7 Directory

Первые два находятся на том же диске / разделе / устройстве (10/8); последний - на другом устройстве (10/7)

https://stackoverflow.com/questions/59856442/copy-or-move-file-into-directory-with-parallel-processing-from-another-process/59856702#comment105847217_59856702
Как вы можете быть уверены, что находитесь на том же диске?
https://stackoverflow.com/questions/59856442/copy-or-move-file-into-directory-with-parallel-processing-from-another-process/59856702#comment105848278_59856702
Добавлено к ответу.
https://stackoverflow.com/questions/59856442/copy-or-move-file-into-directory-with-parallel-processing-from-another-process/59856702#comment105916512_59856702
Вместо того чтобы двигаться, могу ли я также создать жесткую ссылку? Видишь stackoverflow.com/questions/59894407/…
https://stackoverflow.com/questions/59856442/copy-or-move-file-into-directory-with-parallel-processing-from-another-process/59856702#comment105918179_59856702
Конечно, как перемещение файла в основном создает новую жесткую ссылку, а затем удаляет старую.
Закрыть X