CRON Job

  • Ich will mit einem cronjob wöchentlich backups meiner SQL DBs machen lassen. Dazu habe ich sqldumper eingerichtet, der funktioniert auch. Auch das perl-scribt kann ich ich aufrufen um das backup zu starten.
    Nun habe ich auch einen cronjob angelegt im Webinterface. Leider bekomme ich folgende Fehlermeldung:

    Code
    -: http://sqldumper.xxxxxxxxxxxxxxxxxx.com/msd_cron/crondump.pl?config=mysqldumper: No such file or directory


    hat jemand einen Tipp was ich falsch mache?


    Kopiere ich den link in meinen Browser, funktioniert es.

    Die Zeit ist wie eine verspielte Katze.

    Sie umschmeichelt einen
    und schlabbert den Tag auf wie eine Schale Milch.

    (Henry Ford)

  • Guten Morgen,



    wie legen Sie denn den Cronjob an? Wie es aussieht, probieren Sie als Befehl eine URL auszuführen. Sie müssen schon ein gültiges Programm mit ggf. erforderlichen Parametern angeben (z.B. wget gefolgt von der URL, php gefolgt von dem Script usw...).



    Mit freundlichen Grüßen


    Felix Preuß

  • ist zwar schon ein wenig her, aber das Problem ist wieder aktuell.


    ich habe einen Cronjob angelegt, um automatisch mit sqldumper backups erstellen zu lassen.


    als Befehl habe ich folgendes eingetragen:


    /usr/bin/perl /httpdocs/sqldumper/msd_cron/crondump.pl -config=mysqldumper -html_output=0



    ich bekomme dann eine E-Mail mit folgendem Fehler:


    -: /usr/bin/perl: No such file or directory



    vlt. weiß jemand was ich falsch mache?

    Die Zeit ist wie eine verspielte Katze.

    Sie umschmeichelt einen
    und schlabbert den Tag auf wie eine Schale Milch.

    (Henry Ford)

  • Hallo,


    -: /usr/bin/perl: No such file or directory


    Hab gerade selbst einen CronJob eingerichtet.


    Dafür habe ich ein Shell-Skript geschrieben:


    Code
    ssh account@webhost
    $ mkdir /local
    $ vi /local/script.sh
    #!/bin/bash
    echo "Hello world"
    $ chmod 700 /local/script.sh


    "/local/script.sh" habe ich dann als Befehl des Systembenutzers in der Weboberfläche angegeben. Funktioniert.


    Also laufen die CronJobs anscheinend im chroot-Kontext des Systembenutzers. Nur das, das über ssh geht, geht auch in den Cronjobs. Perl gibt es nicht über ssh:


    Code
    $ ls /bin
    basename  curl	    file    gzip   more       pwd    svn    unix2dos
    bash	  date	    find    head   mv	      rm     tail   unzip
    bzip2	  diff	    ftp     id	   mysql      rmdir  tar    vi
    cat	  dos2unix  git     less   mysqldump  scp    touch  vim
    chmod	  du	    grep    ln	   nano       sed    tr     wget
    convert   env	    groups  ls	   patch      sh     true   zip
    cp	  false     gunzip  mkdir  php	      ssh    uname


    Viele Grüße.

    Produkte bei Netcup: Neues Webhosting (2018) / VPS G7, Debian Bullseye

  • Die Cronjobs des Users müssen ja in der chroot ausgeführt werden, sonst könnte der User ja alle Sicherheitmechanismen der chroot über Cronjobs umgehen.
    Nebenbei bemerkt: Eine chroot ist nicht unbedingt aus Sicherheitsgründen nötig. Es gibt einen Hoster der nutzt keine chroot. Man hat also einen echten User...


    Thomas

  • Es gibt einen Hoster der nutzt keine chroot. Man hat also einen echten User...


    Ich denke ich weiß an welchen Hoster du dabei denkst. Ich kenne aber noch weitere. Aber das gehört wohl eher nicht zu Netcup und noch viel weniger in den WCP-Bereich :-p


    Das fehlende Perl kannst du über ein Routing über den Webserver umgehen. Den das sagt die Fehlermeldung aus: Kein Perl in der Konsole.


    Also einfach einen Request auf deineIP/deinHost / sqldumper/msd_cron/crondump.pl?config=mysqldumper&html_output=0 ausführen. Wobei ich mir gerade unsicher bin, ob man so die Variablen an Perl übergibt :(