{"id":29567,"date":"2026-02-25T13:19:00","date_gmt":"2026-02-25T12:19:00","guid":{"rendered":"https:\/\/contabo.com\/blog\/crontab-syntax-unter-linux-ein-praktischer-guide-fuer-2026\/"},"modified":"2026-04-01T09:42:10","modified_gmt":"2026-04-01T07:42:10","slug":"crontab-syntax-unter-linux-ein-praktischer-guide-fuer-2026","status":"publish","type":"post","link":"https:\/\/contabo.com\/blog\/de\/crontab-syntax-unter-linux-ein-praktischer-guide-fuer-2026\/","title":{"rendered":"Crontab-Syntax unter Linux: Ein praktischer Guide f\u00fcr 2026"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"630\" src=\"https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_guide-linux-crontab-syntax_DE.webp\" alt=\"Crontab-Syntax unter Linux: Ein praktischer Guide f\u00fcr 2026 (Titelbild)\" class=\"wp-image-28618\" srcset=\"https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_guide-linux-crontab-syntax_DE.webp 1200w, https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_guide-linux-crontab-syntax_DE-600x315.webp 600w, https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_guide-linux-crontab-syntax_DE-768x403.webp 768w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<p>Du hast ein Backup-Skript. Es funktioniert, wenn du es von Hand ausf\u00fchrst. Jetzt soll es jede Nacht um 2 Uhr morgens laufen, ohne dass du das Terminal betreuen musst. Hier kommt Cron ins Spiel, und die richtige Crontab-Syntax macht den Unterschied zwischen einem Skript aus, das planm\u00e4\u00dfig ausgef\u00fchrt wird, und einem Skript, das stillschweigend nichts tut, w\u00e4hrend du schl\u00e4fst.<\/p>\n\n\n\n<p>Dieser Guide behandelt alles, was du brauchst: das Crontab-Format und die Feldwerte, die Sonderzeichen, die die Planung flexibel machen, die wenigen Crontab-Befehle, die du tats\u00e4chlich verwenden wirst, sowie echte Beispiele, die du kopieren und anpassen kannst. Kein F\u00fcllmaterial, kein unn\u00f6tiger Schnickschnack.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-was-ist-crontab-und-ein-cron-job\">Was ist Crontab und ein Cron-Job<\/h2>\n\n\n\n<p>Drei Begriffe werden abwechselnd verwendet, und das sollte nicht der Fall sein.<\/p>\n\n\n\n<p><strong>Cron-Daemon (crond)<\/strong> ist der Hintergrundprozess, der jede Minute aufwacht, nach geplanten Arbeiten sucht und alles ausf\u00fchrt, was f\u00e4llig ist. Er macht dies auf Unix-Systemen seit den 1970er Jahren. Du interagierst nicht direkt mit ihm.<\/p>\n\n\n\n<p><strong>Cron-Job<\/strong> ist jede einzelne Aufgabe, die du \u00fcber Cron geplant hast. Eine Datenbanksicherung um Mitternacht, eine Protokollrotation sonntags, ein Gesundheitscheck-Ping alle f\u00fcnf Minuten. Jede einzelne ist ein Cron-Job.<\/p>\n\n\n\n<p><strong>Crontab<\/strong> (kurz f\u00fcr &#8222;Cron-Tabelle&#8220;) ist die Datei, in der diese Jobs gespeichert sind. Eine Zeile pro Job. Jede Zeile teilt dem Cron-Daemon genau mit, welcher Befehl wann ausgef\u00fchrt werden soll.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-wie-lautet-die-crontab-syntax\">Wie lautet die Crontab-Syntax<\/h3>\n\n\n\n<p>Die Crontab-Syntax ist das strukturierte Format, das du verwendest, um zu definieren, wann ein Cron-Job ausgel\u00f6st werden soll. Jede Zeile in deiner Crontab-Datei folgt demselben Muster: f\u00fcnf Zeit-\/Datumsfelder, dann der Befehl. Der Cron-Daemon liest diese Zeilen, analysiert die Felder und gleicht sie einmal pro Minute mit der aktuellen Systemzeit ab. Wenn die Syntax falsch ist, passiert nichts. Kein Fehler, keine Warnung. Nur Stille.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-crontab-format-und-feldwerte\">Crontab-Format und Feldwerte<\/h2>\n\n\n\n<p>Jeder Crontab-Eintrag verwendet f\u00fcnf Felder vor dem Befehl. Sie erscheinen immer in dieser Reihenfolge:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Feld<\/strong><\/td><td><strong>Zul\u00e4ssige Werte<\/strong><\/td><\/tr><tr><td>Minute<\/td><td>0-59<\/td><\/tr><tr><td>Stunde<\/td><td>0-23<\/td><\/tr><tr><td>Tag des Monats<\/td><td>1-31<\/td><\/tr><tr><td>Monat<\/td><td>1-12<\/td><\/tr><tr><td>Tag der Woche<\/td><td>0-6 (0 = Sonntag; in einigen Systemen steht zus\u00e4tzlich die 7 f\u00fcr einen Sonntag)<\/td><\/tr><tr><td>Befehl<\/td><td>Der Shell-Befehl, der ausgef\u00fchrt werden soll<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Alle f\u00fcnf Felder sind Pflichtfelder. Wenn dir ein bestimmtes Feld egal ist, f\u00fclle es mit einem Sternchen (<code>*<\/code>). Wenn du ein Feld leer l\u00e4sst, wird der Eintrag ung\u00fcltig und cron informiert dich nicht dar\u00fcber.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-crontab-sonderzeichen-erklart\">Crontab-Sonderzeichen erkl\u00e4rt<\/h3>\n\n\n\n<p>Mit reinen Zahlen kommst du nur begrenzt weit. Diese Sonderzeichen machen Cron-Ausdr\u00fccke flexibel genug, um echte Planungsanforderungen zu erf\u00fcllen:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Symbol<\/strong><\/td><td><strong>Was es tut<\/strong><\/td><td><strong>Beispiel<\/strong><\/td><\/tr><tr><td><code>*<\/code> (Sternchen)<\/td><td>Entspricht jedem m\u00f6glichen Wert f\u00fcr dieses Feld<\/td><td>* im Feld Stunde = jede Stunde ausf\u00fchren<\/td><\/tr><tr><td><code>,<\/code> (Komma)<\/td><td>Trennt eine Liste spezifischer Werte<\/td><td>1,3,5 im Tag der Woche = Mo, Mi, Fr<\/td><\/tr><tr><td><code>-<\/code> (Bindestrich)<\/td><td>Definiert einen Bereich von aufeinanderfolgenden Werten<\/td><td>9-17 im Stundenfeld = 9 Uhr bis 17 Uhr<\/td><\/tr><tr><td><code>\/<\/code> (Schr\u00e4gstrich)<\/td><td>Setzt einen Schritt-\/Intervallwert<\/td><td>*\/10 im Minutenfeld = alle 10 Minuten<\/td><\/tr><tr><td><code>L<\/code><\/td><td>Letzter Tag des Monats oder letzter bestimmter Wochentag<\/td><td>1L im Tag der Woche = letzter Montag des Monats<\/td><\/tr><tr><td><code>W<\/code><\/td><td>Der Wochentag, der dem angegebenen Tag am n\u00e4chsten liegt<\/td><td>15W im Tag des Monats = Wochentag, der dem 15. am n\u00e4chsten liegt<\/td><\/tr><tr><td><code># <\/code>(Raute)<\/td><td>N-tes Vorkommen eines Wochentags im Monat<\/td><td>2#3 = dritter Dienstag des Monats<\/td><\/tr><tr><td><code>? <\/code>(Fragezeichen)<\/td><td>Kein spezifischer Wert; verwendet in Tagesfeldern<\/td><td>? im Tag des Monats = jeder Tag<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Kurze Notiz: L, W, # und ? werden nicht von jeder Cron-Implementierung unterst\u00fctzt. Der Standard-Linux-Crontab (Vixie-Cron) erkennt sie nicht. Du findest sie in Quartz-basierten Schedulern und einigen erweiterten Cron-Varianten. Bleib bei <code>*<\/code>, Kommas, Bindestrichen und Schr\u00e4gstrichen, wenn du eine portable Syntax m\u00f6chtest.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-wichtige-crontab-befehle\">Wichtige Crontab-Befehle<\/h2>\n\n\n\n<p>Du ben\u00f6tigst nur vier Crontab-Befehle. Das ist alles. Hier sind sie:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><code>crontab -e<\/code><\/strong> \u00f6ffnet deine Crontab-Datei zur Bearbeitung. Wenn du noch keine hast, wird eine neue Datei erstellt. Beim ersten Mal wirst du gefragt, welchen Texteditor du bevorzugst.<\/li>\n\n\n\n<li><strong><code>crontab -l<\/code><\/strong> listet alle deine aktuellen Crontab-Eintr\u00e4ge auf. Verwende es, um den tats\u00e4chlichen Ausf\u00fchrungsplan zu \u00fcberpr\u00fcfen, denn Raten f\u00fchrt um 3\u202fUhr morgens zu Fehlern.<\/li>\n\n\n\n<li><strong><code>crontab -r<\/code><\/strong> l\u00f6scht deine gesamte Crontab-Datei. Nicht einen einzelnen Eintrag. Die gesamte Datei. Endg\u00fcltig weg. Keine Best\u00e4tigungsaufforderung.<\/li>\n\n\n\n<li><strong><code>crontab -ri<\/code><\/strong> macht dasselbe wie -r, fragt aber zuerst. Verwende diesen Befehl. Immer.<\/li>\n<\/ul>\n\n\n\n<p>Das deckt 99\u202f% dessen ab, was du tun wirst. Bearbeiten, auflisten und gelegentlich l\u00f6schen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-verwendung-von-crontab-anhand-von-beispielen\">Verwendung von Crontab anhand von Beispielen<\/h2>\n\n\n\n<p>So weit die Theorie. Jetzt erstellen wir echte Crontab-Eintr\u00e4ge. \u00d6ffne deine Crontab-Datei:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>crontab -e<\/code><\/pre>\n\n\n\n<p>Wenn du es zum ersten Mal \u00f6ffnest, wirst du von deinem System aufgefordert, einen Editor auszuw\u00e4hlen. W\u00e4hle Nano, wenn du es so einfach wie m\u00f6glich haben willst. Du landest in einer Textdatei, in der jede neue Zeile zu einem neuen Cron-Job wird.<\/p>\n\n\n\n<p>Beachte Folgendes: Crontab verwendet die aktuelle Zeitzone deines Systems. Wenn dein Server auf UTC eingestellt ist und du f\u00fcr &#8222;9 Uhr&#8220; planst, ist das 9 Uhr UTC, nicht deine lokale Zeit. \u00dcberpr\u00fcfe es mit <strong>timedatectl<\/strong>, wenn du unsicher sind.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-plane-einen-cron-job-zu-einem-bestimmten-zeitpunkt\">Plane einen Cron-Job zu einem bestimmten Zeitpunkt<\/h3>\n\n\n\n<p>Angenommen, du m\u00f6chtest am 10. Juni um 8:30 Uhr ein Shell-Skript ausf\u00fchren. Hier ist der Eintrag:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>30 08 10 06 * \/home\/user\/superbackup.sh<\/code><\/pre>\n\n\n\n<p>Minute 30, Stunde 08, Tag 10, Monat 06, beliebiger Wochentag. Ganz einfach. Das Sternchen im Feld &#8222;Tag der Woche&#8220; bedeutet &#8222;an jedem Tag&#8220;.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-crontab-eintrage-mit-crontab-l-anzeigen\">Crontab-Eintr\u00e4ge mit crontab -l anzeigen<\/h3>\n\n\n\n<p>M\u00f6chtest du sehen, was bereits geplant ist? F\u00fchre aus:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>crontab -l<\/code><\/pre>\n\n\n\n<p>Dadurch wird jede Zeile in deiner Crontab-Datei an das Terminal ausgegeben. Wenn die Ausgabe leer ist, hast du keine Cron-Jobs. Ganz einfach.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-crontab-eintrage-bearbeiten\">Crontab-Eintr\u00e4ge bearbeiten<\/h3>\n\n\n\n<p>Musst du einen Zeitplan \u00e4ndern oder einen Pfad korrigieren? Derselbe Befehl, mit dem du es erstellt hast:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>crontab -e<\/code><\/pre>\n\n\n\n<p>Suche die Zeile, bearbeite sie, speichere ab und beende. Der Cron-Daemon \u00fcbernimmt \u00c4nderungen automatisch. Ein Neustart ist nicht erforderlich.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-einen-cron-job-jede-minute-ausfuhren\">Einen Cron-Job jede Minute ausf\u00fchren<\/h3>\n\n\n\n<p>F\u00fcnf Sternchen, dann dein Befehl. Das ist das Muster f\u00fcr den Minutentakt:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>* * * * * \/home\/user\/systemhealthcheck.sh<\/code><\/pre>\n\n\n\n<p>Dies wird einmal pro Minute, jede Minute, jede Stunde, jeden Tag ausgel\u00f6st. Verwende es zur \u00dcberwachung von Skripten oder zur schnellen Abfrage. Verwende es nicht f\u00fcr ressourcenlastige Aufgaben, sonst wird dein Server dich hassen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-einen-taglichen-cron-job-planen\">Einen t\u00e4glichen Cron-Job planen<\/h3>\n\n\n\n<p>Der <code>@daily<\/code> Shortcut f\u00fchrt einen Befehl einmal pro Tag um Mitternacht (00:00) aus:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>@daily \/home\/user\/systemcleanup.sh<\/code><\/pre>\n\n\n\n<p>Es ist sauberer, als <code>0 0 * * *<\/code> zu schreiben und bedeutet dasselbe. Es gibt auch <strong><code>@weekly<\/code><\/strong> (Sonntag um Mitternacht), <strong><code>@hourly<\/code><\/strong> (Minute 0 jeder Stunde), und <strong><code>@annually<\/code><\/strong> (1. Januar um Mitternacht).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-plane-einen-cron-job-fur-einen-zeitraum\">Plane einen Cron-Job f\u00fcr einen Zeitraum<\/h3>\n\n\n\n<p>Ben\u00f6tigst du ein Skript, das nur w\u00e4hrend der Gesch\u00e4ftszeiten ausgef\u00fchrt werden soll? Verwende im Stundenfeld einen Bindestrich:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>00 08-17 * * * \/home\/user\/sync.sh<\/code><\/pre>\n\n\n\n<p>Dies l\u00e4uft zu jeder vollen Stunde von 8 bis 17 Uhr, jeden Tag. Nur am Wochenende? F\u00fcge einen Wochentagsbereich hinzu:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>00 08-17 * * 6-0 \/home\/user\/sync.sh<\/code><\/pre>\n\n\n\n<p>Jetzt wird es nur von Samstag (<code>6<\/code>) bis Sonntag (<code>0<\/code>) ausgef\u00fchrt.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-monatliche-und-jahrliche-cron-zeitplane\">Monatliche und j\u00e4hrliche Cron-Zeitpl\u00e4ne<\/h3>\n\n\n\n<p>Die <strong> <strong><code>@monthly<\/code><\/strong><\/strong> Verkn\u00fcpfung f\u00fchrt einen Job um Mitternacht am 1. eines jeden Monats aus:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>@monthly \/home\/user\/monthlyreport.sh<\/code><\/pre>\n\n\n\n<p>Entspricht <code>0 0 1 * *<\/code>. Und <strong><code>@yearly<\/code><\/strong> (oder <code>@annually<\/code>) wird am 1. Januar um Mitternacht ausgef\u00fchrt. Gut geeignet f\u00fcr Zertifikatsverl\u00e4ngerungen, j\u00e4hrliche Protokollarchive oder alles, was du genau einmal im Jahr ben\u00f6tigst.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-fuhre-mehrmals-taglich-einen-cron-job-aus\">F\u00fchre mehrmals t\u00e4glich einen Cron-Job aus<\/h3>\n\n\n\n<p>Mit durch Kommas getrennten Werten kannst du mehrere bestimmte Zeiten festlegen. F\u00fcnfmal am Tag um 12 Uhr, 15 Uhr, 17 Uhr, 19 Uhr und 21 Uhr:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>0 12,15,17,19,21 * * * \/home\/user\/report.sh<\/code><\/pre>\n\n\n\n<p>Jeder Wert im Stundenfeld ist ein separater Trigger. Das Minutenfeld ist 0, sodass es zu Beginn jeder dieser Stunden ausgef\u00fchrt wird.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-fuhre-einen-befehl-nach-dem-systemneustart-aus\">F\u00fchre einen Befehl nach dem Systemneustart aus<\/h3>\n\n\n\n<p>Die <strong><strong><code>@reboot<\/code><\/strong><\/strong> Direktive f\u00fchrt einen Befehl einmalig sofort nach dem Systemstart aus:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>@reboot \/home\/user\/startservices.sh<\/code><\/pre>\n\n\n\n<p>Perfekt zum Starten von Hintergrund-Daemons, zum erneuten Einrichten von SSH-Tunneln oder zum Starten von \u00dcberwachungsagenten, die keine systemd-Dienstdateien haben. Es wird nur beim Booten ausgef\u00fchrt, nicht beim Neustart des Cron-Daemons.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-speicherort-der-crontab-datei-unter-linux\">Speicherort der Crontab-Datei unter Linux<\/h3>\n\n\n\n<p>Wo sich die eigentlichen Crontab-Dateien auf der Festplatte befinden, h\u00e4ngt von deinem Betriebssystem ab:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Debian\/Ubuntu<\/strong> &#8211; <code>\/var\/spool\/cron\/crontabs\/<\/code><\/li>\n\n\n\n<li><strong>Red Hat\/CentOS\/Fedora<\/strong> &#8211; <code>\/var\/spool\/cron\/<\/code><\/li>\n\n\n\n<li><strong>macOS<\/strong> &#8211; <code>\/var\/at\/tabs\/<\/code><\/li>\n<\/ul>\n\n\n\n<p>Du kannst sie dir direkt ansehen, aber wenn du sie von Hand bearbeitest, umgehst du die Syntax\u00fcberpr\u00fcfung von Cron. Bleibe bei <code>crontab -e<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-zusatzliche-crontab-konfiguration\">Zus\u00e4tzliche Crontab-Konfiguration<\/h2>\n\n\n\n<p>Die Grundlagen decken die meisten Anwendungsf\u00e4lle ab. Aber wenn deine Cron-Jobs zahlreicher werden, ben\u00f6tigst du Protokollierung, E-Mail-Kontrolle und eine ordnungsgem\u00e4\u00dfe Umgebungseinrichtung.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-erstelle-eine-crontab-protokolldatei\">Erstelle eine Crontab-Protokolldatei<\/h3>\n\n\n\n<p>Standardm\u00e4\u00dfig geht die Ausgabe des Cron-Jobs verloren, sofern du sie nicht erfasst. Leite stdout und stderr in eine Protokolldatei um:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>* * * * * \/home\/user\/script.sh &gt;&gt; \/var\/log\/cronjob.log 2&gt;&amp;1<\/code><\/pre>\n\n\n\n<p>Die <code>>><\/code> h\u00e4ngt an, anstatt zu \u00fcberschreiben, sodass du eine fortlaufende Historie beh\u00e4ltst. Die <code>2>&amp;1<\/code> sendet Fehlermeldungen in dieselbe Datei wie die Standardausgabe. Ohne dies kann dein Skript wochenlang stillschweigend ausfallen und du erf\u00e4hrst es erst, wenn etwas nachgelagertes kaputtgeht.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-crontab-e-mail-benachrichtigungen-deaktivieren\">Crontab-E-Mail-Benachrichtigungen deaktivieren<\/h3>\n\n\n\n<p>Cron sendet f\u00fcr jeden Job, der eine Ausgabe erzeugt, eine E-Mail an den Benutzer. Auf einem ausgelasteten System ist das eine Menge lokaler E-Mails, die niemand liest. Unterdr\u00fccke es, indem du Folgendes hinzuf\u00fcgst:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;\/dev\/null 2&gt;&amp;1<\/code><\/pre>\n\n\n\n<p>F\u00fcge dies am Ende jeder Cron-Job-Zeile hinzu. Es sendet sowohl stdout als auch stderr an \/dev\/null. Stelle einfach sicher, dass du die Protokollierung tats\u00e4chlich separat eingerichtet hast, sonst fliegst du blind.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-crontab-umgebungsvariablen\">Crontab-Umgebungsvariablen<\/h3>\n\n\n\n<p>Cron l\u00e4dt dein Shell-Profil nicht. Das bedeutet, dass deine PATH-, SHELL- und anderen Umgebungsvariablen standardm\u00e4\u00dfig nur minimal gesetzt sind. Definiere sie oben in deiner Crontab-Datei:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>PATH<\/strong> &#8211; sagt Cron, wo es ausf\u00fchrbare Dateien findet. Standardm\u00e4\u00dfig ist es normalerweise nur <code>\/usr\/bin:\/bin<\/code>, weshalb <code>\/usr\/local\/bin<\/code>-Skripte unerwartet fehlschlagen.<\/li>\n\n\n\n<li><strong>SHELL<\/strong> &#8211; legt fest, welche Shell Cron verwendet. Standardm\u00e4\u00dfig <code>\/bin\/sh<\/code> und nicht bash. Wenn deine Skripte Bash-Funktionen verwenden, setze dies auf <code>\/bin\/bash<\/code>.<\/li>\n\n\n\n<li><strong>LOGNAME<\/strong> &#8211; der Benutzername, der den Crontab besitzt. Stammt von <code>\/etc\/passwd<\/code>.<\/li>\n\n\n\n<li><strong>HOME<\/strong> &#8211; das Home-Verzeichnis des Crontab-Eigent\u00fcmers. Ebenfalls von <code>\/etc\/passwd<\/code>.<\/li>\n<\/ul>\n\n\n\n<p>Lege sie wie jede Shell-Variable oben in deiner Crontab fest, vor deinen Jobeintr\u00e4gen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SHELL=\/bin\/bash\nPATH=\/usr\/local\/bin:\/usr\/bin:\/bin<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>* * * * * \/home\/user\/script.sh<\/code><\/pre>\n\n\n\n<p>Das ist der mit Abstand h\u00e4ufigste Grund, warum Cron-Jobs interaktiv funktionieren, aber fehlschlagen, wenn sie geplant sind. \u00dcberpr\u00fcfe zuerst deinen PATH. Immer.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Du hast ein Backup-Skript. Es funktioniert, wenn du es von Hand ausf\u00fchrst. Jetzt soll es jede Nacht um 2 Uhr morgens laufen, ohne dass du das Terminal betreuen musst. Hier kommt Cron ins Spiel, und die richtige Crontab-Syntax macht den Unterschied zwischen einem Skript aus, das planm\u00e4\u00dfig ausgef\u00fchrt wird, und einem Skript, das stillschweigend nichts [&hellip;]<\/p>\n","protected":false},"author":44,"featured_media":28618,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1399],"tags":[1443],"ppma_author":[3402],"class_list":["post-29567","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials","tag-linux-de"],"uagb_featured_image_src":{"full":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_guide-linux-crontab-syntax_DE.webp",1200,630,false],"thumbnail":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_guide-linux-crontab-syntax_DE-150x150.webp",150,150,true],"medium":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_guide-linux-crontab-syntax_DE-600x315.webp",600,315,true],"medium_large":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_guide-linux-crontab-syntax_DE-768x403.webp",768,403,true],"large":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_guide-linux-crontab-syntax_DE.webp",1200,630,false],"1536x1536":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_guide-linux-crontab-syntax_DE.webp",1200,630,false],"2048x2048":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_guide-linux-crontab-syntax_DE.webp",1200,630,false]},"uagb_author_info":{"display_name":"Milan Ivanovic","author_link":"https:\/\/contabo.com\/blog\/de\/author\/milan\/"},"uagb_comment_info":0,"uagb_excerpt":"Du hast ein Backup-Skript. Es funktioniert, wenn du es von Hand ausf\u00fchrst. Jetzt soll es jede Nacht um 2 Uhr morgens laufen, ohne dass du das Terminal betreuen musst. Hier kommt Cron ins Spiel, und die richtige Crontab-Syntax macht den Unterschied zwischen einem Skript aus, das planm\u00e4\u00dfig ausgef\u00fchrt wird, und einem Skript, das stillschweigend nichts&hellip;","authors":[{"term_id":3402,"user_id":0,"is_guest":1,"slug":"contabro","display_name":"ContaBro","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/posts\/29567","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/users\/44"}],"replies":[{"embeddable":true,"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/comments?post=29567"}],"version-history":[{"count":10,"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/posts\/29567\/revisions"}],"predecessor-version":[{"id":29649,"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/posts\/29567\/revisions\/29649"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/media\/28618"}],"wp:attachment":[{"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/media?parent=29567"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/categories?post=29567"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/tags?post=29567"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/ppma_author?post=29567"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}