J'ai un CentOS 6.6
serveur avec les packages suivants installés:
crontabs-1.10-33.el6.noarch
cronie-1.4.4-12.el6.x86_64
cronie-anacron-1.4.4-12.el6.x86_64
kernel-2.6.32-504.3.3.el6.x86_64
Parfois, l'un des travaux de sauvegarde planifiés pour s'exécuter quotidiennement ne s'exécute tout simplement pas. Le script n'est même pas appelé selon /var/log/cron.log
. Il est intéressant de mentionner que d'autres travaux planifiés pour s'exécuter exactement en même temps s'exécutent sans aucun problème.
Je ne peux pas reproduire le problème et n'ai repéré aucun motif dessus. Si je ne fais rien, le travail s'exécute correctement le lendemain, comme prévu.
crond ignore simplement une seule des multiples tâches qui sont censées s'exécuter à un moment donné. Cela ne se produit que sporadiquement.
J'ai lu dans quelques autres endroits des gens qui parlaient d'ajouter une ligne vide à la fin du crontab
fichier. Le travail qui parfois ne s'exécute pas est en effet à la dernière ligne de mon crontab
dossier. Je n'ai trouvé aucune confirmation qu'il s'agit d'un bug réel ou connu.
# tail -2 /var/spool/cron/postgres
* * * * * OTHERJOB
0 21 * * * /pg_backup.sh
C'est tout ce que j'ai dans mon /var/log/cron.log
Mar 31 21:00:02 SERVERNAME [cron.info] CROND[19394]: (root) CMD (OTHERJOB)
Mar 31 21:00:02 SERVERNAME [cron.info] CROND[19418]: (postgres) CMD (/pg_backup.sh)
Mar 31 21:01:02 SERVERNAME [cron.info] CROND[20062]: (root) CMD (OTHERJOB)
Apr 1 21:00:02 SERVERNAME [cron.info] CROND[31349]: (root) CMD (OTHERJOB)
Apr 1 21:01:01 SERVERNAME [cron.info] CROND[32080]: (root) CMD (OTHERJOB)
Voyez comment OTHERJOB
toujours exécuter pendant que on Apr 1
pg_backup.sh
n'était même pas exécuté.
J'ai déjà essayé de redémarrer crond
mais cela continue. Cela affecte plusieurs serveurs avec la même version du système d'exploitation, du noyau et des cron
RPM.
Il existe une version plus récente de cronie
( 1.4.12
), mais la mettre à niveau n'est pas une option car nous utilisons déjà la dernière version disponible pourCentos 6.6
J'ai parcouru le journal des modifications pour toutes les cronie
versions après le mien ( 1.4.4
) et je n'ai pas trouvé de solution à ce problème particulier. Également vérifié tous les messages de validation .
echo >/dev/null
par exemple)?/var/log/audit/audit.log
.Réponses:
Le cron d'origine exigeait que chaque entrée se termine par une nouvelle ligne, donc oui, parfois, vous avez besoin d'une ligne vierge ou de quelque chose à la fin.
Certaines versions l'ont corrigé ou émettent un avertissement, par exemple Ubuntu Maverik (10.10): crontab regardez la section de diagnostic en bas qui indique qu'un avertissement sera écrit dans syslog.
la source
Ceci est la première réponse qui arrive avec le texte de recherche
cron error getpwname failed
, j'ai donc pensé publier la cause de mon problème:J'utilisais / etc / crontab mais j'avais oublié de mettre l'utilisateur devant la commande.
c'est à dire,
Au lieu de
Cela a donné la même erreur, allez comprendre.
la source
nous utilisons
sssd
pour l'authentification à distance.crond
doit vérifier les utilisateurs disponibles avant d'exécuter les travaux et il le fait toutes les 60 secondes.sssd
la valeur par défautclient_idle_timeout
est de 60 secondes. nous avons donc eu une condition de concurrence entresssd
etcrond
Nous ne sommes arrivés qu'au fond de ce problème car sur la version
1.4.4-14
crond a commencé à être un peu plus bavard sur certaines erreurs.Après la mise à jour vers cette version, nous avons commencé à voir l'erreur ci-dessous en même temps qu'un travail ne s'exécutait pas:
qui nous a amenés à cela: https://bugzilla.redhat.com/show_bug.cgi?id=1209600#c2
et enfin à ceci: https://access.redhat.com/solutions/1125133
La solution suggérée sur le lien ci-dessus était d'ajouter la ligne ci-dessous à
/etc/sssd/sssd.conf
:Le changement ci-dessus a résolu le problème pour nous et cron ne saute plus les travaux.
la source