[Problem] Kein Zugriff auf Shell Datei

Tekzen

Neuer User
Mitglied seit
2 Jun 2017
Beiträge
14
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich habe Freetz auf meine Fritzbox installiert mit dem Ziel meine Skripte per Crontab ausführne zu können.
Per Rudishell ist es kein Problem mit Crontab tut sich nichts. Die Skripte befinden sich auf der Fritzbox im NAS

kurzer Einblick wie es aussieht

über fritz nas

root@fritz:/var/mod/root# chmod -R 777 my
chmod: my: No such file or directory

unter telnet

-rw-rw-rw- 1 root root 214 Jun 3 17:50 meinscript.sh

über telnet versucht script auszuführen

root@fritz:/var/mod/root# cd /var/media/ftp/my
root@fritz:/var/media/ftp/my# ./meinscript.sh
-sh: ./meinscript.sh.sh: Permission denied

hab jetzt als crontab

/1 * * * * /var/media/ftp/my/meinscript.sh

drin es tut sich nichts

Was mache ich verkehrt?? Die Sripte beginnen mit
#!/bin/sh
 
Wenn das "my" ein USB-Speicher ist und FREETZMOUNT nicht komplett genutzt wird, kann es sein, daß das der USB-Stick mit "noexec"-Option gemountet wurde.
 
Zuletzt bearbeitet:
ich nutze den internen Speicher der Fritzbox kein USB Laufwerk, das my ist ein ordner im internen Speicher
 
Ok, aber auch dann muß entweder die Datei auf "executable" gesetzt sein (das ist sie bei Dir ja nicht) oder man ruft sie gleich mit "sh dateiname" auf ... da das auch die "Umgehungslösung für ein "noexec" wäre, ist das ohnehin die bessere Alternative - erst recht dann, wenn das irgendwo automatisch passieren soll und man das nicht mehrfach selbst eingeben muß.
 
wie mache ich das genau?
 
Das muß man auch erst einmal entdecken, daß Du das "chmod -R 777 my" (was ja eigentlich die Permissions richtig setzen würde) aus dem falschen Verzeichnis aufrufst ... und dann auch noch vermuten, daß Du das tatsächlich nicht nur einmal (aus dem falschen Verzeichnis heraus) falsch gemacht hast, sondern (hoffentlich) ja wiederholt und dabei immer denselben Fehler begangen hast.

- - - Aktualisiert - - -

Google hilft da unheimlich ... einfach mal die verschiedenen Aufrufvarianten für eine Linux-Shell suchen.
 
das skript läuft über Rudishell problemlos durch.
jetzt habe ich die Rechte angepasst siehe

-rwxrwxrwx 1 root root 214 Jun 3 17:59 meinscript.sh
 
Zuletzt bearbeitet:
Moin

:?:
wie mache ich das genau?
Lesen und verstehen, auch diesen deinen Thread, am Besten mit ausprobieren.

1. :!:
Das muß man auch erst einmal entdecken, daß Du das "chmod -R 777 my" (was ja eigentlich die Permissions richtig setzen würde) aus dem falschen Verzeichnis aufrufst
^--->
Code:
root@fritz:[color="red"]/var/mod/root[/color]# chmod -R 777 my
chmod: my: No such file or directory
...und...
2. :!:
oder man ruft sie gleich mit "sh dateiname" auf
^---> Preisfrage: Wie müsste dann...
Code:
/1 * * * * /var/media/ftp/my/meinscript.sh
...richtigerweise aussehen :?:
 
die Rechte habe ich angepasst siehe post zuvor, das habe ich kapiert

jetzt habe ich es gemacht nach deinem Hinweis

root@fritz:/var/mod/root# cd /var/media/ftp
root@fritz:/var/media/ftp# chmod -R 777 my
root@fritz:/var/media/ftp#




Zu deine Preisfrage die Antwort auf Cron habe ich leider nicht
 
Zuletzt bearbeitet:
Die Frage von @koy war zwar rhetorisch ... aber mein Hinweis auf Google war es - trotz ständiger Wiederholungen - eher nicht. Wenn da am Ende nur drei zusätzliche Zeichen fehlen, ist das zwar ärgerlich, aber das bei einer eigenen Suche Gelernte läßt sich ziemlich sicher später noch einmal verwenden.

Daß es unter der "Rudi-Shell" funktioniert, könnte auch ganz simpel daran liegen, daß die mehr als "Interpreter" für Shell-Skripte arbeitet und die m.W. gar nicht über die "exec()"-Syscalls direkt ausführt. Es steht m.W. auch irgendwo dabei, daß die nicht 100% kompatibel zu einer "richtigen" Shell ist.
 
kann ich in Freetz nicht sehen was cron genau macht

root@fritz:/var/media/ftp/my# chmod -R 777 az.sh
root@fritz:/var/media/ftp/my# ./az.sh
-sh: ./az.sh: Permission denied

- - - Aktualisiert - - -

Rechte habe ich jetzt vergeben und mit ubuntu abgeglichen die sind jetzt gesetzt

root@fritz:/var/media/ftp/my# chmod -R 777 stick.sh
root@fritz:/var/media/ftp/my# sh stick.sh

Mit Cron komme ich nicht weiter
hab in crontab folgendes eingetragen:

*/10 * * * * /var/media/ftp/my/stick.sh

Unter Freetz steht Cron auf Automatisch nicht Hand ist das so richtig
 
Zuletzt bearbeitet:
Auf die Erklärung, warum da beim Aufruf vom Prompt mit "sh" davor gearbeitet wird und in der Crontab dann nicht, bin ich sehr gespannt. Außerdem protokolliert der crond normalerweise recht genau im Syslog, was er da gerade macht und was das für Ergebnisse zeitigt.
 
O danke für den Hinweis auf den Syslog den habe ich jetzt aktiviert, sehe aber nicht ob dieses nun ausgeführt wurde oder nicht

Jun 3 20:39:00 fritz cron.info crond[23273]: USER root pid 24510 cmd /var/media/ftp/my/stick.sh
Jun 3 20:39:25 fritz kern.warn kernel: [11731.710000] system-load 1 loadavg 0.23 0.20 0.16 - 106 tasks:2 % curr:luacgi(0 %) max:ctlmgr(0 %, pid:2694) pgstat: sum=62139 free=23141 slab=7456 alloc=293/s fault=753/s (sleep 6)
Jun 3 20:39:32 fritz kern.info kernel: [11739.660000] /proc/tffs: info request: success
Jun 3 20:40:00 fritz cron.info crond[23273]: USER root pid 24653 cmd /var/media/ftp/my/stick.sh
 
Dir ist aber schon bewußt, daß es so etwas wie ein Loglevel gibt, was man auch auf "geschwätziger" einstellen kann?

Ich werde den Eindruck nicht los, daß es hier weniger um Freetz und seine Besonderheiten geht (wofür dieses Forum dann "zuständig" wäre) als vielmehr um Linux-Basiswissen (für Administratoren).

Da bringt dann auch solches "Ping-Pong-Spiel" wenig ... irgendwann verlieren die Leute einfach die Lust am Antworten, wenn sie sich des Eindrucks nicht erwehren können, daß sie hier mehr als "Enzyklopädie" mißbraucht werden sollen und es gar nicht wirklich um Freetz-spezifische Fragen und Probleme geht.
 
sorry kenn mich mit freetz nicht aus, als enzokplädie sollte dieser Thread nicht dienen.
 
Das ist auch nicht böse gemeint ... aber schau Dir mal den Verlauf des Threads an und versetze Dich in die Lage von jemandem, der mal helfen wollte (auf die Schnelle).

Es ging durchaus noch FRITZ!Box-spezifisch los, weil es ja sein könnte, daß das neue Mounten mit "noexec"-Option (so lange gibt es das noch nicht) die Ursache der Probleme war - das stellte sich dann als Trugschluß heraus.

Dann gab es die Information, daß man ohnehin besser die Shell mit dem passenden Skript als Eingabedatei aufruft und sich nicht auch das SheBang im Kopf der Datei verläßt und auf die "x"-Flags. Das führte dann m.E. eben nicht dazu, daß Du Dich selbst auf die Suche gemacht hättest ... nein, es kommt - wie aus der Pistole geschossen, denn in den zwei Minuten zwischen meiner Antwort und Deiner neuen Frage kannst Du einfach nicht gescheit gesucht haben - die Nachfrage, wie Du das anstellen sollst.

Jetzt schiebst Du es auf Freetz, weil Du Dich damit nicht auskennen würdest ... das Erste, was man als Linux-Benutzer auf der Kommandozeile lernen sollte, ist der Aufruf der Hilfefunktion eines beliebigen Programms. Das geht fast immer mit "--help" oder "-h" als Option und siehe da, wenn man das mit der BusyBox-Shell macht, kommt dabei folgendes heraus:
Code:
root@FB7490:~ $ sh --help
BusyBox v1.24.2 (2016-09-24 17:17:47 CEST) multi-call binary.

Usage: sh [-/+OPTIONS] [-/+o OPT]... [-c 'SCRIPT' [ARG0 [ARGS]] / FILE [ARGS]]

Unix shell interpreter
Wenn man damit nichts anfangen kann, gibt es immer noch die BusyBox-Seite im Internet und auch da steht es:
Most BusyBox applets support the --help argument to provide a terse runtime description of their behavior. If the CONFIG_FEATURE_VERBOSE_USAGE option has been enabled, more detailed usage information will also be available.
(gilt halt nicht für alle Applets).

Aber nicht zuletzt gibt es zig Tutorials im Internet, die in den Umgang mit der Kommandozeile eine Einführung bieten ... auch die findet man (auch in Deutsch), wenn man sich etwas bemüht.

Aber hier geht es eben in Trippelschritten immer weiter und eigentlich ist die Quintessenz jeder neuen Frage nicht: "Was ist so anders in Freetz oder auf der FRITZ!Box?" (die Antwort würde ohnehin meistens lauten: "Nichts."), sondern immer wieder: "Wie komme ich nun weiter?" oder "Wie macht man das eigentlich?".

Da gibt es zwar diverse Möglichkeiten (z.B. würde ich mal den "crond" anschauen:
Code:
root@FB7490:~ $ crond --help
BusyBox v1.24.2 (2016-09-24 17:17:47 CEST) multi-call binary.

Usage: crond -fbS -l N -d N -L LOGFILE -c DIR

        -f      Foreground
        -b      Background (default)
        -S      Log to syslog (default)
[COLOR="#FF0000"]        -l N    Set log level. Most verbose:0, default:8[/COLOR]
        -d N    Set log level, log to stderr
        -L FILE Log to FILE
        -c DIR  Cron dir. Default:/var/crontabs/crontabs
), aber ich habe die Befürchtung, daß Du es eher als Ermunterung und Bestätigung auffassen würdest, wenn man Dir alles mundgerecht serviert.

Und genau aus diesem Grund klinke ich mich jetzt hier auch aus ... wenn es wirklich zu einer neuen Frage kommen sollte, die event. etwas mit dem FRITZ!OS oder Freetz zu tun hat, kann man ja weitersehen.
 
Danke für die Hilfe, anbei Crontab Log

Jun 4 00:41:00 fritz cron.info crond[8845]: USER root pid 9423 cmd /var/media/ftp/my/stick.sh
Jun 4 00:41:00 fritz cron.info crond[8101]: USER root pid 9425 cmd /var/media/ftp/my/stick.sh
Jun 4 00:41:00 fritz cron.info crond[6848]: USER root pid 9427 cmd /var/media/ftp/my/stick.sh
Jun 4 00:41:00 fritz cron.info crond[8970]: wakeup dt=50
Jun 4 00:41:00 fritz cron.info crond[8970]: file root:
Jun 4 00:41:00 fritz cron.info crond[8970]: line /var/media/ftp/my/stick.sh
Jun 4 00:41:00 fritz cron.info crond[8970]: job: 0 /var/media/ftp/my/stick.sh
Jun 4 00:41:00 fritz cron.info crond[9429]: child running /bin/sh
Jun 4 00:41:00 fritz cron.info crond[8970]: USER root pid 9429 cmd /var/media/ftp/my/stick.sh
Jun 4 00:41:10 fritz cron.info crond[8970]: wakeup dt=10

- - - Aktualisiert - - -

erledigt, für die es wissen wollen lag am windows editor habs jetzt unter linux hinbekommen
 
IMHO

SS

Wieso bleibt man nicht bei einem BS ? Oder verwendet dann zumindest auf DOS Basis einen Editor, welcher auch für zB in diesem Fall die Linuxsprache spricht?

Außerdem wäre doch ein bisschen Backgroundwissen, und wenn es nur Basics sind - über welche man meist schon so viel Verständniss haben sollte, wo der Fehler liegen könnte das erste was ich mir aneignen würde.

Klar hat jeder mal angefangen, die meisten zäumen aber nicht von hinten auf..

In diesem Sinne - Präfix wählen (1. Eintrag - editieren - erweitert...)
 
Ja, dieser <cr><lf> vs <lf> Spuk ist nicht totzukriegen und taucht immer wieder mal auf.
Und: UTF-8 ohne BOM benutzen
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.