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

Я запускаю неоправданно сложный сценарий, который выглядит примерно так: 2 дня "папка. И еще несколько команд повторяются вплоть до 7 дней! Таким образом, каждый день файлы из предыдущей папки «X days old» перемещаются в папку на следующий день.

Я в основном пытаюсь организовать файлы автоматически, работая в cron, чтобы переместить файлы старше X дней в правильную папку. Это неэффективно, но мне нужно, чтобы это произошло. Есть ли более простой и эффективный способ?

Как только он попадет в папку 7 дней, у меня есть последняя команда, которая удаляет файлы старше 7 дней из этой последней папки.

6
задан 10 December 2011 в 20:10

1 ответ

Я использую (для аналогичной ситуации) нестандартный способ: logrotate.

Это позволит выполнить резервное копирование всех видео из /home/user/videos в файл /home/nb/videos/backup/videos.tar (ежедневно), а затем автоматически переместить старые файлы tar в ...1.tar, ...2.tar и т. Д. Резервные копии старше 7 дней будут удален.

Я включил mv /home/user/videos/*.avi /var/tmp, чтобы сохранить копию видео на случай, если что-то пойдет не так.

Для активации этой конфигурации logrotate поместите файл, аналогичный этому, в каталог /etc/logrotate.d:

/home/nb/videos/backup/videos.tar {
  rotate 7
  daily
  notifempty
  nocreate
  nocompress
  missingok

  postrotate
    if ls /home/user/videos/*.avi > /dev/null 2>&1; then
      tar cf /home/nb/videos/backup/videos.tar /home/user/videos/*.avi
      mv /home/user/videos/*.avi /var/tmp
    fi
  endscript
}

Для получения дополнительной информации см. man logrotate.

0
ответ дан 10 December 2011 в 20:10

Другие вопросы по тегам:

Похожие вопросы: