.titleBar { margin-bottom: 5px!important; }

Wie schreibt man scripts ?

Dieses Thema im Forum "FRITZ!Box Fon: Modifikationen" wurde erstellt von SkyMaster, 29 Okt. 2006.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. SkyMaster

    SkyMaster Neuer User

    Registriert seit:
    1 Dez. 2005
    Beiträge:
    52
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #1 SkyMaster, 29 Okt. 2006
    Zuletzt bearbeitet: 29 Okt. 2006
    Hallo,
    Mich würde mal Interessieren wie mann scribst schreibt (wie die ausehen müsten) um bestimmte befehle auszuführen.
    Ich habe leider NULL Ahnung was das Scribt schreiben unter Linux angeht.

    Folgendes ist mein ZIEL.
    Ich habe auf der FritsBox ein Server am laufen.
    Diesen aus der Debug zustarten ist ja kein Problem.
    Den manuell neu zu starten (per Telnet) ist auch OK nur etwas umständlich :) (da dan immer viel zu tippern ist)

    Also wie müste ein Sript ausschauen wenn Folgendes passieren soll:

    1) Server anhalten (killall program1)

    2) Nun sollen 5 Dateien von USB-Stick ins TMP-verzeichniss geschrieben werden und dabei die alten überschriben werden)

    3) das Programm starten.

    In der debug.cfg wir bei ein Reboot der Box das Programm wie folgt gestartet:
    Könnt Ihr mir da weiterhelfen, wie ausführbare Scribt ausschauen muss ?
    den es kommt schonmal vor das der Server sich aufhängt, dam möchte ich Ihn germa mal ebend neu starten OHNE die gane Fritzbox resetten zu müssen.
    Ich danke schonmal im vorraus für eure Mühe.

    Gruß
    Andy
     
  2. gandalf94305

    gandalf94305 Guest

    Zunächst mal schreibt man das so: SCRIPT ;-)

    Ein Script, genauer: Shell-Script, unter Linux beginnt mit "#! /bin/sh" und enthält dann eine Reihe von Anweisungen, die man auch manuell eintippen könnte, endet normalerweise mit "exit 0". Suche doch bitte mal per Google nach den Möglichkeiten in einer Unix-Shell...

    Ein Script "datum.sh" zur Ausgabe des aktuellen Datums mit Uhrzeit
    Code:
    #! /bin/sh
    # Script zur Ausgabe von Datum und Uhrzeit
    #
    # 20061029 gandalf94305 - erste Version
    #
    date
    exit 0
    
    Damit das Script ausführbar ist, sollte es entsprechend Berechtigungen erhalten (manuelle Eingabe dieses Kommandos in die Shell):
    Code:
    # chmod 755 datum.sh
    
    In Deinem Fall wäre das also etwas wie
    Code:
    #! /bin/sh
    
    # Programm beenden
    killall program
    # Kurz warten, bis das Programm beendet ist
    sleep 3
    # Nochmals abschiessen, falls nicht erfolgt
    killall program
    # Kopieren von Dateien von /a/b nach /var/tmp
    cp /a/b/c1 /var/tmp/c1
    cp /a/b/c2 /var/tmp/c2
    # Starten des Programms mit den entsprechenden Parametern
    # (wie auch immer das Programm zu starten ist)
    /x/y/program -v
    # Das war's
    exit 0
    
    So, was wolltest Du denn nun genau wissen?

    --gandalf.
     
  3. SkyMaster

    SkyMaster Neuer User

    Registriert seit:
    1 Dez. 2005
    Beiträge:
    52
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #3 SkyMaster, 29 Okt. 2006
    Zuletzt bearbeitet: 29 Okt. 2006
    Hallo gandalf

    danke für dein Tipp,aber hier liegt mein Problem ,
    genau so habe ich es eigentlich gemacht, doch nur ist es leider so, das er aus ein Script raus angeblich die Verzeichnisse nicht findet :-(

    Wenn ich die Eintragungen direkt ins Telnet eingebe dann geht es alles (auch aus der Debug.cfg raus.
    Wenn ich aber nun es in ein Script packe und dann das Script starte kommt folgendes bei raus_
    das Scribt schaut so aus
     
  4. phoenix.tom

    phoenix.tom Mitglied

    Registriert seit:
    6 Sep. 2006
    Beiträge:
    424
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    Student der Informatik und Medienwissenschaften
    Ort:
    Tübingen
    nicht angeblich, sondern du hast Dich im Script vertippt:
    Code:
    cp [COLOR=Red]/[/COLOR]var/media/ftp/FlashDisk-Partition-0-1/andy/andymips /var/tmp/andymips
    [COLOR=Red] cp var/media/ftp/FlashDisk-Partition-0-1/andy/cwshare.cfg /var/tmp/cwshare.cfg
    cp var/media/ftp/FlashDisk-Partition-0-1/andy/gbox_cfg /var/tmp/andy_cfg
    cp var/media/ftp/FlashDisk-Partition-0-1/andy/ignore.list /var/tmp/ignore.list
    cp var/media/ftp/FlashDisk-Partition-0-1/andy/libgcc_s.so.1 /var/tmp/libgcc_s.so.1[/COLOR]
    Du hast den führenden Backslash vergessen.
     
  5. SkyMaster

    SkyMaster Neuer User

    Registriert seit:
    1 Dez. 2005
    Beiträge:
    52
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo das war es aber wohl auch nicht , oder ich habe noch mehr vergessen :)
    den nun findet er nach wie vor z.B. /var/tmp nicht :-(

    (ich hab edie führende Backslash nun zugefügt, und nun kommt folgendes..

    und starten tuht daher natürlich auch nix :-(
     
  6. Marsupilami

    Marsupilami IPPF-Promi

    Registriert seit:
    31 Jan. 2006
    Beiträge:
    4,998
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Halb-OT ein genereller Tip nebenbei:
    Ein sehr gutes Buch über Linux und seine Artverwandten ist meines Erachtens "Wie werde ich UNIX-Guru?" von Arnold Willemer, erschienen bei Galileo Computing. Es hat mir schon einige gute Dienste geleistet und viele Fragen beantwortet.
    Das beste daran: Es gibt das Buch auch als völlig kostenlos auf der Seite des Verlages als Openbook, also das komplette Buch zum Online-Lesen: http://www.galileocomputing.de/openbook/unix_guru/
    Meines Erachtens sehr gut geeignet für Linux-Einsteiger, die nicht völlige DAU's sind! :D
     
  7. Herman

    Herman Neuer User

    Registriert seit:
    4 Jan. 2006
    Beiträge:
    199
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Ort:
    NRW
    Hallo Andy.

    Was mich sehr stutzig macht:
    Warum funktionieren noch nicht mal die sleep-Befehle?

    Sind im Script vielleicht Windows-Zeilenumbrüche vorhanden?
    Oder sonstige "komische Zeichen" an Zeilenende?

    Gruß
    Hermann
     
  8. SkyMaster

    SkyMaster Neuer User

    Registriert seit:
    1 Dez. 2005
    Beiträge:
    52
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    HAllo, coll das werde ich mir mal zur Brust nehmen :)

    Aber nun zum Hautproblen, was ich auch sehr seltsam finde, ist das ich das Script nur mit "sh andy-r.sh" aufrufen kann (und dann halt die Oben beschriebenen Fehler kommen)
    Wenn ich
    andy-r.sh oder .andy-r.sh
    eingebe heist es immer das andy-r.sh nicht gefunden werden konnte ??!!
    Normalerweise sollte ich das doch auch einfach über den namen aufrufen können , oder (sprich "andy-r.sh)

    Irgentwie scheint mir das alles sehr seltsam ....

    Achja, natürlich habe ich voher ins Verzeichniss gewechselt wo das Script liegt.
    und auch chmod 755 habe ich gesetzt ....
     
  9. gandalf94305

    gandalf94305 Guest

    Es sind jedenfalls keine Backslashes, die fehlen. Es fehlen Slashes, auch bekannt als "/".

    Dein Script müsste also so lauten (vorausgesetzt, /var/media/ftp... ist wirklich der Stick):
    Code:
    [COLOR=Black] #! /bin/sh
    # Applikation stoppen
    killall datei1
    sleep 2
    
    # Variablen für die Quell- und Zielverzeichnisse
    stick=/var/media/ftp/FlashDisk-Partition-0-1
    ziel=/var/tmp
    
    # Dateien kopieren (sleep ist unnötig)
    cp $stick/andy/datei1 $ziel/datei1
    cp [/COLOR][COLOR=Black]$stick/andy/datei2.cfg $ziel[/COLOR]/datei2.cfg
    cp $stick/andy/datei3_cfg $ziel/datei3_cfg
    cp $stick/andy/datei4.list $ziel/datei4.list
    cp $stick/andy/datei5 $ziel/datei5
    
    # Permissions richtig setzen
    cd /var/tmp
    chmod +x datei1 datei2.cfg datei3_cfg datei4.list
    
    # Zielverzeichnis in Library-Pfad übernehmen
    if [ "x${LD_LIBRARY_PATH}" = "x" ] ; then
      LD_LIBRARY_PATH=$ziel
    else
      LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ziel
    fi
    export LD_LIBRARY_PATH 
    
    # Neustart der Applikation
    ./datei1
    
    exit 0
    
    Und bitte vergiss nicht, die Leerzeichen genau so zu schreiben wie oben! Das Script andy.sh mit chmod 755 auf Executable setzen... und wenn "." im PATH nicht enthalten ist (für den "root" User ist das Standard), dann kannst Du das auch nicht durch blosse Eingabe des Namens ausführen. Starte es also z.B. mit "./andy.sh"

    --gandalf.
     
  10. SkyMaster

    SkyMaster Neuer User

    Registriert seit:
    1 Dez. 2005
    Beiträge:
    52
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo, danke für die Hilfe!

    Es läuft nun *freu*

    Seltsammerweise hat "Herman" den richtigen richer gehabt.
    es wahren falsche Zeichen vorhanden :-(
    Hinter jeder Zeile stand plötzlich ein ^M

    Warum weis ich nun nicht, ich habe es eigentlich wie IMMER mit "TextPad" gemacht, das ist eigentlich ein Linuxfähiger Editor und hat bis jetzt auch noch Nie Probleme gemacht...
    Zu sehen war der Fehler erst im Editor vom MC

    OK trozdem danke für eure Hilfe

    Gruß
    Andy
     
  11. danisahne

    danisahne Aktives Mitglied

    Registriert seit:
    30 Juli 2005
    Beiträge:
    1,493
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    Informatik Studium
    Ort:
    Marktoberdorf
    Klassischer Fall von Windowszeilenumbrüchen.
     
  12. SkyMaster

    SkyMaster Neuer User

    Registriert seit:
    1 Dez. 2005
    Beiträge:
    52
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hi, ja leider :) warum Textpad das auch immer gemacht hat....
    Ich habe es danach noch parmal getestet, und da ging es wider 100% mit Textpad....

    naja, wie auch immer nun lüppt es ja wider und wenns wider mal problemme gibt, schau ich wohl voher mit MC ins File :)

    Nochmal danke für eure Tipps

    Gruß
    Andy
     
  13. gandalf94305

    gandalf94305 Guest

    Ggf. beachtet Textpad die bereits vorhandene End-of-Line Konvention und behält diese bei, d.h. waren vorher Zeilen mit CRLF beendet, dann wird das auch für neue Zeilen so gemacht... waren vorher nur LF an den Zeilenenden, macht Textpad das so weiter.

    --gandalf.
     
  14. SkyMaster

    SkyMaster Neuer User

    Registriert seit:
    1 Dez. 2005
    Beiträge:
    52
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    AHA, wider was dazugelernt :)
    danke
     
  15. phoenix.tom

    phoenix.tom Mitglied

    Registriert seit:
    6 Sep. 2006
    Beiträge:
    424
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    Student der Informatik und Medienwissenschaften
    Ort:
    Tübingen
    Hmpf! :(
    Damit hast Du natürlich vollkommen recht. Aber wenn man gerade im Büro sitzt und sich mit lauter Windows-Zeug beschäftigen muss, kann dieser Habbit mit den Backslashes doch mal verziehen werden oder? ;)

    Jedenfalls empfehle auch ich SkyMaster eingehende Lektüre.
    Er könnte sich so viel Arbeit ersparen. Vermutlich kennen so ziemlich alle anderen seine Probleme. Hatten wir doch anfangs auch alle (zumindest wenn man von Windows umgestiegen war). :-Ö

    Aber: SkyMaster, weiter so! Nicht aufgeben. Bist doch schon auf einem guten Weg. Als sehr guter Editor unter Windows kann ich Dir auch noch UltraEdit empfehlen.
    Damit hat z.B. das Problem mit Windowszeilenumbrüchen ein Ende...
     
  16. gandalf94305

    gandalf94305 Guest

    Als sehr guten Editor unter Windows kann ich Emacs empfehlen :)

    --gandalf.
     
  17. buehmann

    buehmann Aktives Mitglied

    Registriert seit:
    11 Juni 2005
    Beiträge:
    1,810
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Und den sehr guten Editor Vim natürlich nicht zu vergessen! So trainiert man nebenbei gleich für den vi auf der Fritzbox. :)

    Andreas
     
  18. phoenix.tom

    phoenix.tom Mitglied

    Registriert seit:
    6 Sep. 2006
    Beiträge:
    424
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    Student der Informatik und Medienwissenschaften
    Ort:
    Tübingen
    VIM und EMACS sind beides gute Editoren, keine Frage.
    Auch das Argument, Übung in VI hilft SkyMaster auf der FB am meisten ist ein bestechendes Argument.

    Persönlich - und da stehe ich sicherlich nicht alleine - mag im täglichen Umgang weder vi oder gar emacs. (Ich persönlich verabscheue emacs, da sich dieser einfach nicht an den SAA-Standard oder sonstige Usability-Standards hält. Um emacs sinnvoll einsetzen zu können muss man sich schon mehrere Monate Zeit nehmen um die zig tausend tastenkombinationen auswendig zu lernen...)

    Aber diesen Glaubenskrieg sollten wir hier wohl besser nicht weiterführen. VI und EMACS sind nunmal in ihrer Bedienung einzigartig. Da SkyMaster die beiden Editoren nicht so wirklich kennt, empfehle ich sie ihm in diesem Stadium auch nicht, da er damit dann noch ganz andere Baustellen aufreißt...

    Er braucht einfach einen brauchbaren Editor, dem er sagen kann was zu tun ist. Ein Umstieg von UltraEdit zu z.B. Kate ist für ihn dann kein Problem mehr. vi und emacs sind da eher die königsdisziplin.

    Nur weil jemand für Silvester mal eine eigene Rakete bauen will muss er doch nicht gleich Luft- und Raumfahrttechnik studieren, oder?
     
  19. SkyMaster

    SkyMaster Neuer User

    Registriert seit:
    1 Dez. 2005
    Beiträge:
    52
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Soll ich euch mal was sagen was mir persöhnlich ab liebsten währe......
    Der Editor aus den MC ;-)
    Nur blöd das ich das DS-Mod nicht auf mein FBF 7170 mit der FW 29.04.21 draufbekomme, das teil streik da fürchterlich ....

    Aber wie auch Immer, ich werde das alles schon hinbekommen :)
    Und wenn ich etwas zeit habe dann werde ich mir auch das Oben beschrieben Online-Buch mal vorknöpfen ;-)
    Un wer weis, Heute die Totale LAIE und morgen der Neuste ImageSchreiber *lach* (das war ein Scherz)

    So schnell gebe ich nie auf, aber jeder weiß ja ...gute Dinge brauchen Weile

    gruß
    Andy
     
  20. gandalf94305

    gandalf94305 Guest

    An dieser Stelle für Dich auch noch der Hinweis auf cygwin: http://www.cygwin.com

    Cygwin ist praktisch eine Unix-Shell unter Windows ;-)

    --gandalf.
     
Status des Themas:
Es sind keine weiteren Antworten möglich.