HI.
Habe auf unserem SBS2008 ein Python script, was täglich um 00:30 ausgeführt wird.
Dieses checkt unseren FTP auf Änderungen und schreibt, falls änderungen vorhanden sind, diese in ein logfile mit zeitstempel.
Führe ich das script direkt aus, kann ich mögliche änderungen mit zeitstempel in einem logfile finden.
wenn ich das script aber im aufgabenplaner starten lassen, checkt das script zwar den ftp (sehe den zugriff), aber es schreibt nichts in das logfile.
auch wenn ich die aufgabe händisch im aufgabenplaner anwerfe, wird das script korrekt ausgeführt, aber wiederum nichts in das logfile geschrieben.
jemand ne idee woran das liegen kann?
danke
Python Script in der Aufgabenplanung von SmallBusinessServer
-
- User
- Beiträge: 276
- Registriert: Freitag 8. Juni 2007, 08:50
- Wohnort: 84xxx Bereich
- Kontaktdaten:
-
- User
- Beiträge: 276
- Registriert: Freitag 8. Juni 2007, 08:50
- Wohnort: 84xxx Bereich
- Kontaktdaten:
Code: Alles auswählen
FILE = open(filename,"a")
Code: Alles auswählen
FILE.writelines(str("Änderung am: ") + str(actual_time) + str("\t") + str(i))
Code: Alles auswählen
FILE.writelines("Änderung am: " + str(actual_time) + str("\t") + "Es wurden keine Änderungen gemacht.")
Code: Alles auswählen
FILE.writelines("\n")
FILE.close()
-
- User
- Beiträge: 276
- Registriert: Freitag 8. Juni 2007, 08:50
- Wohnort: 84xxx Bereich
- Kontaktdaten:
hab das script in ne exe konvertiert, damit ich auf dem server kein python installieren muss.
die exe führe ich mit lokalen admin rechten aus und der pfad ist relativ angegeben.
die exe führe ich mit lokalen admin rechten aus und der pfad ist relativ angegeben.
Versuch mal einen absoluten Pfad ('c:\\testlog.txt')The Spirit hat geschrieben:die exe führe ich mit lokalen admin rechten aus und der pfad ist relativ angegeben.
Ich hatte auf einem 2003-Server einmal das Problem, dass die Verknüpfung auf das Programm das Arbeitsverzeichnis zerreißt. Ich bin mir nicht sichr welches der Task-Sheduler heutzutage verwendet.
-
- User
- Beiträge: 276
- Registriert: Freitag 8. Juni 2007, 08:50
- Wohnort: 84xxx Bereich
- Kontaktdaten:
fehler gefunden.
möglicherweise war es der absolute pfad, aber das wollte ich eigentlich nciht ändern.
hab jetzt gesagt, das das ausführungsziel der ordner meines programms ist, und voila, er schreibt auch in das logfile, welches im gleichen ordner liegt.
möglicherweise war es der absolute pfad, aber das wollte ich eigentlich nciht ändern.
hab jetzt gesagt, das das ausführungsziel der ordner meines programms ist, und voila, er schreibt auch in das logfile, welches im gleichen ordner liegt.
@The Spirit: Diese ganzen `str()`-Aufrufe sehen mir nicht nach Python aus. Und Namen in komplett Grossbuchstaben sind eigentlich für Konstanten vorgesehen.
Last but not least: `writelines()` erwartet ein iteriertbares Objekt und schreibt jedes Element davon per `write()` in die Datei. Und Zeichenketten sind iteriertbar -- sie liefern jedes Zeichen einzeln. Besonders effizient ist das so nicht.
Last but not least: `writelines()` erwartet ein iteriertbares Objekt und schreibt jedes Element davon per `write()` in die Datei. Und Zeichenketten sind iteriertbar -- sie liefern jedes Zeichen einzeln. Besonders effizient ist das so nicht.
-
- User
- Beiträge: 276
- Registriert: Freitag 8. Juni 2007, 08:50
- Wohnort: 84xxx Bereich
- Kontaktdaten:
danke für die hinweise.
dann werd ich das mal überarbeiten.
edit:
wie würdest du das dann mit dem write in das logfile machen?
dann werd ich das mal überarbeiten.
edit:
wie würdest du das dann mit dem write in das logfile machen?
Code: Alles auswählen
FILE.writelines(str("Änderung am: ") + str(actual_time) + str("\t") + str(i))
Code: Alles auswählen
FILE.write("Änderung am: %s \t %i" % (actual_time, i))
Ungetestet...
Edit: dein String-Zeugs ist aber auch unübersichtlich
-
- User
- Beiträge: 276
- Registriert: Freitag 8. Juni 2007, 08:50
- Wohnort: 84xxx Bereich
- Kontaktdaten:
des war auch schnell zusammengeschubst.
ich hab das aktuell draus gemacht:
zusatz:
das mit den writelines hab ich auch genommen, weil mir das object FILE oder jetzt logfile (ist das gleiche, hab hier nur die variable getauscht) nur writelines direkt in eclipse angeboten hat
ich hab das aktuell draus gemacht:
Code: Alles auswählen
logfile.writelines("Änderung am: " + str(actual_time) + "\t" + str(i))
das mit den writelines hab ich auch genommen, weil mir das object FILE oder jetzt logfile (ist das gleiche, hab hier nur die variable getauscht) nur writelines direkt in eclipse angeboten hat
-
- User
- Beiträge: 276
- Registriert: Freitag 8. Juni 2007, 08:50
- Wohnort: 84xxx Bereich
- Kontaktdaten:
jo tu ich.
hab es jetzt auch gesehen.
könnte aber schwören, das das vorher nicht da war.
danke für den hinweis.
hab es jetzt auch gesehen.
könnte aber schwören, das das vorher nicht da war.
danke für den hinweis.
-
- User
- Beiträge: 276
- Registriert: Freitag 8. Juni 2007, 08:50
- Wohnort: 84xxx Bereich
- Kontaktdaten:
war nicht als ignorieren gedacht.
aber hatte zwischenzeitlich schon mal aus einfach schon mal gemacht.
aber den tip hab ich natürlich schon umgesetzt.
aber hatte zwischenzeitlich schon mal aus
Code: Alles auswählen
str("blabla")
Code: Alles auswählen
("blabla")
aber den tip hab ich natürlich schon umgesetzt.