Cron est un spammeur, comment puis-je l'arrêter?

17

Donc, je suis d' être coincé avec un spammeur très particulier: cron.

Chaque jour, je reçois l'e-mail suivant:

/etc/cron.daily/apt:
FATAL -> Failed to fork.

Quelle serait la cause de cette erreur? Mon /etc/cron.daily/aptest le même qui vient avec l'installation par défaut, donc c'est évidemment autre chose.

Je ne suis pas préoccupé par l'envoi cron de mails (car cela me donne beaucoup de problèmes / données utiles). Je veux juste résoudre le problème actuel.

Kaz Wolfe
la source
24
Xkcd obligatoire.
Olivier Grégoire
4
@ OlivierGrégoire J'ai cliqué sur cette question juste parce que je veux voir le XKCD obligatoire
juste le

Réponses:

33

Le système exécute-t-il une ouf de mémoire?

Vous pouvez jeter un coup d'œil /var/log/syslogpour voir si vous recevez des OOMmessages (Out Of Memory) pendant l'heure de la journée pendant l' /etc/cron.daily/aptexécution.

/etc/cron.daily/apt est exécuté à 06:25, mais il y a un sommeil aléatoire dans le script apt, il peut donc y avoir jusqu'à 1800 secondes plus tard

La commande free -msera également en mesure de vous dire combien de mémoire libre vous avez et vmstat 5pourra vous montrer si vous avez beaucoup d'échanges ou de mouvements de mémoire en cours.

Si tel est le cas, vous pourriez envisager d'ajouter plus de swap , d'ajouter plus de mémoire ou de trouver si vous avez des processus inutiles en cours d'exécution qui prennent toute votre mémoire. (Un redémarrage en cas de fuite mémoire)

Exécutez apt manuellement?

Avez-vous essayé d'exécuter /etc/cron.daily/aptmanuellement pour voir si vous pouvez plus d'avertissements / erreurs?

Si vous utilisez Ubuntu 14.04 LTS, vous trouverez un appel à un random_sleepsous-programme sur line 425. Ajoutez un #sur cette ligne pour ne pas le faire dormir avant une course.

Sur Ubuntu 12.04 LTS, c'est le cas line 423. Ubuntu 16.04 LTS ne devrait pas avoir ce fichier pour autant que je puisse voir.

Exécutez en /etc/cron.daily/apttant que root comme ceci:

root@hostname:~# /etc/cron.daily/apt

Ou avec sudocomme ça:

username@hostname:~$ sudo /etc/cron.daily/apt

Il peut y avoir des erreurs intéressantes pour vous indiquer la bonne direction, ou essayez de chercher dans le /var/log/syslogfichier quelque chose de suspect.

Jorgen
la source
Vous pouvez obtenir encore plus d'informations en exécutant le script avec trace sur:sudo sh -x /etc/cron.daily/apt
arielf