Первая проблема, которую нужно решить, это тот факт, что вам нужна более общая функция, которая может выполняться в любой месяц и давать правильный результат.Хороший инструмент для получения необходимой информации (сокращенный месяц и две последние цифры года) - date
.
date -d "last month" +%b
При запуске 1 апреля 2019 года будет отображаться «март».
date -d "last month" +%b%y
При запуске 1 апреля 2019 года будет выдано «Mar19».
Теперь, когда мы знаем, как получить требуемую информацию, размещение команд date
в команде tar
автоматически выдает результат, который вы ищете.
tar -cvzf somezipfile_$(date -d "last month"%b%y).tar.gz somelogfile_**$(date -d "last month" +%b)** --remove-files
Последняя существующая проблема - это планирование, которое можно решить с помощью cron
.Приведенный ниже оператор будет запускаться /bin/foobar
5-го числа каждого месяца при добавлении в файл crontab.(crontab -e
для редактирования файла crontab)
0 0 5 * * /bin/foobar
Комбинируя все вместе, вы получаете:
0 0 5 * * /bin/tar -cvzf somezipfile_$(date -d "last month"\%b\%y).tar.gz somelogfile_**$(date -d "last month" +\%b)** --remove-files
Не забудьте сбежать из% вкронтаб