Hallo Juze, * Juze Lohr schrieb am 28.Mär.2002:
skript, welches mir den Server online hält und da finde ich leider
Wie online hält? Hast Du eine Standleitung? Dann brauchst Du keine Software, die diese Leitung online hält, Du bist einfach online. Wenn Du keine Standleitung hast, sondern z.B eine flat, warum willst Du online sein, wenn Du es nicht brauchst? Du nimmst nur anderen Leuten eine IP-Adresse weg.
überhaupt nichts, wie das mit den Skripten grundsätzlich funktioniert.
Alles was Du auf der Kommandozeile eingibst, kannst Du auch in einem Skript angeben und umgekehrt, außgenommen sind History und Befehlsergänzung, aber das versteht sich doch hoffentlich von selbst. Genauer kann ich nur sagen, wenn Du genauere Fragen stellst. Würde aber auf jedem Fall ein gutes Buch empfehlen.
Ein weiteres grundlegendes Problem habe ich mit den cron-jobs.
Die manpages helfen mir an dieser Stelle erst mal nicht, da es um Grundsätzliches geht und nicht um die Konfiguration.
Welche Frage hast Du denn? Grundsätzlich gibt es zwei verschiedene cronmechanismen, die sich leicht in der Syntax unterscheiden. Du solltest Dich für eine entscheiden, sonst gibt es ein Durcheinander. Nicht beim System, sondern bei Dir. Einmal gibt es /etc/crontab und zum anderen gibt es /var/spool/cron/tabs/$USER wobei $USER für den jeweiligen User steht. (Loginname) Das erstere sollte man nehmen, wenn eine crontab für alle User ausreicht, das andere, wenn man eine eigene crontab für jeden User haben möchte. Die Syntax in /etc/crontab sieht wie folgt aus: Min Std Tag Monat Wtag User Befehl Die Syntax in /var/spool/cron/tabs/$USER sieht hingegen so aus: Min Std Tag Monat Wtag Befehl Der Eintrag für User fehlt, da er schon durch den Namen gegeben ist. Bei Min steht zu welcher Minute der Befehl ausgeführt werden soll, bei Std. zu welcher Stunde usw. Wtag steht für Wochentag, und zwar 0 oder 7 für den Sonntag, 1 für Montag usw. bis 6 für Samstag. Es sind auch mehere, durch Komma getrennte Angaben sowie Bereiche möglich. Etwa: 5-10,20-30 steht für jede Minute von Minute 5 bis Minute 10, sowie Minute 20 bis Minute 30 einschließlich. Wenn es im Bereich Minute steht. Bei den anderen entsprechend. Es ist darauf zu achten, daß kein Leerzeichen eingefügt wird, denn das Leerzeichen ist der Trenner der einzelnen Felder. Stände da etwa 5-10, 20-30, so würde 20-30 als Stunde interpretiert, auch wenn es Quatsch ist. Steht da ein * so steht das für jede Minute, Stunde usw. Häufig bei Tag, Monat und Wochentag anzutreffen. */5 steht für alle fünf Minuten, Stunden, usw. Beispiel: */10 7-11,13-18 * 1-11 1-5 steht für alle 10 Minuten und zwar zwichen 7:00 und 11:50, sowie 13:00 und 18:50 und zwar von Mo-Fr. und an allen Monaten außer Dezember. Bei /etc/crontab muß jetzt noch der User dahinter, in dessen Name das ausgeführt werden soll. Der Rest der Zeile ist der Befehl, der ausgeführt werden soll. Bei /var/spool/cron/tabs/$USER entfällt der User. Beim Befehl ist darauf zu achten, daß cron keinen so umfassenden Pfad hat, wie er normal gegeben ist. Am Besten man gibt den vollen Pfadnamen an. Wenn der Befehl irgendwelche Ausgaben hat, so werden diese dem User als Mail zugesand. Das kann ganz schön lästig werden, daher darauf achten, daß der Befehl normalerweise keine Ausgaben hat. Wenn man sie braucht, so in einer Datie umlenken, ansonsten nach /dev/null, daß allgemeine Datengrab. Aber ich warne davor auch die Fehlerausgabe nach /dev/null umzulenken. Nachher funktioniert irgend etwas nicht und man steigt nie dahinter. Wenn es wichtig ist, immer nach einer Logdatei umlenken. Ansonsten ist es keine schlechte Idee sich bei einer Fehlerausgabe tatsächlich benachrichtigen zu lassen. Und noch etwas: Normalerweise wird cron in den Startskripten gestartet. Er müßte die ganze Zeit laufen, und zwar in den Runlevel 2, 3 und 5. (Normalerweise hat man Runlevel 5, wenn man mit Graphik startet und 3, wenn man mit der Konsole startet.) Wenn man in den crontabs was ändert, braucht man das cron nicht mitzuteilen, daß stellt cron schon selber fest. Es ist sofort aktiv. Das ganze kann natürlich nur funktionieren, wenn der Rechner zum besagten Zeitpunkt eingeschaltet ist und einer der obigen Runlevel läuft. Eine Minute später ist zu spät. Da dies heutzutage nicht mehr unbedingt gewährleistet ist, werden die Verzeichnisse cron.daily, cron.hourly, cron.monthly und cron.weekly zur Verfügung gestellt. Alle ausführbare Programme, bzw. Skripte in diesen Verzeichnisse werden einmal am Tag, STunde, Monat bzw. Woche ausgeführt, wenn der Rechner in besagter Zeit min. eine Viertelstunde an ist. Der Sinn bei hourly erschließt sich mich nicht ganz. Aber bei den anderen ist dies durchaus sinnvoll. Einfach ein Skript dahineinstellen und ausführbar machen, es wird bevorzugt kurz nach Mitternacht, entweder jeden Tag, oder Sonntags (in der Nacht von Samstag auf Sonntag) oder am 1. ausgeführt. Aber spätestens wenn der Rechner eingeschaltet ist und die Skripte in der entsprechenden Zeit noch nicht gelaufen. Bernd