Führen Sie einen Befehl zu einem bestimmten Zeitpunkt in Cygwin aus

Führen Sie einen Befehl zu einem bestimmten Zeitpunkt in Cygwin aus

Ich schreibe ein Bash-Skript (.sh) für Cygwin. Ich möchte einen bestimmten Befehl zu einer bestimmten Zeit ausführen.

Ich habe Folgendes versucht:

echo "test" | at 19:00

aber ich erhalte die folgende Fehlermeldung:

The AT command has been deprecated. Please use schtasks.exe instead.

Kann ich hierfür also nur die Funktion „Geplante Task“ in Windows verwenden?

Antwort1

Der atBefehl aus Unix ist unter Cygwin nicht verfügbar. Cygwin hat traditionell den atBefehl aus Windows verwendet, dieser wurde jedoch zugunsten von verworfen schtasks.exe.

Die Antwort auf Ihre Frage ist also „Ja“: Sie können „Geplante Tasks“ in Windows nur verwenden, um eine Aufgabe einmal auszuführen.

(Sie können crones verwenden und auf ein bestimmtes Datum zu einer bestimmten Uhrzeit einstellen … es wird jedoch jedes Jahr wiederholt, sofern Sie die Aufgabe nicht aus der Crontab entfernen.) ;-)

Antwort2

Sie können stattdessen einen Cron-Job hinzufügen.

Melden Sie sich als der Benutzer an, von dem Sie das Bash-Skript ausführen möchten.

Befehl ausführen crontab -e.

Angenommen, Sie möchten das Bash-Skript jeden Tag genau um 19:00 Uhr ausführen, dann müssen Sie eine Zeile wie diese hinzufügen:

00 19 * * * /path/to/bash/script

Hinweis: Für dieses Skript muss das Ausführungsbit für diesen Benutzer gesetzt sein.

verwandte Informationen