Sie müssen auch installieren, cygrunsrv
damit Sie cron als Windows-Dienst einrichten und dann ausführen können cron-config
.
Wenn Sie möchten, dass die Cron-Jobs E-Mails mit Ausgaben senden, müssen Sie entweder exim
oder ssmtp
(vor dem Ausführen cron-config
) installieren .
Siehe /usr/share/doc/Cygwin/cron-*.README
für weitere Details.
Bei Programmen ohne .exe
Erweiterung handelt es sich wahrscheinlich um Shell-Skripte. Wenn Sie sich die erste Zeile der Datei ansehen, können Sie sehen, mit welchem Programm Sie sie ausführen müssen (z. B. " #!/bin/sh
"), sodass Sie sie möglicherweise über den Windows-Scheduler ausführen können, indem Sie das Shell-Programm aufrufen (z C:\cygwin\bin\sh.exe -l /my/cygwin/path/to/prog
. B. " "). )
can't switch user context
, obwohl die explizite Aufforderung gestellt wurde, KEINE anderen Konten zu verwenden. Das Wechseln des Kontos mit cron auf cygwin ist anscheinend obligatorisch. Sie müssen NEIN sagen, um als Sie selbst zu laufen ...cronevents
Befehl, um die Ereignisse anzuzeigen (aus dem Windows Evengs-Protokoll). Sie werden nie weggeworfen, ich würde die Protokolle alle paar Monate beschneiden.Sie haben zwei Möglichkeiten:
Installieren Sie cron als Windows-Dienst mit cygrunsrv:
Bei den 'non .exe'-Dateien handelt es sich wahrscheinlich um Bash-Skripte. Sie können sie also über den Windows-Scheduler ausführen, indem Sie Bash aufrufen, um das Skript auszuführen, z.
quelle
Hutspitze http://linux.subogero.com/894/cron-on-cygwin/
Starten Sie das Cygwin-Setup und fügen Sie das Paket "cron" aus der Kategorie "Admin" hinzu.
Wir werden cron as a Service vom Benutzer SYSTEM ausführen. Das schlechte SYSTEM benötigt daher ein Home-Verzeichnis und eine Shell. Die Datei "/ etc / passwd" definiert sie.
Der Start des Dienstes:
Lokale Benutzer können jetzt ihre geplanten Aufgaben wie folgt definieren (crontab startet Ihren bevorzugten Editor):
Domänenbenutzer : Es funktioniert nicht. Poor cron kann keine geplanten Aufgaben für Domänenbenutzer auf dem Computer ausführen. Es gibt aber noch einen anderen Weg: cron führt auch Dinge aus, die in der cron-Tabelle auf Systemebene in „/ etc / crontab“ enthalten sind. Fügen Sie dort Ihr Suff ein, damit SYSTEM es in eigenem Namen erledigt:
Zum Schluss noch ein paar Worte zu Crontab-Einträgen. Dies sind entweder Umgebungseinstellungen oder geplante Befehle. Wie oben gezeigt, ist es auf Cygwin am besten, einen verwendbaren Pfad zu erstellen. Home-Verzeichnis und Shell werden normalerweise aus "/ etc / passwd" übernommen.
Informationen zu den Spalten der geplanten Befehle finden Sie auf der Handbuchseite.
Wenn bestimmte Crontab-Einträge nicht ausgeführt werden, ist dies das beste Diagnosetool:
quelle
Ich wollte nur hinzufügen, dass sich die Optionen für Cron geändert haben. Müssen -n statt -D übergeben.
quelle
Wendete die Anweisungen aus dieser Antwort an und es funktionierte Nur um auf eine Antwort wie beim Kopieren und Einfügen hinzuweisen (da das Cygwin-Installationsverfahren in Bezug auf das Kopieren und Einfügen implementiert ist).
Klicken Sie auf die WinLogo-Schaltfläche, geben Sie cmd.exe ein, klicken Sie mit der rechten Maustaste darauf und wählen Sie " Als Administrator starten ". In der cmd- Eingabeaufforderung:
Stellen Sie sicher, dass das Installationsprogramm keine Fehler in der Eingabeaufforderung auslöst ... Wenn dies der Fall ist, werden wahrscheinlich einige Cygwin-Binärdateien ausgeführt oder Sie sind kein Windows-Administrator oder ein verrückter Fehler ...
Jetzt in cmd promt:
oder welchen vollständigen Dateipfad Sie auch immer zur Datei cygrunsrv.exe haben und den Cron als Windows-Dienst in der Eingabeaufforderung cmd starten möchten
Führen Sie jetzt im Bash- Terminal crontab -e aus
Richten Sie Ihren Cron-Eintrag ein Beispiel ein:
quelle
Ich habe herausgefunden, wie der Cygwin-Cron-Dienst automatisch ausgeführt wird, wenn ich mich bei Windows 7 anmelde. Folgendes hat bei mir funktioniert:
Erstellen Sie
C:\cygwin\bin\Cygwin_launch_crontab_service_input.txt
mit Notepad eine Datei mit Inhaltenno
in der ersten undyes
zweiten Zeile (ohne Anführungszeichen). Dies sind Ihre beiden Antworten auf Eingabeaufforderungencron-config
.Datei
C:\cygwin\Cygwin_launch_crontab_service.bat
mit Inhalt erstellen :Fügen Sie im Windows-Startordner eine Verknüpfung zu Folgendem hinzu:
Cygwin_launch_crontab_service.bat
Siehe http://www.sevenforums.com/tutorials/1401-startup-programs-change.html Sie Hilfe zum Hinzufügen zum Startup. Übrigens können Sie diese optional im Startup hinzufügen, wenn Sie möchten:
Cygwin
XWin Server
Der erste wird ausgeführt
und der zweite wird ausgeführt
quelle
Die korrekte Syntax zum Installieren von cron in cygwin als Windows-Dienst besteht darin, -n als Argument und nicht -D zu übergeben :
cygrunsrv --install cron --path / usr / sbin / cron --args -n
-D gibt beim Starten von cron in cygwin einen Verwendungsfehler zurück:
$
$ cygrunsrv --install cron --path / usr / sbin / cron --args -D
$ cygrunsrv - Cron starten
cygrunsrv: Fehler beim Starten eines Dienstes: QueryServiceStatus: Win32-Fehler 1062:
Der Dienst wurde nicht gestartet.
$ cat /var/log/cron.log
cron: unbekannte Option - D.
Verwendung: / usr / sbin / cron [-n] [-x [ext, sch, proc, parc, load, misc, test, bit]]
$
Die folgende Seite enthält eine gute Erklärung.
Installieren und Konfigurieren des Cygwin Cron-Dienstes unter Windows: https://www.davidjnice.com/cygwin_cron_service.html
PS Ich musste Cygwin64 Terminal als Administrator auf meinem Windows 10-PC ausführen, um cron als Windows-Dienst zu installieren .
quelle
quelle