[OpenBSD] Reboot notificatie

Pagina: 1
Acties:

  • Ivo
  • Registratie: Juni 2001
  • Laatst online: 14-01-2025
Ik wilde de gebruikers van mijn server automatisch op de hoogte houden van reboots. Ik heb dus een klein script geschreven en dit geplaatst in /etc/rc.local. Het script werkt prima, behalve als het wordt aangeroepen vanuit rc.local. Ik kan niet uitvinden waar de schoen wringt.

Dit is het script:
code:
1
2
3
4
5
#!/bin/sh
for user in `cat /root/reboot_notification_users`; do
        echo "$SERVER has rebooted at `date`" | mail -s "$SERVER reboot" $user
done
exit 0

Dit is de aanpassing in /etc/rc.local:
code:
1
2
3
if [ -x /root/reboot_notification ]; then
        echo -n 'emailing users about reboot'; /root/reboot_notification
fi

Het werkt wel als ik het gewoon vanuit de shell aanroep. Kan het zijn dat sendmail nog niet helemaal "up" is? Als het goed is wordt die opgestart voordat /etc/rc.local begint.

Edit: Ik heb zojuist "sleep 30" toegevoegd voor de regel in rc.local. Ook dan wordt er geen mail verstuurd.

[ Voor 6% gewijzigd door Ivo op 13-04-2007 14:46 ]


Verwijderd

krijg je script output @ boottime? (in de vorm van foutmeldingen ed). Tevens, ik kan in je script niet zien dat je ervan afhankelijk bent, maar tijdens het booten hebben je scripten geen tty device en daar kunnen scripts/tools op foutgaan (screen bv)

  • Ivo
  • Registratie: Juni 2001
  • Laatst online: 14-01-2025
Ik heb er geen monitor aan hangen en in de logs vind ik niks. Die echo's in rc.local die horen daar te staan (ik start zo meerdere daemons op) dus echoen gaat goed. Ik zou ook niet weten waarom mail een tty nodig heeft.

  • GrooV
  • Registratie: September 2004
  • Laatst online: 30-01 16:47
Draait het script wel als de server wordt gereboot? Anders gewoon in een crontab gooien, werkt altijd :)

  • Ivo
  • Registratie: Juni 2001
  • Laatst online: 14-01-2025
Het script wordt aangeroepen door rc.local. Dit wordt normaal gebruikt om daemons op te starten.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#   $OpenBSD: rc.local,v 1.39 2006/07/28 20:19:46 sturm Exp $

# Site-specific startup actions, daemons, and other things which
# can be done AFTER your system goes into securemode.  For actions
# which should be done BEFORE your system has gone into securemode
# please see /etc/rc.securelevel.

echo -n 'starting local daemons:'

# Add your local startup actions here.

echo '.'

if [ -x /usr/sbin/apachectl ]; then
    echo -n ' apache'; /usr/sbin/apachectl start
fi

if [ -x /usr/local/sbin/dovecot ]; then
    echo -n ' dovecot'; /usr/local/sbin/dovecot
fi

if [ -x /usr/local/bin/mysqld_safe ]; then
    echo -n ' mysql'; /usr/local/bin/mysqld_safe
fi

# Notifying users of reboot

if [ -x /root/reboot_notification ]; then
    echo -n ' emailing users about reboot'; /root/reboot_notification
fi

Voila! De daemons draaien allemaal vrolijk na een reboot.

Verwijderd

Ivo schreef op zaterdag 14 april 2007 @ 14:25:
code:
1
2
3
4
5
# Notifying users of reboot

if [ -x /root/reboot_notification ]; then
    echo -n ' emailing users about reboot'; /root/reboot_notification
fi

Voila! De daemons draaien allemaal vrolijk na een reboot.
is /root/reboot_notification wel executable?

  • Ivo
  • Registratie: Juni 2001
  • Laatst online: 14-01-2025
Ja, dat is executable. Ik heb reboot_notification world-executable gemaakt en reboot_notification_users world-readable al denk ik dat alleen root rechten hoeft te hebben. Ook dat hielp niet.

  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

zorg eens dat je if ook een else heeft
krijg je misschien een melding die tot iets leidt.

ASSUME makes an ASS out of U and ME


Verwijderd

Ivo schreef op zaterdag 14 april 2007 @ 15:05:
Ja, dat is executable. Ik heb reboot_notification world-executable gemaakt en reboot_notification_users world-readable al denk ik dat alleen root rechten hoeft te hebben. Ook dat hielp niet.
Heb je niet toevallig twee verschillende versies van mail? Waardoor de een de mail afleverd in een standaard mail spool en de andere in Maildir oid.

Ik heb het hier op een test bak gedraaid en het werkte gewoon. (OpenBSD ultrasparc.local 4.0 GENERIC#953 sparc64)

  • Ivo
  • Registratie: Juni 2001
  • Laatst online: 14-01-2025
Heb je het ook getest met de bestanden in /root? Een touch /root/test in rc.local werkt ook niet. Zijn er restricties aan wat je mag doen in rc.local?

Edit: Ik gebruik zelf een generieke 4.0 stable kernel voor i386. Als er nog iemand die gebruikt kan hij dan ook eens testen. Het zou in ieder geval moeten kunnen aangezien het op een Sparc wel werkt.

Edit2: Ik heb maar 1 versie van mail op het systeem staan.

[ Voor 48% gewijzigd door Ivo op 14-04-2007 16:19 ]


Verwijderd

Ivo schreef op zaterdag 14 april 2007 @ 16:03:
Heb je het ook getest met de bestanden in /root? Een touch /root/test in rc.local werkt ook niet. Zijn er restricties aan wat je mag doen in rc.local?

Edit: Ik gebruik zelf een generieke 4.0 stable kernel voor i386. Als er nog iemand die gebruikt kan hij dan ook eens testen. Het zou in ieder geval moeten kunnen aangezien het op een Sparc wel werkt.

Edit2: Ik heb maar 1 versie van mail op het systeem staan.
ja, ik heb alle files onder /root/ gezet. Ik ken OpenBSD niet supergoed maar volgens mij zijn er naast de standaard securemode beperking geen andere restricties wat je mag doen in rc.local.

  • JeroenE
  • Registratie: Januari 2001
  • Niet online
Ivo schreef op zaterdag 14 april 2007 @ 16:03:
Een touch /root/test in rc.local werkt ook niet. Zijn er restricties aan wat je mag doen in rc.local?
Werkt een touch /tmp/testje wel? Ik vermoed dat het rc.local script draait met te weinig rechten om in /root te kunnen lezen en schrijven, maar blijkbaar wel genoeg rechten om in /usr eea te kunnen doen.

  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

JeroenE schreef op zondag 15 april 2007 @ 08:56:
[...]
Werkt een touch /tmp/testje wel? Ik vermoed dat het rc.local script draait met te weinig rechten om in /root te kunnen lezen en schrijven, maar blijkbaar wel genoeg rechten om in /usr eea te kunnen doen.
net waar ik op doelde...
door ook een else-clause in te voegen zie je ook wanneer de [ -x ... ] mislukt..

ASSUME makes an ASS out of U and ME


  • Ivo
  • Registratie: Juni 2001
  • Laatst online: 14-01-2025
Ook in /tmp kan ik geen bestanden aanmaken. Na een reboot en het volgende in /etc/rc.local is /tmp nog steeds leeg:
code:
1
2
3
4
5
6
7
touch /tmp/test

if [ -x /usr/local/sbin/reboot_notification ]; then
    echo -n ' emailing users about reboot'; /usr/local/sbin/reboot_notification
else
    touch /tmp/test_in_else
fi

N.B. Ik heb het script verplaatst naar /usr/local/sbin om te testen.

/tmp wordt toch leeggemaakt voordat rc.local gedraaid wordt lijkt me.

  • Gertjan
  • Registratie: Oktober 2001
  • Laatst online: 09-09-2025

Gertjan

mmmm, beer...

Waarom plaats je niet een symlink naar je script in /etc/rc6.d? Je systeem zal alle scripts uitvoeren die daarin staan op het moment dat er een reboot uitgevord gaat worden. Lijkt me een wat nettere manier dan op het moment dat hij weer up komt. Met de volgorde van de scripts kun je er ook voor zorgen dat jouw script uitgevoerd wordt voordat sendmail uitgeschakeld wordt.

Zie 'man update-rc.d' hoe je die symlinks moet maken.

/edit
Ai, ik was in de war met een andere thread: dacht dat dit over Linux ging. Ik heb geen ervaring met BSD, maar heeft die niet ook zo'n systeem?

[ Voor 15% gewijzigd door Gertjan op 15-04-2007 20:47 ]


  • riddles
  • Registratie: April 2000
  • Laatst online: 26-05-2025
Weet je zeker dat je PATH in /etc/rc.local gezet is? Ik zie niet gespecificeerde commando's als cat, echo (kan ook in de Shell zitten) en mail staan, die misschien helemaal niet gevonden kunnen worden.

  • Ivo
  • Registratie: Juni 2001
  • Laatst online: 14-01-2025
Er is een file /etc/rc.shutdown die uitgevoerd wordt als er een shutdown uitgevoerd wordt, maar een reboot na een systeemcrash of stroomuitval zorgt dan dus niet voor mail in het postvakje van mijn gebruikers. Dat is wat ik wil.

riddles: Geweldige suggestie, maar het mocht niet baten. Zelfs met alle commando's absoluut aangeduid werkt het niet.

edit: misc@openbsd.org heeft mail.

[ Voor 25% gewijzigd door Ivo op 15-04-2007 22:10 ]

Pagina: 1