Adicione essas linhas (que são agnósticas ao shell) a /etc/rc.local
, ou coloque-as em um arquivo de script (precedido pelo shebang #!/bin/sh
) e coloque uma linha para executá-lo em /etc/rc.local
. / p>
# find the line number for the (most recent) start of syslog
LOGSTART=$(grep -n "syslog.*start" /var/log/syslog.1|cut -f1 -d:|tail -n1)
# give up if none found
[ -n "$LOGSTART" ] || exit 0
# add preceding lines to the long-term log
sed "$LOGSTART,\$d" /var/log/syslog >>/var/log/syslog.old
# make a copy of the log
cp /var/log/syslog /tmp/syslog
# recreate the active log
sed -n "$LOGSTART,\$p" /tmp/syslog >/var/log/syslog
# remove the copy
rm /tmp/syslog
Pode ser melhor parar o syslogd (ou rsyslogd ou qualquer outro) durante este processo e reiniciá-lo depois, mas deixei isso para o seu dever de casa.
Verifique primeiro que grep "syslog.*start" /var/log/syslog
de fato encontre linhas marcando a inicialização do seu criador de logs do sistema, caso contrário, modifique essa linha apropriadamente. O arquivo de log às vezes é / var / log / messages, mas presumivelmente não no seu caso desde que você mencionou o syslog.