Rechte bei Scripten - bash: Datei oder Verzeichnis nicht gefunden

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo.

    Nachdem ich einige Beiträge durch habe und keine Idee mehr habe, würde ich gerne hier nachfragen. Ich bin relativer Linuxanfänger und hoffe, mir ist noch zu helfen. :helpnew:

    Generell möchte ich einen Borgcopy Prozess mit crontab starten. Der Prozess soll als root user ausgeführt werden, der Rechte wegen.

    Der Prozess lässt sich mit sudo bash /home/username/Scripts/borgscript.sh wunderbar starten.

    Nutze ich jedoch sudo ./home/username/Scripts/borgscript.sh, so kommt immer nur: "-bash: ./home/username/Scripts/borgscript.sh: Datei oder Verzeichnis nicht gefunden"

    Dieses Verhalten trifft auf alle Scripte zu (selbst Einfachste, die einfach nur "FOO" ausgeben).

    Der Job wird anscheinend ebenfalls nicht gestartet, was alle Scripte betrifft. Cronjob generell funktioniert aber (alles andere startet).

    Und nun die Dinge an denen ich denke, das es liegen könnte und die ich daher mal probiert habe:

    Die Datei wurde natürlich ausführbar gemacht mit "chmod +x" und die Zugriffsrechte für root stehen auf: -rwx--x--x 1 root root 4423 Feb 17 14:52 /home/username/Scripts/borgscript.sh

    Wurden versuchsweise auch mal auf chmod 777 gesetzt - keine Änderung.

    Ich habe dos2unix drüber laufen lassen um sicher zu gehen, dass nich irgendwelche Fehler im Script schuld sind - keine Änderung.

    Auch schon probiert ob irgendwo \r oä. drin vorkommt - ohne etwas zu finden.

    Die erste Zeile des Scripts lautet: #!/bin/bash. Ein Test ergab, dass diese bash auch vorhanden ist.

    Kopieren der Scripte nach /usr/local/bin lässt sie mich ohne Probleme mit sudo borgsript.sh ausführen. In Cronjob funktioniert es aber dennoch nicht.

    Und nun die große Frage - was übersehe ich? Die Scripte laufen alle. Nur eben nicht mit ./scriptpfad.sh oder mit Cronjob, und das obwohl alle Rechte korrekt scheinen und die Scripte mit bash oder unter /usr/local/bin ohne Probleme laufen. Ich habe auch schon überlegt ob es am eingestellten Passwort für den root user liegt, wüsste aber nicht warum das eine Rolle spielt. Ich würde mich freuen etwas dazu zu lernen.

    Ahja. Das Ganze läuft unter Raspbian Duster vom Februar 2020 mit allen Updates auf einem RPI4.


    :danke_ATDE:

  • Rechte bei Scripten - bash: Datei oder Verzeichnis nicht gefunden? Schau mal ob du hier fündig wirst!

  • > Nutze ich jedoch sudo ./home/username/Scripts/borgscript.sh, so kommt immer nur

    Das ist ganz einfach zu loesen:

    * im AKTUELLEN DIRECTORY ein Directory mit dem Namen home erstellen

    * darin ein Directory mit dem Namen username

    * darin Scripts

    * und da rein kommt das Script

    Jetzt muesste dieser Befehl funktionieren :fies:

    Einmal editiert, zuletzt von Tell (18. Februar 2020 um 09:51)

  • Nachdem ich einige Beiträge durch habe und keine Idee mehr habe, ...

    Schau mal auch nach absoluter und relativer Pfadangabe.

    BTW: Dateien und Verzeichnisse die root als owner haben. sollte man nicht im home-Verzeichnis des users speichern/erstellen. Ein cronjob ist evtl. nicht mehr zeitgemäß bzw. nicht geeignet. Evtl. eine service-unit/timer-unit benutzen.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • Ok. Also da gehen wir von einem relativen Pfad aus. Kleines Problem - große Wirkung. Danke, irgendwie habe ich das übersehen :wallbash:

    Nun funktioniert auch der cronjob...

    Ich werde mich mal mit den service-units auseinander setzen. Aber nun habe ich immerhin ein funktionierendes System, das eigtl. alles kann was ich wollte. Und das Gute ist, dass ich immer mehr Möglichkeiten entdecke das noch weiter auszubauen. Ich danke Euch :)

  • Nutze ich jedoch sudo ./home/username/Scripts/borgscript.sh, so kommt immer nur: "-bash: ./home/username/Scripts/borgscript.sh: Datei oder Verzeichnis nicht gefunden"

    Das passiert immer dann, wenn das Skript nicht ausführbar gemacht wurde (chmod +x skript.sh) dabei ist wichtig, dass der Shebang (#!/bin/bash oder gleichwertig) stimmt.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!