Cron-Job Konfiguration

Aus Melin DokuWiki

Wechseln zu: Navigation, Suche

Unter Unix haben sich einige Standards herausgebildet um Applikationen komfortabel zu starten und zu stoppen. Eine davon ist mit /etc/ini.d, hier kann ein einfacher Eintrag hinzugefügt werden um den Hintergrund-Daemon neu zu starten

[bearbeiten] /etc/init.d/melin

	#!/bin/sh
	
	set -e
	. /lib/lsb/init-functions
	melin="/home/melin/msite/demon/startup.sh &"
	
	case "$1" in
	  start)
		log_begin_msg "Starting Melin"
		su melin -c "$melin"
		;;
	  stop)
		log_begin_msg "Stopping Melin"
		cd /home/melin/msite/demon && /home/melin/msite/demon/shutdown.sh
		;;
	  restart)
		$0 stop
		$0 start
		;;
	  *)
		log_success_msg "Usage: /etc/init.d/melin {start|stop}"
		exit 1
		;;
	esac
	
	exit 0


[bearbeiten] /etc/init.d/tomcat

Eine ähnliche Funktion kann für den Tomcat implementiert werden:

#!/bin/sh

set -e
. /lib/lsb/init-functions
tomcat="/var/melin/tomcat/bin/startup.sh"

case "$1" in
  start)
    log_begin_msg "Starting Tomcat"
    su melin -c "$tomcat"
    ;;
  stop)
    log_begin_msg "Stopping Tomcat"
    kill -9 `ps ax|grep /usr/lib/jvm|awk '{print $1}'`
    ;;
  restart)
    $0 stop
    $0 start
    ;;
  *)
    log_success_msg "Usage: /etc/init.d/tomcat {start|stop}"
    exit 1
    ;;
esac

exit 0

[bearbeiten] /etc/logrotate.d/melin

Hat man diese beiden Scripte aktiviert kann man die Logrotation konfigurieren. Als Nebeneffekt wird dadurch der Daemon einmal am Tag neu gestartet was der Performance zuträglich ist. Bei Systemen mit mehr als 300.000 Mails am Tag sollte man das auf jeden Fall umsetzen.

/var/melin/msite/demon/logs/console.log /var/melin/tomcat/logs/catalina.out {
        daily
        missingok
        rotate 30 
        compress
        delaycompress
        notifempty
        create 664 melin users
        start 10
        firstaction
                /etc/init.d/melin stop
        endscript
        lastaction
                /etc/init.d/melin start
        endscript
}


Wichtig bei dieser Konfiguration ist die Zeile

  1. packages drop log rotation information into this directory

include /etc/logrotate.d

in der /etc/cron.daily/logrotate.conf