Site Tools


logrotate

FreeBSD

Тут, стандартным средством является:

/etc/newsyslog.conf

Linux

Если необходимо отратировать отдельный файл, то создаем отдельный конфиг и в кронтаб указываем logrotate с путем к конфигу.

Время ротаций:

  • daily # ратировать каждый день
  • weekly # Ротация раз в неделю
  • monthly # Ротация раз в месяц
  • compress #сжимаем файлы
  • compresscmd #Указываем команду сжатия
  • uncompresscmd #Указываем команду разжатия
  • compressext # В ручную указываем расширение сжатого файла
  • compressoptions # Указываем опции для команды сжатия
  • copy # ротация по средством копирования, без действия над оригиналом
  • copytruncate # ротация по средством копирования, после чего обнуляется оригинал '> mylog'
  • create mode own group # После ротации, создается файл с определенными правами доступа. Доп опции могут быть опущены и файл будет создан с ранее имеющимися правами
  • delaycompress # ротированный файл будет сжат при следующей ротации. Полезно, если программа продолжает писать в ротируемый файл до перезагрузки.
  • extension расширение # Указывает дополнительное расширение в конец имени.
  • ifempty # обрабатывать лог, даже если он пустой.
  • include файл_или_каталог # подключаем конфиги
  • mail адрес # Отправить email с логами
  • mailfirst # Посылать толькочто от ратированный лог
  • maillast # (default) Посылать последний, удаляемый лог
  • missingok # Отсутствие лога не является ошибкой
  • olddir directory # Диреторию для ротационных логов. Должна быть на домже устройстве.
  • postrotate/endscript # Bash скрипт выполняемый после ротации
  • prerotate/endscript # Bash скрипт выполняемый до ротации
  • rotate раз # Колличество ротаций. После - удаление или отправка по email. При 0, файл просто будет удален при ротации
  • size размер # size 100, size 100k, и size 100M. Размер, после которого файл будет ратирован
  • sharedscripts # При sharedscripts, скрипты будут обрабатываться одит раз для всего раздела. Без него, если раздел обрабатывает несколько логов, то скрипты выполняются для каждого из логов.
  • start число # назначает число, с которого начнется счет (числа добавляются в имя файла)
  • tabooext [+] список_расширений # Изменяет текущий список запрещённых расширений (см. include). Если списку расширений предшествует знак +, то этот список прибавится к текущему, иначе заместит его. При первоначальном запуске список содержит следующие расширения: .rpmorig, .rpmsave, ,v, .swp, .rpmnew и ~.

Переопределяющие:

  • nocompress
  • nocopy
  • nocopytruncate
  • nocreate
  • nodelaycompress
  • nomail
  • nomissingok
  • noolddir
  • nosharedscripts
  • notifempty

Примеры

/var/log/apache2/*.log {
	weekly
	missingok
	rotate 52
	compress
	delaycompress
	notifempty
	create 640 root adm
	sharedscripts
	postrotate
		/etc/init.d/apache2 reload > /dev/null
	endscript
}
/var/log/apport.log {
       daily
       rotate 7
       delaycompress
       compress
       notifempty
       missingok
}
/var/log/apt/term.log {
  rotate 12
  monthly
  compress
  missingok
  notifempty
}
/var/log/apt/history.log {
  rotate 12
  monthly
  compress
  missingok
  notifempty
}
/var/log/ConsoleKit/history {
       monthly
       rotate 6
       delaycompress
       compress
       notifempty
       missingok
}
/var/log/cups/*log {
	daily
	missingok
	rotate 7
	sharedscripts
	postrotate
		if [ -e /var/run/cups/cupsd.pid ]; then
			invoke-rc.d --quiet cups force-reload > /dev/null
			sleep 10
		fi
	endscript
	compress
	notifempty
	create 640 root lpadmin
}
/var/log/dpkg.log {
	monthly
	rotate 12
	compress
	delaycompress
	missingok
	notifempty
	create 644 root root
}
/var/log/alternatives.log {
	monthly
	rotate 12
	compress
	delaycompress
	missingok
	notifempty
	create 644 root root
}
/var/log/exim4/mainlog /var/log/exim4/rejectlog {
	daily
	missingok
	rotate 10
	compress
	delaycompress
	notifempty
	create 640 Debian-exim adm
}
/var/log/exim4/paniclog {
	size 10M
	missingok
	rotate 10
	compress
	delaycompress
	notifempty
	create 640 Debian-exim adm
}
/var/log/jockey.log {
       daily
       rotate 10
       copytruncate
       delaycompress
       compress
       notifempty
       missingok
}
/var/log/mysql.log /var/log/mysql/mysql.log /var/log/mysql/mysql-slow.log {
	daily
	rotate 7
	missingok
	create 640 mysql adm
	compress
	sharedscripts
	postrotate
		test -x /usr/bin/mysqladmin || exit 0
		# If this fails, check debian.conf! 
		MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf"
		if [ -z "`$MYADMIN ping 2>/dev/null`" ]; then
		  # Really no mysqld or rather a missing debian-sys-maint user?
		  # If this occurs and is not a error please report a bug.
		  #if ps cax | grep -q mysqld; then
		  if killall -q -s0 -umysql mysqld; then
 		    exit 1
		  fi 
		else
		  $MYADMIN flush-logs
		fi
	endscript
}
/var/log/pm-suspend.log /var/log/pm-powersave.log {
       monthly
       rotate 4
       delaycompress
       compress
       notifempty
       missingok
}
/var/log/ppp-connect-errors {
	weekly
	rotate 4
	missingok
	notifempty
	compress
	nocreate
}
/var/log/rkhunter.log {
        weekly
        missingok
        rotate 4
        compress
        delaycompress
        notifempty
        create 640 root adm
}
/var/log/syslog
{
	rotate 7
	daily
	missingok
	notifempty
	delaycompress
	compress
	postrotate
		reload rsyslog >/dev/null 2>&1 || true
	endscript
}
/var/log/mail.info
/var/log/mail.warn
/var/log/mail.err
/var/log/mail.log
/var/log/daemon.log
/var/log/kern.log
/var/log/auth.log
/var/log/user.log
/var/log/lpr.log
/var/log/cron.log
/var/log/debug
/var/log/messages
{
	rotate 4
	weekly
	missingok
	notifempty
	compress
	delaycompress
	sharedscripts
	postrotate
		reload rsyslog >/dev/null 2>&1 || true
	endscript
}
/var/log/samba/log.smbd {
	weekly
	missingok
	rotate 7
	postrotate
		[ ! -f /var/run/samba/smbd.pid ] || kill -HUP `cat /var/run/samba/smbd.pid`
	endscript
	compress
	notifempty
}
/var/log/samba/log.nmbd {
	weekly
	missingok
	rotate 7
	postrotate
		[ ! -f /var/run/samba/nmbd.pid ] || kill -HUP `cat /var/run/samba/nmbd.pid`
	endscript
	compress
	notifempty
}
daily
compress
missingok
sharedscripts
/var/log/speech-dispatcher/speech-dispatcher.log /var/log/speech-dispatcher/speech-dispatcher-protocol.log {
  rotate 7
  postrotate
    /etc/init.d/speech-dispatcher reload >/dev/null
  endscript
}
/var/log/speech-dispatcher/debug-epos-generic /var/log/speech-dispatcher/debug-festival /var/log/speech-dispatcher/debug-flite {
  rotate 2
  postrotate
    /etc/init.d/speech-dispatcher reload >/dev/null
  endscript
}
/var/log/ufw.log
{
	rotate 4
	weekly
	missingok
	notifempty
	compress
	delaycompress
	sharedscripts
	postrotate
		invoke-rc.d rsyslog reload >/dev/null 2>&1 || true
	endscript
}
/var/log/unattended-upgrades/unattended-upgrades.log {
  rotate 6
  monthly
  compress
  missingok
  notifempty
}
You could leave a comment if you were logged in.
logrotate.txt · Last modified: 2012/03/26 15:25 (external edit)

Page Tools