URL: https://www.overclockers.at/linux/debian_cron_startet_nicht_richtig_198957/page_1 - zur Vollversion wechseln!
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
Script und crontab posten, dann schau'ma weiter.
crontab:
/usr/local/sbin/backup_default:Code:30 0 * * * /usr/local/sbin/backup_default
/etc/logrotate_backup_default:Code:#!/bin/sh logrotate /etc/logrotate_backup_default.cfg tar -czf /root/backup/default/etc.gz /etc;
der Kommentar von logrotate, wenn logrotate mit "-v" aufgerufen wird:Code:/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 Timestamp der Datei liegt aber am 22.8.Code: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
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.
ich verwende überall absolute Pfade
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?)
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.
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!
Gerne, keine Ursache
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025