auf Facebook teilen auf Google+ teilen auf LinkedIn teilen auf Pinterest teilen twittern
Werbehinweise
» Startseite » Software » Linux » Online dank Cronjob 

»Onlinebleib«-Cronjob

Für Win32-Systeme werden etliche Tools angeboten, welche einen Disconnect Aufgrund verhindern soll, wenn der Rechner über einen längeren Zeitraum keine Anfrage an das Internet gestellt hat. Man könnte auch einen IRC-Client laufen lassen, oder ein anderes Programm starten, welches eine permanente Verbindung zum Internet unterhält.

Natürlich kann man auch unter Linux einen IRC-Client aufrufen oder auf andere Programme zurückgreifen. Es geht allerdings deutlich einfacher – und zuverlässiger: Mittels einem Eintrag in der /etc/crontab.

In der Datei /etc/crontab werden Aufrufe geschrieben, die regelmäßig abgearbeitet werden sollen. Man gibt an, wann die angegebenen Befehle/Scripte aufgerufen werden sollen. Damit die Verbindung gehalten wird, muß man erstmal wissen, wie oft eine Anfrage an das Internet gestellt werden muß. Trennt der Provider beispielsweise nach fünf Minuten Inaktivität, so braucht man nicht jede Minute eine Anfrage ans Web zu stellen. Es genügt vollkommen, alle vier Minuten eine Anfrage zu stellen. Das folgende Beispiel setzt alle zwei Minuten einen Ping auf die Domain foo.bar ab:

 0-59/2 * * * * root /bin/ping -c 1 www.foo.bar > /dev/null 

Natürlich ist die Domain foo.bar nicht real existent. Sie soll in diesem Beispiel als Platzhalter für eine »richtige« Domain, oder für eine IP im Internet dienen.

Die Option -c 1 des Ping-Befehls gibt an, dass ausschließlich ein Paket gesendet werden soll. Unter Win32 werden standardmäßig vier Pakete gesendet, unter Linux werden solange Pakete geschickt, bis durch den Benutzer ein Abbruch erfolgt.

Der letzte Teil des Aufrufs > /dev/null leitet die Ausgabe des Ping-Aufrufs nach /dev/null, dem »Datennirvana« um.

Eine crontab-Zeile

Wer sich mit der crontab noch nicht auseinandergesetzt hat (oder es bisher noch nicht machen mußte), steht bei der oberen Zeile eventuell vor einem kleinen Rätsel. Daher noch kurz und bündig der Aufbau einer crontab-Zeile:

  • Position #1: Minute. In der Beispiel-Zeile steht das 0-59/2 dafür, dass alle zwei Minuten der Befehl ausgeführt werden soll. Für die exakte Angabe von Minuten sind die Werte zwischen 0 und 59 zulässig.
  • Position #2: Stunde. Der Stern ist eine Wildcard. Daher wird zu jeder Stunde in jeder zweiten Minute der Befehl abgearbeitet. Dies gilt ebenfalls für die weiteren Positionen. Würde man eine bestimmte Uhrzeit angeben, würde der Job nur dann ausgeführt werden, wenn eben diese Uhrzeit zutrifft. Es sind Werte zwischen 0 und 23 möglich.
  • Position #3: Tag. An dieser Position kann ein Wert zwischen 1 und 31 den gewünschten Tag festlegen.
  • Position #4: Monat. Gültige Werte sind 1 bis 12, oder die englische Abkürzung für den Monatsnamen (jan, feb, etc.)
  • Position #5: Wochentag. Wie beim Monat kann man auch hier zwischen der Angabe einer Ganzzahl und der Abkürzung für einen Wochentag wählen. Zulässig wären somit sun, mon, etc., oder ein Wert zwischen 0 und 7, wobei 0 oder 7 für den Sonntag steht.
  • Position #6: Benutzer. Wird ein Programm oder Script gestartet, so läuft es mit den Rechten des angegebenen Benutzers. Manche Programme/Scripte benötigen Rootrechte, dies ist im geweiligen Fall passend auszuwählen.
  • Position #7: Befehl. Den Abschluß des Aufrufs bildet der Aufruf des Programms oder des Scriptes. Im Beispiel wird einfach nur ein ping aufgerufen und die Ausgabe – wie schon geschrieben – ins Datennivana umgeleitet.

Eigentlich alles gar kein Hexenwerk, allerdings würden viele höchstwahrscheinlich dreißig Einträge in die /etc/crontab schreiben, wenn sie alle zwei Minuten einen Aufruf ausgeführt haben wollen.

Wichtiger Hinweis

Achtung: Wird der Rechner an ein Netz angeschlossen welches über einen Internetzugang verfügt der keine Flatrate oder Standleitung ist, so entstehen natürlich Onlinekosten. Daher ist der Eintrag nur für Netze mit Flatrates oder eben Standleitungen geeignet. Wobei es bei einer Standleitung nicht wirklich viel Sinn macht. Schließlich besteht über eine Standleitung permanent eine Verbindung – somit ist auch nicht so ein Eintrag in der /etc/crontab notwendig.


 
 
Das Generieren dieser Seite dauerte genau 0.10258 Sekunden.