Debian: cron startet nicht (richtig)
Hiob 26.08.2008 - 10:36 910 8
Hiob
Addicted
|
Hallo!
Ich hab Debian 4.0 laufen und möchten einmal in der Nacht ein Backup von /etc machen. Ich habs so realisiert: Per Cron wird ein Shell Skript aufgerufen. Das rotiert mittels logrotate die bestehenden Backups, und danach wird /etc per gzip neu gebackupt.
Das Skript läuft eigentlich tadellos. Nur: Jetzt hab ichs auf meinen Servern schon laufen, und teilweise macht es was, und teils nicht. Manchmal wird das Backup per gzip erstellt. Manchmal nicht. Aber immer: Es wird nie das logrotate durchgeführt.
Teilweise finde ich auch nicht mal den Aufruf des Crons in der /var/log/syslog. Und das versteh ich einfach nicht.
Ich hab gegoogelt und einen Haufen deutscher Foren gefunden ... nur die haben auch alle keinen Plan. Habe gelesen, dass cron teils anders läuft, als wenn Skripte in der Shell direkt aufruft. Nur kann ich mit dieser Info nix anfangen, dass des Ding richtig läuft.
Ist mein Problem soweit verständlich? Wenn nicht, ich erläuter es gern nochmal.
Mahalo, Hiob
|
COLOSSUS
AdministratorGNUltra
|
Script und crontab posten, dann schau'ma weiter.
|
Hiob
Addicted
|
crontab:30 0 * * * /usr/local/sbin/backup_default
/usr/local/sbin/backup_default:#!/bin/sh
logrotate /etc/logrotate_backup_default.cfg
tar -czf /root/backup/default/etc.gz /etc;
/etc/logrotate_backup_default:/root/backup/default/*.gz.6.3 {
monthly
missingok
rotate 11
nocreate
sharedscripts
}
/root/backup/default/*.gz.6 {
weekly
missingok
rotate 3
nocreate
sharedscripts
}
/root/backup/default/*.gz {
daily
ifempty
missingok
rotate 6
nocreate
sharedscripts
}
der Kommentar von logrotate, wenn logrotate mit "-v" aufgerufen wird: rotating pattern: /root/backup/default/*.gz after 1 days (6 rotations)
empty log files are rotated, old logs are removed
considering log /root/backup/default/etc.gz
log does not need rotating
Der Timestamp der Datei liegt aber am 22.8. Hat das eventuell was mit /var/lib/logrotate/status zu tun, und welche Zeitstempel da drin sind?
|
COLOSSUS
AdministratorGNUltra
|
Absolute Pfade zu den Binaries im Shellscript verwenden. crond hat ueblicherweise ein anderes environment als deine normale interaktive (Login-)Shell, und deshalb nicht notwendigerweise den selben $PATH.
|
Hiob
Addicted
|
ich verwende überall absolute Pfade
|
COLOSSUS
AdministratorGNUltra
|
Laut deinem Listing (/usr/local/sbin/backup_default) nicht. Ist der syslogd auf allen Boxen gleich konfiguriert? (Insb.: geht die facility, auf die cron logt, auf allen ins selbe File?)
|
Hiob
Addicted
|
ah, du meinst den Aufruf für logrotate ... hm, hab ich übersehen, sorry. Werd das mal ausbessern! Danke hierfür mal!
/edit das wird aber wahrscheinlich nicht der eine Fehler gewesen sein, denn sonst würd ja im syslog der Aufruf crons drin stehn. Tuts aber nicht. Der Cronjob wird nie aktiv...
/edit 2: syslogd: Ganz ehrlich: Ich weiß es nicht. Es sind Firmenserver, die haben alle die selben Vorlagen zum Aufsetzen. Ich hätt mich nie am syslogd vergriffen, also nehme ich, dass er überall gleich läuft.
Bearbeitet von Hiob am 26.08.2008, 11:00 (Zusatz #2)
|
Hiob
Addicted
|
UPDATE: der relative Aufruf wurde in einen absoluten umbenannt, und auf meiner Testumgebung läuft es nun so, wie es soll. Testumgebung: Ein Skript gibt abwechselnd einen "date" und einen "sleep" Befehl aus. Date setzt das Datum jeweils auf den nächsten Tag Mitternacht, und sleep wartet eine Minute. (Mag vielleicht nicht "professionell" sein ... aber ist mir egal. Es funktioniert ) @ COLOSSUS: Herzliches Danke! Vier Augen (oder deine zwei) sehen mehr, als meine!
|
COLOSSUS
AdministratorGNUltra
|
Gerne, keine Ursache
|