Python Skript ausführen

  • Hallo werte Netcup user,

    Ich mache meine ersten Schritte im erstellen einer website, bin mit netcup überfordert und hoffe auf eure hilfe :)

    Ich muss Daten von Github abrufen und diese auf meinem webspace speichern. Aktuell mache ich das mit einem python script von meinem desktop aus manuell.
    Ich muss diesen Vorgang nun automatisieren und habe ausgeforscht, dass mir bei netcup/plesk nur das erstellen eines scheduled tasks möglich ist.

    Nachdem ich hier nun ein paar Stunden gekämpft habe ein einfaches Testfile ablaufen zu lassen, muss ich einsehen, dass ich keine Ahnung habe was ich tue.

    Ich habe ein webhosting 4000 Paket und ich habe im WCP unter der entsprechenden Domain Python aktiviert.

    pasted-from-clipboard.png
    Dann ist mir schonmal unklar welche Einstellungen ich hier vornehmen muss:

    pasted-from-clipboard.png


    Trotzdem habe ich mal versucht eine Datei zum Laufen zu bringen:
    pasted-from-clipboard.png

    Ich habe die unterschiedlichsten Konstellationen an Eingaben versucht aber bekomme nur Fehlermeldungen.

    Ohne das Wort python am Anfang bekomme ich folgende Meldung:

    Zitat

    import: Kommando nicht gefunden.
    from: Kommando nicht gefunden
    data: Kommando nicht gefunden.
    Syntaxfehler beim unerwarteten Symbol »(«


    Das file wird offensichtlich nicht als python file erkannt, aber es wird gefunden.
    Schreibe ich python oder python3 am Anfang bekomme ich immer nur "Kommando nicht gefunden".

    Mir ist auch gar nicht klar, wo genau ich das Python skript überhaupt ablegen muss.

    Ich wäre für jeden Tipp Dankbar wie ich solch einen scheduled task zum Laufen bekomme. Sollte jemand eine andere Idee für mich haben wie ich meine Daten von Github bekommen kann ich freue mich über jeden Hinweis.

    Ich werde hier nun sicher öfters meine Fragen reinstellen, also Hallo an alle!

    Sollte jemand testen wollen hier noch ein Testcode.


    Beste Grüße Gerhard

  • Hallo Olivetti und danke für deine Nachricht.


    Leider scheitere ich aber auch am SSH login und kann die von dir vorgeschlagenen Befehle nicht ausführen.

    Sowohl mit Windows cmd als auch mit puTTY bekomme ich immer nur "access denied" also mache ich offenbar etwas falsch.

    Benutzername und IP habe ich den Einstellungen entnommen, ein passwort habe ich hier festgelegt und dann die Einstellungen gespeichert.
    Was mache ich falsch?


    pasted-from-clipboard.png

  • evtl. hat dein passwort »seltsame zeichen«, die für putty nicht passen.

    (bei windows kann ich i.d.R. leider nicht helfen)


    evtl. schaut hier noch jemand vorbei, der ebenfalls ein webhosting mit python hat.

  • Spannend, dass du "schon" 3.9.2 hast, mein Webhosting liegt noch bei 3.7.3 rum. Aktuell wäre 3.12.2.


    Im Webhosting kannst du Python nicht einfach so direkt auf der Konsole ausführen. Daher die Fehlermeldungen "Kommando nicht gefunden".


    Für mit der "Brust durchs Auge" gibt gibt es da eine Anleitung:

    WSGI Python mit Phusion Passenger auf Webhosting 8000 - WCP (Webhosting Control Panel) - netcup Kundenforum


    Statt passenger müsstest du vermutlich auf ein bash script verweisen, dass die virtuelle Umgebung aufstartet und dann das Python Script ausführt.

  • Ein kleiner Erfolg, das einloggen hab ich geschafft, das Passwort muss man offensichtlich selbst eingeben, es lässt sich nicht vom Zwischenspeicher einfügen.

    @Oivetti:
    Das klappt leider nicht

    pasted-from-clipboard.png


    jensohne:
    Danke, ich werde mal mein Glück versuchen.

    Wäre es für mein Vorhaben generell schlauer einfach eine Server zu mieten?
    Dass ich den scheduled task nur auf stündlich oder täglich setzen kann gefällt mir sowieso nicht wirklich.

  • Dass ich den scheduled task nur auf stündlich oder täglich setzen kann gefällt mir sowieso nicht wirklich.

    Du bist hier wesentlich flexibler, wenn du links auf Cron-Stil umstellst. Dann lassen sich sehr individuellere und vor allem kürzere Intervalle einstellen:

    pasted-from-clipboard.png

    Und falls die Crontab-Syntax bisher unbekannt ist, hier ein kleiner Helfer: https://crontab.guru/


    Wäre es für mein Vorhaben generell schlauer einfach eine Server zu mieten?

    Kommt halt auch ganz darauf an, wie sehr du dich mit der Wartung und Absicherung eines Linuxservers auskennst. Das ist alles andere als trivial und benötigt neben Fachwissen auch eine Menge Zeit. Würde ich nur machen, wenn du genau weißt was du tust. :)

  • Ich muss Daten von Github abrufen und diese auf meinem webspace speichern. Aktuell mache ich das mit einem python script von meinem desktop aus manuell.
    Ich muss diesen Vorgang nun automatisieren und habe ausgeforscht, dass mir bei netcup/plesk nur das erstellen eines scheduled tasks möglich ist.

    Ich habe ein webhosting 4000 Paket (...)

    Ich komme nochmal auf die ursprüngliche Anforderung zu sprechen, weil ich denke, dass der Rest mit dem python Skript einfach nicht nötig ist.
    Das Webhosting 4000 hat git Support und man kann einfach ein Remote Repository automatisch auf seinem Webhost bereitstellen lassen.

    Möglichkeit 1) Plesk Modul Git verwenden

    forum.netcup.de/system/attachment/12650/

    Aktiviere einfach das Git Modul und konfiguriere das GitHub Repo von dem abgeholt werden kann.
    Über "Zusätzliche Bereitstellungsaktionen aktivieren" kann man auch weitere Befehle Zeile für Zeile in "Bereitstellungsaktionen" definieren.

    Wenn das ein öffentliches git Repository ist und Du die Webhook URL dort nicht eintragen kannst, damit Plesk bei einem push aufs Repo benachrichtigt werden kann, finden wir sicher mit dem Cronjob eine saubere Möglichkeit.



    Die Beschreibung des Plesk Obsidian Git Moduls:
    Verwenden von Git-Remote-Hosting | Plesk Obsidian documentation

    Ein Kunde hat das 2018 schon mal mit einem in Plesk Onyx zu konfigurierendem Webhook geschafft und das geht auch weiterhin.

    https://forum.netcup.de/netcup…bereitstellung/#post98475

    Möglichkeit 2) mit dem Cronjob und einfach git in einem bash Skript
    git Version 2.20.1 ist bei mir auf der SSH Konsole im Webhosting verfügbar. (/usr/bin/git)
    Warum nicht einfach das nehmen und einmal das Repo direkt einmalig clonen und dann z.B. per cron im Scheduler regelmäßig pullen, wenn Dir das reicht. Dafür braucht man kein python und kann auch so ein Bash Skript oder noch einfacher den Befehl zum pullen direkt aufrufen.

    git pull https://github.com/BENUTZERNAME/REPO.git /beispiel.de/httpdocs/

    Ich lasse mal ChatGPT den Vortritt, weil es schon so spät ist:
    Prompt: Schreibe mir ein bash Script, dass per git Befehl Dateien von GitHub abholt und unter /beispiel.de/httpdocs/ bereitstellt.

    clone-repo.sh

    Ersetze BENUTZERNAME/REPO durch den tatsächlichen Benutzernamen und den Repository-Namen auf GitHub. Das Skript prüft zuerst, ob das Zielverzeichnis bereits ein Git-Repository ist. Wenn ja, wird git pull ausgeführt, um das Repository zu aktualisieren. Andernfalls wird git clone verwendet, um das Repository zu klonen. Wenn das Update oder das Klonen erfolgreich ist, wird eine entsprechende Meldung ausgegeben, andernfalls wird eine Fehlermeldung angezeigt.


    Möglichkeit 3) mit dem Cronjob und curl / tar

    curl zum Downloaden und tar zum Entpacken des tarballs sind ebenfalls vorhanden und so können auch direkt tarballs von GitHub heruntergeladen und entpackt werden, wenn man das .git Verzeichnis und git selbst gar nicht verwenden möchte.

    curl -LkSs https://api.github.com/repos/BENUTZERNAME/REPO/tarball | tar xz --strip-components=1

    WH8000 SE 🥚 20 | WH1000 SE OST22 | WH1000 SE OST23 | WH1000 SE OST24 | WH 🥚🧶🥛🐖 | 🦆 VPS 200 🇺🇦🕊️

    Gefällt mir 3 Ente gut, alles gut 1
  • Wenn du noch Lust hast, könntest du noch Bescheid geben, ob es tatsächlich default kein Python-binary, aus der shell erreichbar gibt.

    Na klar habe ich Lust ... also weder auf dem Webhosting 8000 noch der EiWoMiSau gibt es ein python Binary und which python sagt nichts aus.
    Auf ein Webhosting 4000 habe ich keinen Zugriff und netcup schickt mir vermutlich vor Ende der Osteraktion keine Tutorial Gutschein mehr, damit ich das mal ausprobieren könnte ;(

    Disclaimer: Ich habe mir aber auch nicht mit der "Brust durchs Auge" geschossen, wie im verlinkten Beitrag mit einer Mini Anaconda:

    WSGI Python mit Phusion Passenger auf Webhosting 8000 - WCP (Webhosting Control Panel) - netcup Kundenforum

    WH8000 SE 🥚 20 | WH1000 SE OST22 | WH1000 SE OST23 | WH1000 SE OST24 | WH 🥚🧶🥛🐖 | 🦆 VPS 200 🇺🇦🕊️

    Einmal editiert, zuletzt von Copro () aus folgendem Grund: Schlangenbeschwörer

    Gefällt mir 1 Ente gut, alles gut 1
  • Na klar habe ich Lust ... also weder auf dem Webhosting 8000 noch der EiWoMiSau gibt es ein python Binary und which python sagt nichts aus.

    Großen Dank. :*


    Auf ein Webhosting 4000 habe ich keinen Zugriff

    Wenn ein WH8000 schon kein nutzbares cli-python hat, wird's das auf dem 4000er sicher auch nicht geben.


    Disclaimer: Ich habe mir aber auch nicht mit der "Brust durchs Auge" geschossen, wie im verlinkten Beitrag mit einer Mini Anaconda

    Genau richtig. Ich wollte ja wissen, ob' von Haus aus geht oder nicht und finde Letzteres schon ein bißchen seltsam.

    Aber vermutlich ist dafür zuwenig Bedarf vorhanden.