Anzeige:
Ergebnis 1 bis 9 von 9

Thema: Cronjob kann ImageMagick nicht ausführen

  1. #1
    Registrierter Benutzer
    Registriert seit
    Jul 2002
    Beiträge
    95

    Cronjob kann ImageMagick nicht ausführen

    Hallo!

    Ich habe folgenden Cronjob mit "crontab -e" eingerichtet.

    52 12 * * * /usr/bin/convert -colorspace RGB -density 300x300 -quality 100 /srv/www/htdocs/Test/1217_HP_28.pdf /srv/www/htdocs/Test/1217_HP_28.jpg >> /home/meinuser/scripts/log/Test.log

    Um 12:52 wurde die Logdatei /home/meinuser/scripts/log/Test.log angelegt. Die ist aber leer. Das Bild /srv/www/htdocs/Test/1217_HP_28.jpg wurde aber nicht generiert.
    Wenn ich den Befehl als gleicher User per Hand ausführe:
    /usr/bin/convert -colorspace RGB -density 300x300 -quality 100 /srv/www/htdocs/Test/1217_HP_28.pdf /srv/www/htdocs/Test/1217_HP_28.jpg >> /home/meinuser/scripts/log/Test.log
    wird das Bild /srv/www/htdocs/Test/1217_HP_28.jpg generiert.

    Warum kann der Cronjob ImageMagick nicht ausführen?
    Ich kann ansonsten alles andere per Cronjob ausführen. Egal ob Shellscript oder auch PHP-Script. Nur alles was mit ImageMagick zu tun hat geht nicht.
    Noch mal als Hinweis: Ich will aus einem PDF ein JPG machen.

    OS ist SUSE Linux Enterprise Server 10 SP2 (x86_64)
    Das Leben ist zu kurz um es mit Windows zu versauen.

  2. #2
    Registrierter Benutzer Avatar von derRichard
    Registriert seit
    Nov 2001
    Beiträge
    5.069
    hi!

    hat cron die rechte dazu?
    was steht in den logs?

    hth,
    //richard
    There are two factions of CS, the ones that hate computers, and the ones that hate science.

  3. #3
    Registrierter Benutzer
    Registriert seit
    Jul 2002
    Beiträge
    95
    Zitat Zitat von derRichard Beitrag anzeigen
    hi!

    hat cron die rechte dazu?
    was steht in den logs?

    hth,
    //richard
    Hallo! Das war natürlich auch mein erster Gedanke. Sowohl das IM Programm convert als auch die zu bearbeitenden PDF's und der Ordner in dem das PDF liegt haben 777 Rechte. Außerdem wurde der Cronjob mit dem User angelegt, mit dem man den Befehl auch ausführen kann.
    Ich bin der Meinung, dass der Cronjob die gleichen Rechte hat wie derjenige, der ihn mit "crontab -e" angelegt hat. Die Logdateien werden zwar angelegt, sind aber leer.
    Könnte es denn sein, dass ein Cronjob spezielle Rechte hat, die vom Besitzer abweichen? Wenn ja, wie kann man das prüfen bzw. ändern?

    Gruß auto01
    Das Leben ist zu kurz um es mit Windows zu versauen.

  4. #4
    Registrierter Benutzer
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    22.062
    die Umgebung von cron ist eine andere wie die des Users - da könnte eine Ursache drin liegen - ich weiß leider nicht, was convert alles macht, wenn es darum geht, ein PDF zu erstellen (z.B. Aufrufe von ext. Programmen über $PATH, ...)

    Du kannst ja mal versuchen, die Cron-Umgebung möglichst exakt der Login-Umgebung anzupassen (set, env entsprechend im Script einstellen, ...)

    Poste trotz allem aber mal die betreffenden Rechte, evtl. kann man den Loglevel noch hochdrehen und auch stderr / stdout ded. abfangen und umleiten - evtl. gibt's auch eine Mail von Cron an den User oder einen Eintrag im Systemlog?
    Ich bin root - ich darf das.

  5. #5
    Registrierter Benutzer
    Registriert seit
    Jul 2002
    Beiträge
    95
    Zitat Zitat von marce Beitrag anzeigen
    die Umgebung von cron ist eine andere wie die des Users - da könnte eine Ursache drin liegen - ich weiß leider nicht, was convert alles macht, wenn es darum geht, ein PDF zu erstellen (z.B. Aufrufe von ext. Programmen über $PATH, ...)

    Du kannst ja mal versuchen, die Cron-Umgebung möglichst exakt der Login-Umgebung anzupassen (set, env entsprechend im Script einstellen, ...)

    Poste trotz allem aber mal die betreffenden Rechte, evtl. kann man den Loglevel noch hochdrehen und auch stderr / stdout ded. abfangen und umleiten - evtl. gibt's auch eine Mail von Cron an den User oder einen Eintrag im Systemlog?
    Also als erstes, er soll aus einem PDF ein JPG machen. Dazu führt ImageMagick/Convert Ghostscript (gs) aus. Das war auch meine Vermutung, dass "gs" nicht im "$PATH" für den Cron drin steht.


    Zitat Zitat von marce Beitrag anzeigen
    (set, env entsprechend im Script einstellen, ...)
    Wie macht man das?
    Ich könnte mir vorstellen den Pfad zu "gs" per Script zu $PATH hinzuzufügen, beim Cron-durchlauf.
    Das Leben ist zu kurz um es mit Windows zu versauen.

  6. #6
    Registrierter Benutzer
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    22.062
    Du kannst den PATH in der Crontab setzen - alternativ ein Wrapper-Script schreiben, welches die Umgebung passend bereit stellt.

    Was sagt denn ein
    Code:
    which gs
    an der Konsole bei Dir?
    Ich bin root - ich darf das.

  7. #7
    Registrierter Benutzer
    Registriert seit
    Jul 2002
    Beiträge
    95
    Zitat Zitat von marce Beitrag anzeigen
    Du kannst den PATH in der Crontab setzen - alternativ ein Wrapper-Script schreiben, welches die Umgebung passend bereit stellt.
    OK, danke. Ersteres weiß ich sofort, wie das geht. Letzteres muss ich erst mal herausfinden.
    Das Leben ist zu kurz um es mit Windows zu versauen.

  8. #8
    Registrierter Benutzer
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    22.062
    Zitat Zitat von auto01 Beitrag anzeigen
    OK, danke. Ersteres weiß ich sofort, wie das geht. Letzteres muss ich erst mal herausfinden.
    ???

    crontab:
    Code:
    0 * * * * * /pfad/zum/wrapper.sh
    (ich hoffe, ich habe mich bei den Sternchen nicht verzählt :-)

    wrapper.sh:
    Code:
    #!/bin/bash
    PATH=
    SONSTIGE_ENV=
    NOCH_EINE_ENV=
    
    /usr/bin/convert ...
    Hört sich also hochtrabender an ("wrapper-Script") als es im Endeffekt ist.

    "Vorteil" dabei ist, daß Du die Variablen für jeden Cronjob ded. festlegen kannst. Die Crontab-Variante geht auch, ist aber dann für alle Crons gültig, das kann manchmal nicht erwünscht sein...

    Als Nebeneffekt ist man mit der Wrapper-Variante meist kompatibler, nicht jeder Cron-Daemon erlaubt alles bzw. die Syntax unterscheidet sich teils. Und das Script tut auch an der Shell auf jeden Fall, egal wie kastriert die ist...
    Ich bin root - ich darf das.

  9. #9
    Registrierter Benutzer
    Registriert seit
    Jul 2002
    Beiträge
    95

    Jetzt geht es

    Dadurch das jetzt im Cronjob ein Shellscript aufgerufen wird, welches den "PATH" setzt funktioniert es jetzt.

    Vielen Dank für die Hilfe!
    Das Leben ist zu kurz um es mit Windows zu versauen.

Ähnliche Themen

  1. Fehler beim Ausführen von Cronjob
    Von SchusterHannes im Forum Linux als Server
    Antworten: 7
    Letzter Beitrag: 10.11.08, 05:29
  2. Cronjob ausführen
    Von ApeArt im Forum Linux Allgemein
    Antworten: 2
    Letzter Beitrag: 29.07.05, 16:48
  3. useradd mit cronjob ausführen
    Von firestar im Forum Linux Allgemein
    Antworten: 1
    Letzter Beitrag: 04.02.05, 17:45
  4. Php-Dateien mit Cronjob ausführen?
    Von TheNose im Forum Linux Allgemein
    Antworten: 14
    Letzter Beitrag: 27.03.04, 10:03
  5. Cronjob ausführen lassen mit Webmin???
    Von Maruu im Forum Linux Allgemein
    Antworten: 3
    Letzter Beitrag: 08.09.02, 18:31

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •