Benutzerdefiniertes Skript (nach Image-Installation) wird nicht ausgeführt

  • Hey Commuity,

    Ich habe im Moment echt Ärger mit dem Benutzerdefinierten Skrip. Wenn man im SCP (Medien > Images) ein neues Image installieren möchte, kann man ja bevor man die Installation startet das so genannte "Benutzerdefinierte Skript" angeben, dass dann nach der Installation ausgeführt wird. In meinem Fall wird es das nun leider nicht. In der "custom_script.output" steht dann

    /bin/bash^M: bad interpreter: No such file or directory


    Ich habe etwas recherchiert und es muss laut StackOverflow etwas mit den Line-Endings zu tun haben also \r\n bzw \n. Ich habe hier schon einiges probiert z.B.:

    - alles in Notepad++ zu kopieren und hier von CRLF auf LF umzuschalten und das dann zurück zu kopieren

    - ich habe im Eingabefeld die Line-Endings entfernt und neu gesetzt einmal mit normalem [RETURN] und einmal mit [SHIFT] + [RETURN]

    - aus lauter Verzweiflung habe ich mir sogar mittels Javascript den Inhalt des Eingabefeldes ausgeben lassen. In dem String sind alle Line-Endings als \n dargestellt


    Habt ihr noch eine Idee, wie man hier ein Skript eingibt, mit den richtigen Line-Endings oder bin ich auf dem komplett falschen Pfad?
    Für jeden Schubs in die richtige Richtung wäre ich echt dankbar

  • mcpower: Wird der Inhalt des Scripts via Copy&Paste eingefügt? Dann könnte der verwendete Browser der Schuldige sein, welcher Zeilenenden konvertiert. Sofern ein direktes Hochladen durch Dateiauswahl keine Option ist, würde ich versuchen, temporär einen anderen Browser zu verwenden (ggf. gibt es für den Browser ein Plugin, welches die Kontrolle über Eingabefelder übernehmen kann).

    VServer IOPS Comparison Sheet: https://docs.google.com/spreadsheets/d/1w38zM0Bwbd4VdDCQoi1buo2I-zpwg8e0wVzFGSPh3iE/edit?usp=sharing

    Edited once, last by m_ueberall ().

  • Olivetti das hatte leider auch nur das gleiche Ergebnis: /root/mnt/start.sh: /root/custom_script: /bin/sh^M: bad interpreter: No such file or directory

    m_ueberall ja ich mache tatsächlich copy-paste, da es bissl Tipparbeit ist. Die Ausgabe auf der Dev-Tools Console mittels Javascript sagt, dass alles \n ist. Ich habe aktuell Chrome, probiere nun aber mal den Firefox aus.

  • Soeben mit Firefox 116.0.3 unter Xubuntu getestet, Debian 12 Minimal Image:

    Bash
    #!/bin/sh
    uptime
    echo "test 123" > /testfile.123

    Das waren definitiv \n im lokalen Texteditor. Dennoch erhalte ich dabei diesen Fehler:

    Code: custom_script.output
    /root/mnt/start.sh: line 224: /root/custom_script: cannot execute: required file not found

    Ein manuelles Ausführen führt zum gleichen Fehler:

    Code
    # LANG=C ~/custom_script
    -bash: /root/custom_script: cannot execute: required file not found

    Wundert mich nicht, da es tatsächlich CRLF ist:

    Code
    # file ~/custom_script
    /root/custom_script: POSIX shell script, ASCII text executable, with CRLF line terminators

    mcpower Ich würde sagen das ist eine Sache für den Support. Erstelle im CCP ein Ticket und melde den Bug :)

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

    Edited once, last by KB19 ().

  • KB19 Vielen Dank für deinen Test. Ich werde das mal melden. (so ganz im Nebel meiner Erinnerung hatte ich das mit dem Benutzerdefinierte Skript vor etlicher Zeit mal getestet, damals ging es... soweit ich mich eben erinnere)

  • anco Ich hatte sowas ähnliches mit sed gemacht und dann lässt sich das Skript auch ausführen, das funktioniert nur leider nicht mit der Eingabemaske für die Image-Installation. Denn alles was ich hier eingebe wird ja erst in die Datei custom_script gespeichert, direkt nach dem Setup und ohne, dass ich noch einen Einfluss darauf habe. Diese Datei enthält dann schon die CRLF und kann nicht ausgeführt werden. Erst nachdem der Server final rebootet wurde und ich mich eingeloggt habe, kann ich diese Datei mit dos2unix bearbeiten und danach ausführen.

    Dieses "Benutzerdefinierte Skript" sollte mir jedoch direkt nach der Installation eine gewisse Grundkonfiguration machen... also so war der Plan