Voici ce que j'ai fait sur Debian Jessie:
- installer cron via
apt-get install cron
- mettre un
backup_crontab
fichier dans/etc/cron.d/
Cependant, la tâche n'est jamais en cours d'exécution.
Voici quelques sorties:
/# crontab -l
no crontab for root
/# cd /etc/cron.d && ls
backup_crontab
/etc/cron.d# cat backup_crontab
0,15,30,45 * * * * /backup.sh >/dev/null 2>&1
Y a-t-il quelque chose à faire pour activer un crontab particulier, ou pour activer le "service" cron en lui-même?
ls /etc/cron.d
équivaut àcd /etc/cron.d && ls
en termes de sortie. La seule différence est que le répertoire de travail ne changera pas.Réponses:
Les fichiers
/etc/cron.d
doivent également répertorier l' utilisateur sous lequel le travail doit être exécuté.c'est à dire
Vous devez également vous assurer que les autorisations et le propriétaire: groupe sont définis correctement (
-rw-r--r--
et appartiennent àroot:root
)la source
crontab -l
rapports sur les entrées cron dans/var/spool/cron/crontabs/
- c'est- à -dire les crontabs par utilisateur ./etc/cron.d
les fichiers sont des crontabs système et ne sont pas signalés parcrontab -l
.root
le fichier - jecrontab -l
ne l'ai tout simplement pas mentionné, car vous avez expliqué pourquoi - merci pour votre aideetc/cron.d
un fichier avec un point au milieu du nom et le travail n'a jamais été exécuté jusqu'à ce que je le renommeUne autre chose que j'ai observée est que le fichier
/etc/cron.d
ne peut pas avoir d'extension. Dans mon cas particulier, j'avais un lien symbolique:La restriction du nom de fichier est documentée sur la page de manuel de la partie d'exécution: http://manpages.ubuntu.com/manpages/xenial/man8/run-parts.8.html , on peut passer une option --regex pour remplacer le format de fichier.
Le comportement cron par défaut est cependant resté sans extensions, voir les commentaires sous: https://bugs.launchpad.net/ubuntu/+source/debianutils/+bug/38022
la source
Je pense que vous manquez probablement une ligne vierge nécessaire à la fin de votre fichier cron. J'ai eu le même problème, mais après avoir vérifié tout ce qui est répertorié ici (autorisations utilisateur, nom de fichier, version cron, etc.), je me suis rendu compte que je n'avais pas de saut de ligne après la dernière entrée de mon
/etc/cron.d/own_cron
et que le fichier entier était ignoré.la source
Si vous êtes le seul utilisateur sur cet ordinateur, vous pouvez utiliser uniquement
crontab -e
. Vous serez invité à sélectionner un éditeur la première fois que vous exécuterez la commande. Ensuite, vous pouvez y ajouter ceci:Si vous passez à un compte d'utilisateur normal, vous devrez utiliser
sudo crontab -e
pour configurer les scripts que vous souhaitez que l'exécution soit planifiéeroot
.crontab -l
affiche uniquement la crontab actuelle, une fois que vous en avez configuré une à l'aide decrontab -e
. Si vous avez un fichier cron dans/etc/cron.d
/, il ne sera pas affiché aveccrontab -l
.Vous devrez également vérifier que votre script est exécutable avec:
chmod +x /backup.sh
.la source
Dockerfile
donc je ne peux pas vraiment le fairecrontab -e
- mais c'est quand même une information utilePour les distributions Cron de * bian (comme Raspbian), vous devez activer le
-l
paramètre du démon Cron. Il est conseillé de le faire en utilisant le/etc/default/cron
fichier de configuration, en activant leEXTRA_OPTS
.la source
-l
option du démon cron autorise un ensemble étendu de noms de fichiers dans le/etc/cron.d
répertoire, donc si le fichier est ignoré en silence car il contient un point, alors "ajouter -l" ou "supprimer le point" corrigera le problème.Vérifiez votre version de
cron
.Il semble que si vous utilisez le crond de Dillon, vous n'avez pas besoin de l'utilisateur dans une
/etc/cron.d
entrée.J'ai compris cela après avoir presque retiré mes cheveux restants.
J'ai une poignée d'entrées qui ont été déposées
/etc/cron.d
par diverses installations. Après une enquête, j'ai découvert que l'un d'entre eux fonctionnait. Il n'avait pas l'utilisateur. J'ai donc sorti l'utilisateur des autres. Et ils ont commencé à travailler.la source