У меня есть следующий файл конфигурации logrotate
/home/application/*/shared/log/*.log {
daily
rotate 10
missingok
nocompress
notifempty
copytruncate
sharedscripts
postrotate
echo "Hi....."
/home/application/test.sh > /home/application/test_bash.log 2>&1
echo "By....."
endscript
}
/home/application/test.sh в настоящее время содержимое следует (я пытаюсь в сценарии оболочки создать фиктивный файл, но безуспешно)
#!/bin/sh
echo "=============================================="
Когда я запускаю logrotate, все файлы успешно вращаются, но сценарий test.sh не выполняется
Потпут Logrotate выглядит следующим образом:
запуск сценария postrotate, запуск сценария с аргументом arg / home / application // общий / журнал /.log: "echo" Привет ..... "/home/application/test.sh> /home/application/test_bash.log 2> & 1 echo" By ..... ""
Файл журнала /home/application/test_bash.log не создается.
Я даже пробую простой такой пример
/home/application/*/shared/log/*.log {
daily
rotate 10
missingok
nocompress
notifempty
copytruncate
sharedscripts
postrotate
mkdir /home/application/demo_v2/shared/log/arch
endscript
}
Почему logrotate не выполняет мой сценарий оболочки? Что делаю неправильно?
Как кто-то сказал ранее, команды "echo" завершатся ошибкой, поскольку в logrotate нет TTY, поэтому вы можете попробовать ...
echo "Hi....." > /home/application/test_bash.log
/home/application/test.sh >> /home/application/test_bash.log 2>&1
echo "By....." >> > /home/application/test_bash.log
Неясно, что может сделать logrotate, если вы попытаетесь выполнить что-то вроде эха без TTY.
Выходные данные - logrotate -dvf - похоже, указывают на то, что ваш скрипт запущен.
Сначала попробуйте что-нибудь простое, например - echo foo> /home/application/test_bash.log 2> & 1
Если это сработает, то сценарий будет легко отлаживать.
Logrotate не имеет магического TTY; куда вы ожидали записать этот вывод?
Обычно можно запустить сценарий, который перенаправляет свой вывод в специальный dlog и избегает вывода чего-либо на стандартный вывод; Вы, кажется, перепутали несколько представленных выше понятий.
Возможно, если бы мы знали, что именно вы хотите делать с этим скриптом logrotate кто-нибудь может помочь.