Über uns

Drupal - Consulting und Services seit 2005. Acquia Service Partner seit 2009. Hier erfahren Sie mehr über uns.

Über Drupal

Drupal ist eines der besten Open Source CMS. Mit Version 7 stehen Ihnen neue mächtige Funktionen zur Verfügung.

SEO

Seit der ersten Drupal Version aus dem Jahr 2000, stellt Drupal wichtige Werkzeuge für SEO zur Verfügung.

Distributionen

Spezialisierte Drupal Installationsprofile stellen Ihnen maßgeschneiderte Lösungen für einen definierten Website Typ zur Verfügung.

STARTSEITE

Mit Plesk einen Cronjob für die cron.php von Drupal erstellen

Die cron.php übernimmt die Ausführung zentraler Wartungsarbeiten und sollte regelmäßig ausgeführt werden. Dieser Artikel zeigt, wie Sie mit Plesk einen Cronjob anlegen, der alle 15 Minuten die cron.php aktualisiert, unabhängig davon ob jemand die Seite besucht oder nicht.

Gerade Anfänger haben oft das Problem, dass sie nicht wissen wie man über die typische Administrationsfläche Plesk, die auf vielen virtuellen Servern läuft, einen Cronjob anlegen können, der genau dieses vornimmt. Ich zeige Ihnen hier Schritt für Schritt wie Sie dieses vornehmen können. Dabei gehe ich davon aus, dass Plesk installiert ist und ein Linux auf dem Server als Betriebssystem läuft.

Folgen Sie einfach den folgenden Schritten.

Anlage der Datei

Starten wir mit der Datei selber, diese benötigt ein wenig Code.

#!/bin/bash
lynx -dump http://www.der-domain-name.de/cron.php >/dev/null

Wir wollen uns an der Stelle nur soviel merken, dass Lynx ein Textbrowser ist, der sehr wahrscheinlich auf dem virtuellen Server installiert ist. Wir rufen also einfach diese cron.php mit Lynx auf, und schreiben die Ausgabe gleich ins Nirvana (das macht /dev/null).

Dann speichern wir uns die Datei unter einem beliebigen Namen, wie bspw. cron_job.sh. Dabei achten Sie darauf, dass unter Windows auch wirklich .sh abgespeichert wird und nicht .sh.txt. Das erreichen Sie in der Regel durch die Benutzung von Anführungszeichen im Texteditor Ihrer Wahl "cron_job.sh".

Damit haben Sie bereits alles an Dateivorarbeit erledigt was wir hier benötigen.

Datei auf den Server überspielen

Die meisten werden das Kopieren kennen, da Sie sehr wahrscheinlich auch schon die Drupalversion auf den Server kopiert haben. Nichts anderes wird hier auch gemacht.

In dem root Verzeichnis der Drupalinstallation gibt es ein Verzeichnis scripts. Dort könnte man das Script ablegen, allerdings muss man das dann im Kopf behalten, wenn man ein Update von Drupal macht und die Verzeichnisse löscht. Prinzipiell kann jedes Verzeichnis benutzt werden auf das der Benutzer unter dem der aufrufende Prozess läuft, auch Zugriffsrechte besitzt.

Sehr wahrscheinlich sieht ihr Verzeichnis dann so ähnlich aus.
/var/www/vhosts/<domain-name>/httpdocs/scripts. Kopieren Sie in das Verzeichnis dann die oben erstellt Datei hinein. Jetzt fehlen nur noch die passenden Rechte, wobei hier ein 755 ausreichend ist. Wenn Sie bspw. SCP unter Windows nutzen können Sie über einen Rechtsklick und Properties das folgende Fenster aufrufen.

Aber auch praktisch jeder Dateimanager wie Nautilus kann die Verbindung zum Server aufbauen.

Plesk aufrufen

Die genaue URL zum Aufrufen von Plesk erhalten Sie von Ihrem Provider. Bei Auslieferung läuft Plesk oft auf dem Port 8443. Bei mir sieht das dann wie folgt aus

Nach dem Einloggen sehen Sie dann die Oberfläche von Plesk. Halten Sie dann Ausschau nach den Domains und anzeigen

Danach wählen Sie Ihre entsprechende Domain aus, ich habe hier meine eigene verwendet. Ein Klick genügt…

… und Sie finden auf der rechten unteren Hälfte der Seite nun geplante Aufgaben welches Sie anklicken.

Das darauf folgende Menü mit dem Benutzer werden Sie in der Regel überspringen können, wenn Sie nur einen Systembenutzer haben. Nachdem Sie diesen angeklickt haben, finden Sie sich auf der Übersichtsseite aller geplanter Aufgaben wieder.

Über das neue Aufgabe planen am oberen Rand, können Sie eine neue Aufgabe erstellen. Klicken Sie den Button und Sie finden folgende Abbildung vor sich.

Dabei kann man nun alle Felder bis auf das erste Feld (Minute) kann mit “*” ausgefüllen. In dem ersten können wir eine Schrittweite angeben, die Info über Cron bei Wikipedia hilft, um zum folgenden Bild zu kommen (nach abspeichern):

Die letzte Zeile enthält nun den Pfad zu der Datei, die oben erstellt und auf den Server kopiert worden ist. /var/www/vhosts/<domain-name>/httpdocs/scripts/cron_job.sh wäre die oben vorgestellte Variante. Abspeichern nicht vergessen - fertig.

Ausführung von Cron überprüfen

Natürlich will und sollte man auch überprüfen ob der Cronjob richtig ausgeführt wird. Dazu kann man unter der URL http://www.<domain-name>.de/admin/reports/status prüfen, wann Cron zuletzt ausgeführt worden ist.

Kommentare

Du kannst das Anlegen des Skripts auch umgehen Cron direkt mit einem Befehl starten:

curl --silent --compressed http:///cron.php

Grüße,

Holger

Hi,

die Zeile "lynx -dump http://www.der-domain-name.de/cron.php" kann direkt als Befehl für den Cronjob im Plesk eintragen werden, ohne die sh-Datei anzulegen. Oder spricht irgendwas dagegen?

LG
thomas

Member since:
2 Mai 2010
Last activity:
1 Jahr 33 Wochen

Hallo Thomas,

das habe ich noch gar nicht ausprobiert, aber wenn es aber funktioniert ist das denke ich eine Alternative. Danke für den Hinweis!

@Holger: Auch hier danke!

Grüße
Sebastian

Hallo liebe Drupaler!

Ich habe erst seit kurzem Plesk und wollte mir eine Aufgabe einrichten. @ Thomas, Holger & Sebastian:

Ich verwendete als Befehl folgenden Code, der Cron wurde jedoch nicht ausgeführt:
curl --silent --compressed http://meinedomain.at/v2_0/cron.php

Ergänzend:
"v2_0" ist das Unterverzeichnis, in dem Drupal installiert ist.
Habe auch schon ein "www." vor "meinedomain" gesetzt - keine Wirkung...
Auch der Befehl von Thomas funktioniert nicht.
Wenn ich manuell auf "www.meinedomain.at/v2_0/cron.php klicke wird er ganz normal ausgeführt.

Woran kann das liegen?
Vielen Dank für eure Hilfe
Max

Member since:
2 Mai 2010
Last activity:
1 Jahr 33 Wochen

Hallo Max,

hast du schon mal den Weg mit der Datei wie oben beschrieben versucht? Ich habe mit curl noch gar nichts gemacht.

Hast du für deine Codezeile sowohl manuell (also auf Konsole und gucken was rauskommt) und auch per Plesk probiert?

Gruß
Sebastian

Hallo Sebastian,
besten Dank.
Ich hab mich ein bisschen gespielt und hab's mit folgendem Befehl hinbekommen:

/usr/bin/wget -O - -q http://www.meinedomain.at/v2_0/cron.php

Liebe Grüße
Max

Lynx finde ich auch etwas übertrieben für diese kleine Aufgabe. Ich nutze selbst wie max über mir "wget", allerdings mit einem Zusatzparameter um den Aufruf nur einmalig zu probieren.

#!/bin/bash
/usr/bin/wget -O - -q -t 1 http://www.example.com/cron.php

Entschuldigt, wenn ich so einen alten Thread wieder ausgrabe, aber mal eine rein praktische Frage:

Wenn ich über Plesk angeben kann, welche datei aufgerufen wird - wozu dann noch die .sh datei? o.O

ok, bin selber drauf gekommen, dass das die ausführende Datei ist - deswegen die Rechte auch 755 - damit andere dateien nicht von außen beschreibbar sind! Danke für den tollen Blog-Eintrag, hat mir weitergeholfen!

Wo gibt man denn die Befehle ein?

Kommentar hinzufügen

  • Internet- und E-Mail-Adressen werden automatisch umgewandelt.
  • Zulässige HTML-Tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd><img><p><br>
  • HTML - Zeilenumbrüche und Absätze werden automatisch erzeugt.
  • You may post code using <code>...</code> (generic) or <?php ... ?> (highlighted PHP) tags.

Drupal News & Diskussionen

Neueste Kommentare

mdwp*

Drupal - Consulting u. Services
Webdesign, Konzeption, Entwicklung

Hügelstr. 6a
58099 Hagen

E-Mail: post@mdwp.de
Tel.: 02331 3 96 16 91

Drupal Association Organisation Member
Acquia Service Partner