[gelöst] cron-script verstehen

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
biber54
Beiträge: 10
Registriert: 10.11.2013 21:32:51

[gelöst] cron-script verstehen

Beitrag von biber54 » 11.11.2013 21:01:53

Hallo,

ich habe mir dirvish als backup-Programm eingerichtet, das auch schon weitgehend nach Wusch läuft. Ein cronjob

Code: Alles auswählen

5 1 * * * /usr/sbin/dirvish-expire --quiet ; /usr/sbin/dirvish-runall -- quiet
erledigt das Starten des Backups, wenn die Sicherungsplatte gemounted ist.

Nun hat mir das Paket auch noch eine /etc/cron.d/dirvish - Datei erstellt mit folgendem Inhalt:

Code: Alles auswählen

4 22 * * *  root /etc/dirvish/dirvish-cronjob
und an angegebenem Ort dieses Script:

Code: Alles auswählen

#! /bin/sh
#
# daily cron job for the dirvish package
#
if [ ! -x /usr/sbin/dirvish-expire  ]; then exit 0; fi
if [ ! -s /etc/dirvish/master.conf ]; then exit 0; fi
mount_check() {
	mntout=`tempfile -p mount`
	mount $1 >$mntout 2>&1
	if [ ! -d $1/lost+found ]; then # only works for "real" filesystems :-)
					# (Yes, I know about reiserfs.)
		echo "'mount $1' failed?! Stopping."
		echo "mount output:"
		cat $mntout
		rm -f $mntout
		exit 2
	fi
        if stat $1 | grep 'Inode: 2[^0-9]' >/dev/null; then # ditto
		rm -f $mntout
		return 0 # ok
	fi
	echo "$1 isn't inode 2 ?! Mount must have failed; stopping."
	echo ''
	stat $1
	echo "mount output:"
	cat $mntout
	rm -f $mntout
	umount $1
	exit 2
}

## Example of how to mount and umount a backup partition...
# mount_check /backup

/usr/sbin/dirvish-expire --quiet && /usr/sbin/dirvish-runall --quiet
rc=$?

# umount /backup || rc=$?

exit $rc
Leider ist mir die Scriptsprache noch nicht so geläufig, dass ich überhaupt verstehe, was diese Script anstellt. Und, muss ich hier irgendetwas editieren, damit das Teil funktioniert? Wie bewege ich cron dann dazu, dieses Script auszuführen?

Ich habe debian auf meinem Dateiserver laufen und habe es auf der Kommandozeile bzw mit mc konfiguriert, doch meine weitergehenden Kenntnisse halten sich leider noch sehr in Grenzen. Vielleicht kann hier jemand helfen?

Gruß
Günter
Zuletzt geändert von biber54 am 13.11.2013 20:13:57, insgesamt 1-mal geändert.

Benutzeravatar
Natureshadow
Beiträge: 2157
Registriert: 11.08.2007 22:45:28
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Radevormwald
Kontaktdaten:

Re: cron-script verstehen

Beitrag von Natureshadow » 12.11.2013 02:19:58

Hi,

das sollte um 22:04 laufen. Wie kommst du darauf, dass es das nicht tut?

-nik

biber54
Beiträge: 10
Registriert: 10.11.2013 21:32:51

Re: cron-script verstehen

Beitrag von biber54 » 12.11.2013 09:14:57

Moin Nik,

du hast recht, das Backup läuft um 22:04. Nun frage ich mich, was denn mit dem per crontab -e erstellten Befehl passiert: es wird weder ein zweites Backup um 01:05 erstellt, noch finde ich irgendeine Fehlermeldung.

Was mir noch wichtiger ist: Ich würde gern das Script verstehen, was macht es, wo kann ich es anpassen? Gibt es dafür Literatur oder Websites für Anfänger?

Gruß
Günter

Benutzeravatar
4A4B
Beiträge: 981
Registriert: 09.11.2011 11:19:55
Kontaktdaten:

Re: cron-script verstehen

Beitrag von 4A4B » 12.11.2013 09:55:31

Code: Alles auswählen

5 1 * * * /usr/sbin/dirvish-expire --quiet ; /usr/sbin/dirvish-runall -- quiet
Zwischen dem zweiten -- und quiet ist ein Leerzeichen zuviel

Außerdem würde ich anstelle des ";" ein "&&" verwenden, so dass der zweite Befehl nur ausgeführt wird, wenn der erste ausgeführt werden konnte. So wie es auch in dem Script /etc/dirvish/dirvish-cronjob der Fall ist:

Code: Alles auswählen

/usr/sbin/dirvish-expire --quiet && /usr/sbin/dirvish-runall --quiet

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: cron-script verstehen

Beitrag von rendegast » 12.11.2013 10:02:29

Das Skript gibt die Möglichkeit einer Einbindung eines unter /backup/ gemounteten backup-Mediums.
Dazu den Comment in der Zeile

Code: Alles auswählen

# mount_check /backup
entfernen.
Es braucht einen Eintrag für /backup in /etc/fstab, vielleicht in der Art

Code: Alles auswählen

LABEL=blubberbackup  /backup  ....  noauto,....  ..  ..
Wenn der Comment in Zeile

Code: Alles auswählen

# umount /backup || rc=$?
entfernt wird, so wird das Medium auch wieder ausgehängt.

Ist alles entsprechend anpaß- und ausbaubar.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Benutzeravatar
Natureshadow
Beiträge: 2157
Registriert: 11.08.2007 22:45:28
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Radevormwald
Kontaktdaten:

Re: cron-script verstehen

Beitrag von Natureshadow » 12.11.2013 11:29:18

crontab -e benutzt du eh nicht für System-Cronjobs!

Aber ich denke, de Aufruf taucht trotzdem in syslog auf.

-nik

biber54
Beiträge: 10
Registriert: 10.11.2013 21:32:51

Re: cron-script verstehen

Beitrag von biber54 » 12.11.2013 11:54:09

Moin und ein großes Danke für die Antworten.

@ 4A4B:
Es sind ja immer die Kleinigkeiten, die man beim Abschreiben übersieht :oops:

@ rendegast:
Genau das hatte ich gesucht: die richtige Stelle in dem Script, die das Mounten und Unmounten übernimmt.

@ Natureshadow:
Im Syslog taucht der Aufruf auf, bewirken tut er aber offensichtlich sonst nichts weiter.
Doch was unterscheidet System-Cronjobs von Anderen?

Gruß
Günter

Benutzeravatar
Natureshadow
Beiträge: 2157
Registriert: 11.08.2007 22:45:28
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Radevormwald
Kontaktdaten:

Re: cron-script verstehen

Beitrag von Natureshadow » 12.11.2013 11:56:06

Vermutlich, aber das kann ich nur raten, greift um 1::05 einfach noch der Locking-Mechanismus von dirvish oder so.

System-Cronjobs gehören zum System, crontab -e editiert die persönliche crontab eines Benutzers. System-Konfiguration hat in /etc zu sein.

-nik

biber54
Beiträge: 10
Registriert: 10.11.2013 21:32:51

Re: cron-script verstehen

Beitrag von biber54 » 13.11.2013 20:10:30

Wieder 'was dazu gelernt - Vielen Dank! Cron erledigt seinen Job jetzt wie gewünscht.

Gruß
Günter

Antworten