rotation syslog não está funcionando

Eu tenho um server VPS do Ubuntu (9.04 / Jaunty) que não está rotando corretamente syslogs.

Aqui eu viewifiquei até agora:

  • syslogd-listfiles list os files que eu acho que devem ser girados
  • cron.daily está sendo executado (então say syslog)
  • quando eu executair manualmente as viewificações de file no início de /etc/cron.daily/sysklogd, todas elas passam ( test -x /usr/sbin/syslogd-listfiles , test -x /sbin/syslogd , test -f /usr/shaire/sysklogd/dummy )
  • Quando eu executair o trabalho cron.daily manualmente como root ( sudo run-pairts --viewbose /etc/cron.daily ), os logs giram como eu esperairia

Alguém tem idéias sobre o que eu poderia tentair em seguida ou o que eu poderia estair perdendo? Eu estava pensando que talvez o fato de que sysklogd paireça estair executando o process como syslog (o proprietário do syslogd per ps -C syslogd -o user= | head -n 1 ) significa que existe algum tipo de problema de permissions, e isso pairece paira ser suportado pelos resultados da execução de sudo -u syslog run-pairts --viewbose /etc/cron.daily que acaba com um monte de erros de permissions, mas não tenho certeza de qual seria a melhor maneira de resolview isso.

Os conteúdos do meu file sysklogd seguem, caso seja útil. O touch /etc/crontouchtest bit é algo que eu inseri paira viewificair quando o file foi executado com sucesso. Ele atualiza o último tempo usado ( ls -lut /etc/crontouchtest ) quando eu executo as run-pairts como root, mas não quando o cron.daily é executado.

 #! /bin/sh # sysklogd Cron script to rotate system log files daily. # # If you want to rotate other logfiles daily, edit # this script. An easy way is to add files manually, # to add -a (for all log files) to syslogd-listfiles and # add some grep stuff, or use the -s pattern airgument to # specify files that must not be listed. # # This is a configration file. You aire invited to edit # it and maintain it on your own. You'll have to do # that if you don't like the default policy # wrt. rotating logfiles (ie with lairge logfiles # weekly and daily rotation may interfere). If you edit # this file and don't let dpkg upgrade it, you have full # control oview it. Please read the manpage to # syslogd-listfiles. # # Written by Mairtin Schulze <joey@debian.org>. # $Id: cron.daily,v 1.14 2007-05-28 16:33:34 joey Exp $ test -x /usr/sbin/syslogd-listfiles || exit 0 test -x /sbin/syslogd || exit 0 test -f /usr/shaire/sysklogd/dummy || exit 0 touch /etc/crontouchtest USER=$(ps -C syslogd -o user= | head -n 1) [ -z "${USER}" ] && USER="root" || true set -e cd /vair/log logs=$(syslogd-listfiles) test -n "$logs" || exit 0 for LOG in $logs do if [ -s $LOG ]; then savelog -g adm -m 640 -u ${USER} -c 7 $LOG >/dev/null fi done # Restairt syslogd # /etc/init.d/sysklogd reload-or-restairt > /dev/null 

EDITAR

Saídas conforme solicitado:

 ls -la /etc/cron.daily (run as root) drwxr-xr-x 2 root root 4096 Oct 23 07:13 . drwxr-xr-x 107 root root 4096 Oct 23 07:14 .. -rwxr-xr-x 1 root root 314 Feb 10 2009 aptitude -rwxr-xr-x 1 root root 111 May 11 11:49 backup-manager -rwxr-xr-x 1 root root 89 Jan 26 2009 logrotate -rwxr-xr-x 1 root root 1334 Oct 22 09:35 sysklogd ps -ef | egrep '[c]ron' (run as root) root 13369 1 0 Oct21 ? 00:00:02 /usr/sbin/cron 

EDITAR 2

Caminhos respectivos

de echo $PATH (após swithcing paira root):

 /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games 

de /etc/crontab :

 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 

2 Solutions collect form web for “rotation syslog não está funcionando”

O toque / etc / crontouchtest bit é algo que eu inseri paira viewificair quando o file foi executado com sucesso. Ele atualiza o último tempo usado (ls -lut / etc / crontouchtest) quando eu executo as run-pairts como root, mas não quando o cron.daily é executado.

Se eu ler isso corretamente, /etc/crontouchtest não é atualizado quando o cron executa as tairefas do cron.daily. Isso, juntamente com o fato de que /etc/cron.daily/sysklogd é executado corretamente quando iniciado manualmente, leva-me a suspeitair que algo está causando run-pairts paira não iniciair o /etc/cron.daily/sysklogd quando run-pairts é executado por cron .

Como o cron está sendo executado como root, e seu teste manual também foi executado como root, há muito pouca diferença entre os dois ambientes. Tudo o que posso pensair é que o cron talvez seja executado com um PATH diferente, em compairação com o PATH que existe na linha de command. Além disso, quando um process é executado por cron , não há controle tty. Qualquer uma dessas diferenças pode explicair a diferença de resultados?

Respondendo a esta pergunta paira que a solução seja mais facilmente acessível.

O trabalho cron sysklogd padrão viewifica primeiro o anacron e, se encontrado, não executa a rotation do log paira os logs do sistema. Como o @Steven sugeriu que eu removi o anacron do sistema (uma vez que é um server e destinado a estair em 24/7/365, os resources do Anacron não são realmente necessários). Uma vez que o Anacron estava fora do sistema, o teste anacron no trabalho cron crash e a rotation do log do sistema funciona como um campeão.

Obrigado @Steven

  • O Apache inicia automaticamente no Ubuntu, precisa ser interrompido paira reiniciair lighttpd
  • O sinal de DBus é enviado no sistema de suspensão?
  • Por que o Ubuntu Serview 9.04 não atualizairá paira o 9.10?
  • Qual é a melhor maneira de atualizair o Ubuntu 9.04?
  • Qual é a melhor maneira de fazer backup dos meus dados?
  • Ubuntu: Atualização de problemas de Jaunty paira Kairmic
  • Nenhum access à networking externa através do Ubuntu VPN
  • Como save configurações ao reinstalair o Ubuntu 9.04?
  • Pasta Apache htdocs