2017-12-31 70 views
0

Ich bin sehr neu Cron-Jobs und die Linux-Umgebung im Allgemeinen zu erstellen, so entschuldige mich im Voraus, wenn die Fragen zu einfach klingen. Ich werde versuchen, mein Problem so klar wie möglich zu präsentieren. Also hier geht es,Cron Job erfolgreich läuft, aber es passiert nichts

Ich habe eine einfache E-Mail (Senden an mich) Skript mit Python (3.5.2 Version) erstellt und ich möchte dieses Skript, um alle 2 Minuten mit der Cron-Job-Planung zu planen. Ich bin die Anmeldung in einen Remote-Linux-Server mit SSH, wo mein Python-Skript gespeichert ist. Das Skript läuft einwandfrei, wenn ich es manuell über das Linux-Terminal ausführe. Wenn ich versuche, einen cron-Job Zeitplan für dieses Skript zu planen, ist meine Vermutung, dass das Skript ausgeführt wird, weil ich läuft in den Protokollen sehen

sudo grep CRON /var/log/syslog 

mit Was ich in den Protokollen sehen, ist so etwas wie dieses

Dec 30 19:38:01 abc-abcStation CRON[18707]: (abc) CMD (/home/abc/anuj/TPA/Test_Cron.py) 

in einem Intervall von 2 Minuten

Aber der Lauf tut, ist nicht das, was es tun soll (E-Mail), die es funktioniert, wenn ich es manuell ausführen. Meine Cron-Job sieht wie folgt aus

*/2 * * * * /home/abc/anuj/TPA/Test_Cron.py 

Die E-Mail zu senden Skript ist Test_Cron.py, die wie dieses

import smtplib 

server = smtplib.SMTP('smtp.office365.com', 587) 
server.starttls() 
server.login("[email protected]", "mypassword") 

msg = "TEST MESSAGE!" 
server.sendmail("[email protected]", "[email protected]", msg) 
server.quit() 

sieht ich ziemlich viel für diese Art eines Problems gesucht und gefunden ähnliche Fälle zu mir selbst, versuchte alle vorgeschlagenen Lösungen, aber ich vermisse immer noch etwas.

Meine Vermutung ist, dass dies etwas mit der Einstellung, den richtigen Weg zu tun hat. Ich habe versucht, den Weg über meine crontab Erklärung abgeben, so etwas wie

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 
*/2 * * * * /home/abc/anuj/TPA/Test_Cron.py 

Auch versucht,

SHELL=/bin/sh 
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 
*/2 * * * * /home/abc/anuj/TPA/Test_Cron.py 

und

*/2 * * * * cd /home/abc/anuj/TPA/ && Test_Cron.py 

aber keinen Erfolg. Jede Hilfe wird sehr geschätzt.

Danke!

+0

Ich bin mir nicht sicher, ob es helfen wird, aber Sie haben '#/usr/bin/env python' oben in Ihrer 'Test_Cron.py' Datei hinzugefügt (damit Linux weiß, dass es ausgeführt werden muss) mit Python) und ihm Ausführungsberechtigungen gegeben? (Nur für die Prüfung, tun 'chmod a + x/home/abc/anuj/TPA/Test_Cron.py' auf einem Terminal ...) Entweder das, oder Ihr' crontab' Eintrag ändern '*/2 * * * * python/home/abc/anuj/TPA/Test_Cron.py' (die 'python' sehen? In diesem Eintrag ist das "Programm"laufen' python' die 'Test_Cron.py' zu laufen versuchen) – BorrajaX

+0

Stack-Überlauf ist eine Website für Programmier- und Entwicklungsfragen. Diese Frage scheint off-topic zu sein, weil es nicht um Programmierung oder Entwicklung geht. Siehe [Welche Themen kann ich hier fragen?] (Http://stackoverflow.com/help/on-topic) in der Hilfe. Vielleicht [Super User] (http://superuser.com/) oder [Unix & Linux Stack Exchange] (http://unix.stackexchange.com/) wäre ein besserer Ort, um zu fragen. – jww

+0

@BorrajaX, danke für die Antwort, dein Vorschlag */2 * * * * Python /home/abc/anuj/TPA/Test_Cron.py arbeitete für die Datei Test_Cron.py, jedoch als ich versuchte, dasselbe für ein anderes Python-Skript zu tun im selben Ordner hat es nicht funktioniert.So habe ich zwei Python-Skripte im selben Ordner Test_Cron.py und abc.py, abc.py funktioniert gut, wenn sie auch unabhängig voneinander ausgeführt werden. Ich bin mir nicht sicher, ob ich etwas verpasse. –

Antwort

-1

Warum nicht versuchen, „source ~/.bash_profile“ über Ihre crontab-Anweisung hinzufügen, um die Differenz zwischen dem crontab Skript und Ihre manuell ausführen zu reduzieren?

+0

Ich habe versucht, aber meine crontab doesnt nicht ausführen, wenn ich das tue, gibt es mir eine Fehlermeldung "/tmp/contab.ljDVOB/contab":23: schlechte Minute Fehler in Crontab-Datei, kann nicht installieren" –