Kernelmeldungen von mount in Skript auf tty

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Kernelmeldungen von mount in Skript auf tty

Michael Wagner
Hallo zusammen,

da ich in de.comp.os.unix.shell keine Antwort erhalten habe, versuche
ich es mal hier.

Ich hab hier ein bash Skript fuer Backups in meinem privaten Netz. Es
laeuft auf eine USB-Platte, die per udev Regel immer gleich eingebunden
wird und per systemd wird das Backup beim Einstecken gestartet. So weit,
so gut. Nun dachte ich, dass wenn die Platte noch steckt, dann kann ich
ja per crontab das Skript starten.

Das vereinfachte Skript sieht so aus:
---------------------------------------------
#!/bin/bash

if [ -L /dev/backup-platte ]
        then
        /bin/mount /dev/backup-platte /mnt
        rsync -aHiq --del / /mnt/backup-workstation
sync
umount /mnt
else
        exit
fi
---------------------------------------------

Die crontab sieht so aus (alles in einer Zeile):

*/30 * * * * /sbin/sysctl -w kernel.printk="0 4 1 7" 1> /dev/null ; \\
/usr/local/sbin/rsync.sh ; /sbin/sysctl -w kernel.printk="7 4 1 7" 1> \\
/dev/null

Damit gibt es keine Meldungen am tty, also auf auf der virtuellen
Konsole /dev/tty*, auf der ich gerade arbeite, aber es muss doch eine
elegantere Loesung geben als die Kernelmeldungen fuer das gesamte
Abarbeiten des Skripts zu unterdruecken.

Folgende Meldung wird auf /dev/tty* ausgegeben:

EXT4-fs (sdc1): mounted filesystem with ordered data mode. Opts: (null)

Ich hatte auch schon im Skript folgendes versucht:

/sbin/sysctl -w kernel.printk="0 4 1 7" 1> /dev/null
/bin/mount /dev/backup-platte /mnt
/sbin/sysctl -w kernel.printk="7 4 1 7" 1> /dev/null

Damit laeuft zwar das Skript ohne die Kernelmeldungen am tty, aber ueber
die crontab aufgerufen erscheinen sie.

Tia Michael

--
  Was laesst sich auf marzahnsche "Logik" eigentlich noch erwidern?
                          (Margret Chatwin)

signature.asc (923 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Kernelmeldungen von mount in Skript auf tty

Stefan Krusche-2
Am Samstag, 12. Januar 2019 schrieb Michael Wagner:

> Hallo zusammen,
>
> da ich in de.comp.os.unix.shell keine Antwort erhalten habe, versuche
> ich es mal hier.
>
> Ich hab hier ein bash Skript fuer Backups in meinem privaten Netz. Es
> laeuft auf eine USB-Platte, die per udev Regel immer gleich eingebunden
> wird und per systemd wird das Backup beim Einstecken gestartet. So weit,
> so gut. Nun dachte ich, dass wenn die Platte noch steckt, dann kann ich
> ja per crontab das Skript starten.
>
> Das vereinfachte Skript sieht so aus:
> ---------------------------------------------
> #!/bin/bash
>
> if [ -L /dev/backup-platte ]
>         then
>         /bin/mount /dev/backup-platte /mnt
>         rsync -aHiq --del / /mnt/backup-workstation
> sync
> umount /mnt
> else
>         exit
> fi
> ---------------------------------------------
>
> Die crontab sieht so aus (alles in einer Zeile):
>
> */30 * * * * /sbin/sysctl -w kernel.printk="0 4 1 7" 1> /dev/null ; \\
> /usr/local/sbin/rsync.sh ; /sbin/sysctl -w kernel.printk="7 4 1 7" 1> \\
> /dev/null
>
> Damit gibt es keine Meldungen am tty, also auf auf der virtuellen
> Konsole /dev/tty*, auf der ich gerade arbeite, aber es muss doch eine
> elegantere Loesung geben als die Kernelmeldungen fuer das gesamte
> Abarbeiten des Skripts zu unterdruecken.

Nur für den Fall, daß es Dir nicht bekannt ist: das läßt sich in
/etc/sysctl.conf konfigurieren:
# Uncomment the following to stop low-level messages on console
#kernel.printk = 3 4 1 3
kernel.printk = 4 4 1 7

Mich störten die Meldungen schon immer auf der console, deshalb habe ich sie
ganz abgeschaltet. ( Stören die Dich nur von Deinem Backupskript?! )

> Folgende Meldung wird auf /dev/tty* ausgegeben:
>
> EXT4-fs (sdc1): mounted filesystem with ordered data mode. Opts: (null)
>
> Ich hatte auch schon im Skript folgendes versucht:
>
> /sbin/sysctl -w kernel.printk="0 4 1 7" 1> /dev/null
> /bin/mount /dev/backup-platte /mnt
> /sbin/sysctl -w kernel.printk="7 4 1 7" 1> /dev/null
>
> Damit laeuft zwar das Skript ohne die Kernelmeldungen am tty, aber ueber
> die crontab aufgerufen erscheinen sie.

Läuft der crontab Aufruf mit Nutzerrechten oder als root (und das Skript?)

Möglicherweise hilft:

sysctl --quiet ...   # siehe: man sysctl (8)

Meine zwei Pfennige…

Freundliche Grüße,
Stefan