Удалять удаленные файлы, соответствующие локальным файлам, или удалять файлы по мере их загрузки

Скажем, у нас есть два producer и consumer а также следующий процесс:

  1. producer регулярно добавляет файлы в /some/path .
  2. consumer вытаскивает эти файлы в свой собственный /some/path (например, через rsync ) и обрабатывает их.
  3. Теперь нам нужно, чтобы consumer удалял обработанные файлы (и только обработанные файлы) на обоих хостах.

Можно ли (3) выполнить с помощью rsync или эквивалентную команду consumer ?


В качестве альтернативы, можем ли мы иметь consumer легко удалять файлы от producer которые он загружает, когда он обрабатывает этап (2)?


Обратите внимание, что producer всегда создает файлы, и мы хотим, чтобы каждый процесс обрабатывался каждый раз и только один раз.

На consumer вы можете использовать эту команду rsync.

 rsync -az --remove-source-files user@producer:/some/path/ /some/path/ 

Затем, когда процесс завершен, ваш consumer процесс удалит файл.

 rm -f /some/path/file