Vous devez également installer cygrunsrv
pour pouvoir configurer cron en tant que service Windows, puis exécuter cron-config
.
Si vous souhaitez que les tâches cron envoient un e-mail de n'importe quelle sortie, vous devrez également installer exim
ou ssmtp
(avant de démarrer cron-config
.)
Voir /usr/share/doc/Cygwin/cron-*.README
pour plus de détails.
Concernant les programmes sans .exe
extension, ce sont probablement des scripts shell d'un certain type. Si vous regardez la première ligne du fichier, vous pouvez voir quel programme vous devez utiliser pour les exécuter (par exemple, " #!/bin/sh
"), donc vous pouvez peut-être les exécuter à partir du planificateur Windows en appelant le programme shell (par exemple, " C:\cygwin\bin\sh.exe -l /my/cygwin/path/to/prog
". )
can't switch user context
même si la demande explicite a été faite de ne PAS utiliser d'autres comptes. Le changement de compte avec cron sur cygwin est apparemment OBLIGATOIRE. Vous devez dire NON à courir comme vous-même ...cronevents
commande pour afficher les événements (à partir du journal Windows evengs). Ils ne sont jamais jetés, je tailler les bûches tous les quelques mois.Vous avez deux options:
Installez cron en tant que service Windows, en utilisant cygrunsrv:
Les fichiers 'non .exe' sont probablement des scripts bash, vous pouvez donc les exécuter via le planificateur Windows en appelant bash pour exécuter le script, par exemple:
la source
pointe du chapeau http://linux.subogero.com/894/cron-on-cygwin/
Démarrez cygwin-setup et ajoutez le package «cron» de la catégorie «Admin».
Nous exécuterons cron en tant que service par l'utilisateur SYSTEM. Un mauvais SYSTEM a donc besoin d'un répertoire personnel et d'un shell. Le fichier «/ etc / passwd» les définira.
Le démarrage du service:
Les utilisateurs locaux peuvent désormais définir leurs tâches planifiées comme ceci (crontab lancera votre éditeur préféré):
Utilisateurs du domaine : cela ne fonctionne pas. Un cron médiocre est incapable d'exécuter des tâches planifiées au nom des utilisateurs du domaine sur la machine. Mais il existe un autre moyen: cron exécute également des éléments trouvés dans la table cron au niveau du système dans «/ etc / crontab». Insérez donc votre suffixe ici, afin que SYSTEM le fasse pour son propre compte:
Enfin quelques mots sur les entrées crontab. Ce sont des paramètres d'environnement ou des commandes planifiées. Comme vu ci-dessus, sur Cygwin, il est préférable de créer un PATH utilisable. Le répertoire personnel et le shell sont normalement extraits de «/ etc / passwd».
En ce qui concerne les colonnes des commandes planifiées, voir la page de manuel.
Si certaines entrées crontab ne s'exécutent pas, le meilleur outil de diagnostic est le suivant:
la source
Je voulais juste ajouter que les options de cron semblent avoir changé. Besoin de passer -n plutôt que -D.
la source
Appliqué les instructions de cette réponse et cela a fonctionné Juste pour signaler un autre copier-coller comme réponse (car la procédure d'installation de cygwin est une sorte d'anti-copier-coller implémentée)
Cliquez sur le bouton WinLogo, tapez cmd.exe, faites un clic droit dessus, choisissez " Démarrez en tant qu'administrateur ". Dans l' invite cmd :
Assurez-vous que le programme d'installation ne renvoie aucune erreur dans l'invite ... Si c'est le cas - vous avez probablement des binaires cygwin en cours d'exécution ou vous n'êtes pas un administrateur Windows, ou un bug bizarre ...
Maintenant dans cmd promt:
ou quel que soit le chemin d'accès complet au fichier que vous pourriez avoir vers cygrunsrv.exe et démarrez le cron en tant que service Windows dans l'invite cmd
Maintenant dans le terminal bash , exécutez crontab -e
configurez votre entrée cron un exemple ci-dessous:
la source
J'ai compris comment faire fonctionner automatiquement le service cron Cygwin lorsque je me suis connecté à Windows 7. Voici ce qui a fonctionné pour moi:
À l'aide du Bloc-notes, créez un fichier
C:\cygwin\bin\Cygwin_launch_crontab_service_input.txt
avec du contenuno
sur la première ligne etyes
sur la deuxième ligne (sans les guillemets). Voici vos deux réponses aux invites pourcron-config
.Créer un fichier
C:\cygwin\Cygwin_launch_crontab_service.bat
avec du contenu:Ajoutez un raccourci vers ce qui suit dans le dossier de démarrage de Windows:
Cygwin_launch_crontab_service.bat
Voir http://www.sevenforums.com/tutorials/1401-startup-programs-change.html si vous avez besoin d'aide sur la façon d'ajouter à Startup. BTW, vous pouvez éventuellement les ajouter au démarrage si vous le souhaitez:
Cygwin
Serveur XWin
Le premier s'exécute
et le second exécute
la source
La syntaxe correcte pour installer cron dans cygwin en tant que service Windows est de passer -n comme argument et non -D :
cygrunsrv --install cron --path / usr / sbin / cron --args -n
-D renvoie une erreur d'utilisation lors du démarrage de cron dans cygwin:
$
$ cygrunsrv --install cron --chemin / usr / sbin / cron --args -D
$ cygrunsrv --démarrer cron
cygrunsrv: Erreur lors du démarrage d'un service: QueryServiceStatus: Erreur Win32 1062:
Le service n'a pas été démarré.
$ cat /var/log/cron.log
cron: option inconnue - D
utilisation: / usr / sbin / cron [-n] [-x [ext, sch, proc, parc, load, misc, test, bit]]
$
La page ci-dessous a une bonne explication.
Installation et configuration du service Cygwin Cron sous Windows: https://www.davidjnice.com/cygwin_cron_service.html
PS J'ai dû exécuter Cygwin64 Terminal sur mon PC Windows 10 en tant qu'administrateur afin d'installer cron en tant que service Windows.
la source
la source