Cron unter Windows mit AT
In einem anderen Artikel habe ich allen Linux-Nutzern bereits gezeigt, wie sie mit der Crontab-Datei Aufgaben planen und automatisiert ausführen lassen können.
Hinweis: Windows hält ebenfalls eine entsprechende Lösung bereit, die als Cron-Ableger und -Alternative für Windows-Nutzer herhalten kann. Hierfür empfehlen wir schtasks. Auf dieser Seite findet ihr einen archivierten Artikel zu AT, der früheren gängigen Cron-Variante unter Windows.
AT Job einrichten
Das Kommando um einen neuen Job einzurichten sieht so aus:
AT 00:00 /every:M,T,W,Th,F "cmd /c copy /Q c:\mydata\*.* e:\backups\mydata" > c:\log\cron_log.txt
Damit legen wir einen AT-Job an, der um 00:00 Uhr ausgeführt werden soll. Mit every können wir die Tage festlegen.
Dabei gibt es zwei Möglichkeiten für den every-Parameter. Entweder gibst Du durch Kommata getrennt all die Tage des Monats an, an denen der Job aktiv werden soll. 1,4,12,22,28 hieße dann, dass die Aufgabe am 1., 4., 12., 22. und 28. Tag eines jeden Monats ausgeführt wird.
Alternativ kannst Du auch die Wochentage angeben:
- M für Monday/Montag
- T für Tuesday/Dienstag
- W für Wednesday/Mittwoch
- Th für Thursday/Donnerstag
- F für Friday/Freitag
- S für Saturday/Samstag
- Su für Sunday/Sonntag
Diese Angaben sollte ebenfalls durch Kommata getrennt werden, wie es ganz oben getan wurde. Dort führen wir den Job von montags bis freitags täglich aus.
Entscheidend ist natürlich der Befehl. Soll eine Datei ausgeführt werden, so kann diese einfach so inklusive des entsprechendes Pfads angegeben werden. Bei einem Konsolen-Befehl sollte dieser am besten in Anführungszeichen gesetzt werden. Außerdem muss ein cmd vor dem Befehl stehen.
Der letzte Teil ist optional und im eigentlichen Sinne nicht Teil von AT. Damit können wir die Konsolen-Ausgabe in eine Datei weiterleiten. So würde die letzte Ausgabe immer jeweils in der Datei
c:\log\cron_log.txt
gespeichert werden.
AT via Remote-Verbindung
Besonders leicht können unter Windows auch Remote-Computer dazu animiert werden, einen Befehl auszuführen. Voraussetzung dafür ist natürlich, dass man sich mit diese Computer verbinden kann beziehungsweise verbunden hat. Dann ist einfach nur ein weiterer Parameter direkt hinter AT notwendig:
AT \\192.51.62.8 09:30 /every:M,W,F cleanup.js
Mit diesem Befehl wird auf dem Remote-Computer mit der IP 192.51.62.8 Montag, Mittwoch und Freitag die Datei cleanup.js ausgeführt.
AT Tasks verwalten
Hilfreich ist ebenfalls zu wissen, wie die AT-Jobs unter Windows verwaltet werden können. Auch dafür gibt es einen Befehl, entweder mit oder ohne Angabe des Remote-Computers. Im einfachsten Fall sieht das so aus:
AT
Nach dieser Eingabe werden die auszuführenden AT-Jobs in der Konsole angezeigt. Mit Hilfe der entsprechenden Status ID können separat Informationen für jede Aufgabe angefordert werden:
AT 2
oder mit einem Remote-Computer:
AT 2 \\192.51.62.8
Ein /delete dahinter lässt AT den Task löschen:
AT 2 /delete
beziehungsweise:
AT 2 \\192.51.62.8 /delete
Wie Du siehst, kann die Cron-Alternative AT unter Windows zwar nicht all das, was Linux' Cron kann, aber immerhin können mit AT Jobs täglich oder nur an einzelnen Wochentagen ausgeführt werden. Auch der Zugriff auf Remote-Computer ist mit diesem Tool leicht gemacht. Für Windows-Nutzer ist AT folglich in jedem Fall ein interessantes und hilfreiches Tool als Alternative zu Cron(jobs).