выполнение сценария оболочки crontab не так, как ожидалось
У меня есть скрипт run_logs.sh с содержимым:
#!/bin/bash
source /root/.profile
zcat /var/log/apache2/access.log.*.gz | /usr/bin/goaccess - access.log
когда я запускаю этот скрипт от имени пользователя root (как с префиксом «bash», так и без него), в командной строке программное обеспечение goaccess обрабатывает как access.log, так и все сжатые журналы. Но когда cron запускает его, он обрабатывает только доступ.log. Что я могу сделать, чтобы это исправить?
Мой корневой crontab выглядит так:
0 * * * * /root/run_logs.sh
1 ответ
Здесь было найдено решение , которое, по сути, говорит о том, что у goaccess есть особое требование по добавлению дефиса в параметры для обработки нескольких файлов. Однако по какой-то причине он работает без этого при запуске в командной строке, а не при запуске в cron. Я обновил правильную команду в ОП, чтобы отразить дополнительный параметр goaccess.