J'ai créé 3 tâches cron quotidiennes à exécuter.
Voici les trois qui sont placés dans etc / cron.daily
rkhunter.sh
#!/bin/sh
(
rkhunter --versioncheck
rkhunter --update
rkhunter --cronjob --report-warnings-only
) | mail -s 'rkhunter Daily Run (my server)' [email protected]
chkrootkit.sh
#!/bin/bash
chkrootkit | mail -s "chkrootkit Daily Run (my server)" [email protected]
logwatch.sh
#!/bin/sh
(
logwatch
) | mail -s 'logwatch Daily Log (my server)' [email protected]
J'ai remplacé [email protected] ofcourse par mon email.
Si je lance ce cronjob manuellement, cela fonctionne bien ./nameoffile.sh
Mais cela ne fonctionne pas tous les jours, quelle peut être la cause ou comment puis-je vérifier cela?
command-line
email
cron
rkhunter
détonation supersonique
la source
la source
Réponses:
Il existe deux suspects possibles qui empêchent généralement l'
cron
exécution des travaux.Le premier est les problèmes d'autorisations, c'est-à-dire qu'un utilisateur peut exécuter le script / la commande mais le démon cron ne peut pas car le travail se trouve dans les mauvais travaux cron de l'utilisateur. Par exemple, l'utilisateur crée un script ou exécute une commande avec des privilèges élevés, c'est-à-dire en utilisant
sudo
, puis ajoute le script / la commande testé à sa liste de tâches cron (crontab
). Le résultat est que le travail cron de l'utilisateur ne pourra pas s'exécuter car il a besoin de privilèges élevés.crontab -e
sudo crontab -e
La deuxième raison est les chemins, pour être sûr que le script s'exécutera, l'utilisateur doit ajouter le chemin complet au script à exécuter dans crontab. Une autre solution serait d'étendre la variable PATH des utilisateurs root en plaçant la ligne suivante en haut de leur fichier crontab:
comme le wiki communautaire le mentionne .
Vous voudrez peut-être lire le wiki de la communauté sur cron car il fournit plus de détails sur ce qui précède.
la source
Selon cette réponse, le problème réside dans l'extension .sh. Supprimez cela (par exemple, renommez votre fichier de rkhunter.sh en rkhunter.
Pour confirmer, exécutez la commande suivante
run-parts --test /etc/cron.daily
Si votre script (rkhunter) est inclus dans les résultats, tout va bien. Pour plus d'informations sur la commande run-parts, lisez ses pages de manuel
man run-parts
la source
man run-parts
"les noms doivent être entièrement composés de lettres majuscules et minuscules ASCII, de chiffres ASCII, de traits de soulignement ASCII et de traits d'union ASCII"Dans mon système, c'était parce que anacron n'était pas installé.
Installez donc anacron ou supprimez le test -x / usr / sbin / anacron
la source
dpkg --get-selections | grep cron
.. <swears>anacron
n'est pas nécessaire; l'||
opérateur des commandes crontab s'exécuterun-parts
quand anacron n'est PAS installé. Une foisanacron
installé, il rend ces commandes quotidiennes / hebdomadaires / mensuellesrun-parts
redondantes.Je pense que les fichiers avec des extensions sont ignorés.
courir:
Si vous ne voyez pas vos scripts répertoriés, supprimez les extensions .sh et réessayez.
la source
Ajout à la réponse de Stef, vous devez également vous assurer qu'ils ont le bit exécutable:
Vous devriez pouvoir les exécuter en utilisant
chmod +x filename
.la source
Renommez votre fichier pour ne pas avoir l'extension .sh
Pour vérifier que c'est bien le problème, essayez
vous verrez qu'il n'est pas répertorié. Alors lancez:
et réessayez. Il devrait être répertorié.
la source
Je ne pouvais pas le faire fonctionner avec anacron, j'ai retiré anacron
/etc/crontab
et exécutéapt remove --purge anacron
et cela fonctionne tout de suite.Je ne comprends pas pourquoi nous avons besoin de deux planificateurs.
la source
Même situation aujourd'hui ici
J'ai fait
et trouvé
J'ai découvert que quelqu'un (moi !!!!) a ajouté une ligne commençant par
et évidemment la 38ème heure n'existe pas!
la source