Hallo, Am Mon, 02 Jul 2007, Andre Tann schrieb:
David Haller, Freitag, 29. Juni 2007 06:44:
Was um zum Geier braucht denn da so lange?
Da werden viele Gigabytes gebackupt
Das sollte eher nicht das cron-script blockieren...
Es wäre vermutlich sinnvoller, wenn du den "Langläufer" nur von cron anschubsen läßt und das dann unabhängig von cron weiterlaufen läßt.
Bin da nicht so sicher. Im cron.daily wird der Datenbestand irgendwohin gebackupt, im cron.weekly wird er woandershin gebackupt. Jetzt will ich nicht unbedingt, daß zwei Backup-Prozesse parallel zu laufen anfangen.
Da helfen Lockfiles. Ggfs. ein gemeinsames für daily und weekly, wenn auch die nicht parallel laufen sollen.
Zugegebenermaßen habe ich aber noch nicht untersucht, ob cron.weekly-Skripten unabhängig davon gestartet werden, ob die daily-Skripten schon durch sind.
Weiß ich auch nicht, AFAIK laufen die nacheinander (gestern lief hier glaub weekly (oder monthly) recht lange, und nicht parallel...
Lediglich weiß ich, daß die daily-Skripten nicht parallel gestartet werden, sondern der Reihe nach.
Jup.
Im Anschubsscript in /etc/cron.daily solltest du noch dafür sorgen, daß der Langläufer nur einmal läuft (checkproc -f pidfile|startproc -f pidfile bieten sich an)... Falls du die Ausgabe zugemailt bekommen willst kann man das auch im Anschubsscript machen.
Fragen?
Ja, allgemeiner Art: Entweder so:
checkproc /mein/skript || /mein/skript
oder so
startproc /mein/skript
In beiden Fällen wird /mein/skript nur gestartet, wenn es nicht schon anderweitig läuft, richtig?
Ich verstehe nicht ganz, warum Du -f haben willst.
Deswegen: startproc does not use the pid to search for a process but the full path of the corresponding program which is used to identify the executable (see proc(5)). Da es wohl geschickter ist, in /etc/cron.{daily,weekly} nur ein Anschubsscript zu haben... Nur mal so "hingedacht" und ungetestet: ==== /etc/cron.daily/mybackup ==== #!/bin/sh /sbin/startmybackup --daily & ==== ==== /etc/cron.weekly/mybackup ==== #!/bin/sh /sbin/startmybackup --weekly & ==== ==== /sbin/startmybackup ==== #!/bin/bash BACKUPPROG="/foo/bar/baz" DAILYARGS=( "--meine" "Optionen" "--fuer" "das" "--taegliche" "Backup mit Leerzeichen" ) WEEKLYARGS=( "--meine" "Optionen" "--fuer" "das" "--woechentliche" "Backup" ) while test $# -gt 0; do case "$1" in --daily) ARGS="${DAILYARGS[@]}"; shift;; --weekly) ARGS="${WEEKLYARGS[@]}"; shift;; *) # hier könnte man noch mehr machen... shift;; esac done /sbin/startproc "$BACKUPPROG" "${ARGS[@]}" 2>&1 | logger -f /var/log/mybackup.log if ${PIPESTATUS[0]} -eq 0; then subject="Backup Succeeded" else subject="Backup had errors" fi /bin/mail -s "$subject" root < /var/log/mybackup.log ==== oder irgendwie sowas in der Art ;) -dnh -- BOFH excuse #415: Maintenance window broken -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org