J'essaie de planifier l'exécution d'un script bash avec Bash sous Ubuntu sous Windows sous Windows 10. Chaque fois que j'écris le cron, le message d'erreur suivant s'affiche dans le terminal:
crontab: installing new crontab
/var/spool/cron/: mkstemp: Permission denied
crontab: edits left in /tmp/crontab.4q0z3i/crontab
Voici à quoi ressemble l'entrée crontab:
# m h dom mon dow command
27 10 * * * /home/admin/test.sh > /home/admin/logs/test.log 2>&1
Qu'est-ce qui se passe exactement ici?
Vous devez vous ajouter au groupe crontab.
usermod -a -G crontab (username)
Une fois que vous avez fait cela, vous devez également vous assurer que cron est en cours d'exécution. Généralement, cela commence par start cron
; toutefois, upstart ne fonctionne pas sur WSL d'après ce que je peux dire, mais Sudo cron
fait le travail.
Un inconvénient à cela est qu'une fois que vous fermez toutes les fenêtres bash, cron cessera de fonctionner même si votre ordinateur est en cours d'exécution. Cependant, tant que vous avez une fenêtre bash ouverte et que cron est en cours d'exécution, les performances sont satisfaisantes.
Il y a une solution de contournement mentionnée sur le bogue github pour celui-ci, ne semble pas pouvoir le trouver maintenant!
Sudo crontab -u $USER -e
essayez de mettre cette commande powershell dans une tâche Windows et de voir ce qui se passe
bash -c "rsync -acAXvc --delete --numeric-ids /mnt/d/no_movies/* rsync://10.66.6.66/danielle_no_movies"
bash -c "commande" signifie exécuter cette commande en utilisant le sous-système linux bash Shell
la commande est "rsync --rsync_switches/mnt/windows_drive_letter/rép_source/* rsync: // rsync_daemon_address/rsync_module"
je viens de l'avoir et je suis toujours en train de tester, donc je ne peux pas promettre que cela fonctionnera réellement.
je l'exécute depuis une fenêtre Powershell sans privilèges d'administrateur pour le moment et il indique qu'il "envoie la liste de fichiers incrémentielle". le gestionnaire de tâches indique qu'il existe un processus rsync qui exécute beaucoup de choses avec le lecteur d:
WSL ne prend actuellement pas en charge les processus en arrière-plan.
On dirait que votre crontab a les permissions setgid comme ceci,-rwxr-sr-x 1 root crontab 39024 May 5 2016 /usr/bin/crontab
vous devriez faire Sudo chown <username> /usr/bin/crontab
alors Sudo chmod g+s /usr/bin/crontab
Vous devriez être root pour faire tout cela.
Il semble que cela devrait démarrer Crontab une fois avec tmux et le laisser vivre même si vous fermez votre session bash (voir ici ). Je n'ai pas encore essayé (mais je vais bientôt).