Сжатие старых файлов журнала и переход в новый каталог

У меня есть папка /home/usr/logs/ которой хранятся файлы журналов старше 1 дня. Я хочу сжать все файлы журналов старше одного дня для разделения сжатых архивов (например, zip или tar.gz) и переместить их в папку /home/usr/logs/archive .

Файлы журналов находятся в форматах имен, таких как valid.app5s.log.1019 , app5s.gf3sts.1019 , valid.app5s.gf3log.1019 , app5s.gf3log.1019 , app5s.gf1sts.1019 , valid.app5s.gf1log.1019 , app5s.sts.1019 .

Я пробовал вот так:

 find . -mtime +1 -exec zip filename.zip '{}' + && mv filename.zip archive/ \; 

Но эти файлы не застегнуты должным образом. Кто-нибудь, пожалуйста, помогите мне разобраться с ошибкой моего кода?

  • проблема с zip-файлом с использованием пароля
  • Раскройте архив gz с расширением zip
  • Распаковать все несуществующие или более старые файлы из архива
  • Менеджер архива не показывает файл с именем «-»
  • извлекать только определенную папку Содержимое из архива с zip-файлом в данный каталог
  • Извлечение файла Wordpress.zip на Linux-сервере
  • архивирование файлов без изменений
  • Как зашифровать каталог с помощью шифрования имен файлов?
  • One Solution collect form web for “Сжатие старых файлов журнала и переход в новый каталог”

    logrotate может это сделать, совпадение шаблонов может быть для * log, тогда вы добавляете раздел, называемый postrotate, рассмотрите postrotate небольшой скрипт bash, который запускается после вращения.

    пример;

     /home/usr/logs/*.log { daily missingok compress #delaycompress (this will prevent compressing of one day) notifempty create 640 root adm sharedscripts postrotate mv /home/usr/logs/*.gz /home/usr/logs/archive/; endscript } 

    Update1:

    если вы хотите использовать zip вместо gzip, добавьте;

     compresscmd /usr/bin/zip compressoptions -r compressext .zip 
    Linux и Unix - лучшая ОС в мире.