Wo wird dieser Cronjob ausgeführt?

Wo wird dieser Cronjob ausgeführt?

Wir haben einen News-Server auf einer CentOS 6.5-Box laufen. Es handelt sich um Leafnode, und alle zwei Minuten läuft ein Cron. Wir beschließen, ihn herunterzufahren, um andere Probleme zu beheben, und kommentieren daher die Zeile in der Crontab aus:

# */2 * * * * /usr/sbin/fetchnews

Aus irgendeinem Grund werden unsere Nachrichtenartikel jedoch immer noch aktualisiert. Daher beschließen wir, die Berechtigungen dieser Binärdatei zu ändern.

chmod 400 /usr/sbin/fetchnews

Dann begannen wir, alle zwei Minuten eine E-Mail zu erhalten: „/usr/sbin/fetchnews: Zugriff verweigert“.

Wir schauen in /etc/cron/hourly nach, eigentlich in allem, was mit crond in /etc zu tun hat. Es befindet sich nicht in der Crontab-Datei von root, es befindet sich nicht in der Crontab-Datei des News-Benutzers und es befindet sich auch nicht in der Crontab-Datei eines anderen Benutzers.

Wie kann ich herausfinden, warum diese Binärdatei ausgeführt wird?

Danke.

Antwort1

Versuchen grep -ri fetchnews /etc/cron* /var/spool/cron/tabs/*.

Gibt es außer der von Ihnen auskommentierten Zeile noch weitere Ergebnisse?

Antwort2

watch "ps -ef | grep fetchnews"

zeigt Ihnen ps -ef | grep fetchnewsalle zwei Sekunden die Ausgabe von an. In der Ausgabe von ps -efist die übergeordnete PID das dritte Feld, in diesem Fall 1458:

ulmi      1462  1458  0 18:20 pts/1    00:00:00 sh -c ps -ef | grep ls

Das ist der Job, der Ihre Fetchnews hervorgebracht hat, und er könnte Ihnen weiterhelfen.

(Meine Kristallkugel sagt mir, dass Sie vielleicht versucht haben, die Crontabs direkt zu bearbeiten? Nur durch Ausführen crontab -ewird cronddie Anzeige der neuen Registerkarte garantiert.)

Antwort3

Vorausgesetzt, es gibt einen Benutzer, dem die News-Dateien gehören, gibt es wahrscheinlich einen Cron-Eintrag in der persönlichen Crontab dieses Benutzers, der dafür zuständig ist. Benutzer-Crons werden hier auf RHEL-Systemen verwaltet:

$ sudo ls -l /var/spool/cron/
total 4
-rw-------. 1 slm slm 9 Oct  6 13:30 slm

Wenn Sie dort Einträge sehen, können Sie sudofolgendermaßen sehen, was in einer bestimmten Datei enthalten ist:

$ sudo crontab -u slm -l
### blah

Sie können die Einträge in dieser Datei einfach auskommentieren und so crontabdie Ausführung deaktivieren. Wenn Ihre Arbeit relativ kurz ist, können Sie den Cron-Dienst auch vorübergehend deaktivieren:

$ sudo service crond stop

verwandte Informationen