Хорошо, возможно, я мог бы потратить много времени на написание сложного набора скриптов bash, которые бы этого достигли, но я надеюсь, что эта функциональность уже где-то существует.

У меня в машине есть устройство, которое работает как видеорегистратор. Я записываю видео в 3-х минутных сегментах. Когда я возвращаюсь домой, он автоматически подключается к Wi-Fi и запускает демон ssh.

Я хочу что-то, что я могу вызвать из cron, ssh, и rsync видео на мою машину linux. Пока это легко. Затем я хочу удалить файлы с устройства видеорегистратора, но не ВСЕ из них - я хочу удалить ТОЛЬКО файлы старше X дней. И я хочу, чтобы это каким-то образом было связано с rsync, поэтому он полностью удаляет их, только если rsync знает, что скопировал их.

Если бы у rsync была опция типа -remove-source-files-old-than, она бы работала идеально.

РЕДАКТИРОВАТЬ: Возможно, есть какой-то инструмент, кроме rsync, который лучше подходит для этой задачи?

1 ответ1

0

У меня есть двухэтапный подход, который будет работать:

Во-первых, передайте ВСЕ файлы как обычно с помощью rsync. Затем запустите другой шаг rsync с параметром --remove-source-files но выполните его только для старых видеофайлов.

Способы сделать это (кормление это только старые файлы):

  • Используйте ZSH вместо bash, смотрите ответ здесь: rsync N новейших файлов в каталоге. Например, выбирая все файлы старше 24 часов: ls *(mh+24)
  • используйте некоторые команды ls , grep и т. д., чтобы отфильтровать файлы и передать их в rsync, см. другой ответ в ссылке

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .