mehrere skripte (z.B. getit) hintereinander ausführen

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von KlaPe, 12.10.2005.

  1. KlaPe

    KlaPe Grünschnabel

    Dabei seit:
    12.10.2005
    Beiträge:
    5
    Zustimmungen:
    0
    Hallo miteinander,

    bin eine absolute Linux/Unix-Null und werde es auch bleiben???

    Problemstellung:

    Benötige einen skript-Entwurf, der verschiedene befehle hintereinander durchführen soll, eventuell mit entsprechender "Zeituhr".
    Beispiel:

    es oll ein ordner "new_1" erstellt werden (Eingabe wäre "md new_1" - ENTER)
    dann soll in den Ordner gewechselt werden (Eingabe wäre "cd new_1" - ENTER)
    dann soll ein getit-befehl ausgeführt werden (Eingabe wäre "sh /home/getit -s=http://www.stryder.de/pics/ -cs=1 -ce=6 -sz=1 -pre=ec -suf= -ext=.jpg" - ENTER)
    dann sollte das system z.B. 5 min. (ca wert) warten
    dann sollte wieder in den überordner gewechselt werden (Eingabe wäre "cd" - ENTER)
    dann sollte ein neuer Ordner angelegt werden usw.

    Hat jemand ein script in der Art, bzw. wie müßte so ein script aufgebaut sein?

    Vielen Dank für Unterstützung und Hilfe ......

    KlaPe (Klaus-Peter)
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. KlaPe

    KlaPe Grünschnabel

    Dabei seit:
    12.10.2005
    Beiträge:
    5
    Zustimmungen:
    0


    PS: hier noch das GETIT-SCRIPT
    ********************************************************************************************************

    #!/bin/sh

    clear
    Input="$1 $2 $3 $4 $5 $6 $7 $8 $9"

    # Misc Stuff

    if [ "$Input" = " " ] ; then
    echo "Error not enough parameters, try --help"
    exit
    fi

    if [ "$1" = "--info" ] ; then
    echo "GetIt 0.2.1d"
    echo "(c)copyright by United Programmer Group 2000-2005"
    echo "written by Maniac"
    echo "with support from VinciEx aka Kais0r"
    echo "Use this script at your own risk"
    echo "No WARRANTY"
    exit
    fi

    if [ "$1" = "--help" ] ; then
    echo "GetIt 0.2.1d"
    echo "Other Commands: --info, -0"
    echo "Usage: "
    echo "sh getit -s=[Source] -cs=[CounterStart] -ce=[CounterEnd] -sz=[StepSize] -pre=[Prefix] -suf=[Suffix] -ext=[Extension]"
    echo ""
    echo "e.g."
    echo "sh getit -s=www.google.de -cs=1 -ce=10 -sz=1 -pre=foo -suf=bar -ext=.jpg"
    echo ""
    echo ""
    echo -e "-0\tLet the counter fill in zeros, to count like on digicams"
    echo -e "\te.g. 0100 0010 0001 instead of 100 10 1"
    exit
    fi


    # ----> Source Stuff <----


    Part=`echo "$Input" | cut -d " " -f 1`

    if [ "${Part:0:3}" = "-s=" ] ; then
    URL="${Part:3}"
    fi

    if [ "${Part:0:3}" = "-cs" ] ; then
    CounterStart="${Part:4}"
    fi


    if [ "${Part:0:3}" = "-ce" ] ; then
    CounterEnd="${Part:4}"
    fi

    if [ "${Part:0:3}" = "-sz" ] ; then
    StepSize="${Part:4}"
    fi

    if [ "${Part:0:4}" = "-pre" ] ; then
    Prefix="${Part:5}"
    fi

    if [ "${Part:0:4}" = "-suf" ] ; then
    Suffix="${Part:5}"
    fi

    if [ "${Part:0:4}" = "-ext" ] ; then
    Extension="${Part:5}"
    fi

    if [ "${Part:0:2}" = "-0" ] ; then
    InclZero="Yes"
    fi

    # ----> Same Shit for CounterStart <----


    Part=`echo "$Input" | cut -d " " -f 2`

    if [ "${Part:0:3}" = "-s=" ] ; then
    URL="${Part:3}"
    fi

    if [ "${Part:0:3}" = "-cs" ] ; then
    CounterStart="${Part:4}"
    fi


    if [ "${Part:0:3}" = "-ce" ] ; then
    CounterEnd="${Part:4}"
    fi

    if [ "${Part:0:3}" = "-sz" ] ; then
    StepSize="${Part:4}"
    fi

    if [ "${Part:0:4}" = "-pre" ] ; then
    Prefix="${Part:5}"
    fi

    if [ "${Part:0:4}" = "-suf" ] ; then
    Suffix="${Part:5}"
    fi

    if [ "${Part:0:4}" = "-ext" ] ; then
    Extension="${Part:5}"
    fi

    if [ "${Part:0:2}" = "-0" ] ; then
    InclZero="Yes"
    fi


    # ----> Same for Counter End <----


    Part=`echo "$Input" | cut -d " " -f 3`


    if [ "${Part:0:2}" = "-s=" ] ; then
    URL="${Part:3}"
    fi

    if [ "${Part:0:3}" = "-cs" ] ; then
    CounterStart="${Part:4}"
    fi


    if [ "${Part:0:3}" = "-ce" ] ; then
    CounterEnd="${Part:4}"
    fi

    if [ "${Part:0:3}" = "-sz" ] ; then
    StepSize="${Part:4}"
    fi

    if [ "${Part:0:4}" = "-pre" ] ; then
    Prefix="${Part:5}"
    fi

    if [ "${Part:0:4}" = "-suf" ] ; then
    Suffix="${Part:5}"
    fi

    if [ "${Part:0:4}" = "-ext" ] ; then
    Extension="${Part:5}"
    fi

    if [ "${Part:0:2}" = "-0" ] ; then
    InclZero="Yes"
    fi


    # ----> And again for StepSize <----

    Part=`echo "$Input" | cut -d " " -f 4`

    if [ "${Part:0:2}" = "-s=" ] ; then
    URL="${Part:3}"
    fi

    if [ "${Part:0:3}" = "-cs" ] ; then
    CounterStart="${Part:4}"
    fi


    if [ "${Part:0:3}" = "-ce" ] ; then
    CounterEnd="${Part:4}"
    fi

    if [ "${Part:0:3}" = "-sz" ] ; then
    StepSize="${Part:4}"
    fi

    if [ "${Part:0:4}" = "-pre" ] ; then
    Prefix="${Part:5}"
    fi

    if [ "${Part:0:4}" = "-suf" ] ; then
    Suffix="${Part:5}"
    fi

    if [ "${Part:0:4}" = "-ext" ] ; then
    Extension="${Part:5}"
    fi

    if [ "${Part:0:2}" = "-0" ] ; then
    InclZero="Yes"
    fi


    # ----> And again for Prefix <----


    Part=`echo "$Input" | cut -d " " -f 5`

    if [ "${Part:0:2}" = "-s=" ] ; then
    URL="${Part:3}"
    fi

    if [ "${Part:0:3}" = "-cs" ] ; then
    CounterStart="${Part:4}"
    fi


    if [ "${Part:0:3}" = "-ce" ] ; then
    CounterEnd="${Part:4}"
    fi

    if [ "${Part:0:3}" = "-sz" ] ; then
    StepSize="${Part:4}"
    fi

    if [ "${Part:0:4}" = "-pre" ] ; then
    Prefix="${Part:5}"
    fi

    if [ "${Part:0:4}" = "-suf" ] ; then
    Suffix="${Part:5}"
    fi

    if [ "${Part:0:4}" = "-ext" ] ; then
    Extension="${Part:5}"
    fi

    if [ "${Part:0:2}" = "-0" ] ; then
    InclZero="Yes"
    fi


    # ----> And again for Suffix <----


    Part=`echo "$Input" | cut -d " " -f 6`

    if [ "${Part:0:2}" = "-s=" ] ; then
    URL="${Part:3}"
    fi

    if [ "${Part:0:3}" = "-cs" ] ; then
    CounterStart="${Part:4}"
    fi


    if [ "${Part:0:3}" = "-ce" ] ; then
    CounterEnd="${Part:4}"
    fi

    if [ "${Part:0:3}" = "-sz" ] ; then
    StepSize="${Part:4}"
    fi

    if [ "${Part:0:4}" = "-pre" ] ; then
    Prefix="${Part:5}"
    fi

    if [ "${Part:0:4}" = "-suf" ] ; then
    Suffix="${Part:5}"
    fi

    if [ "${Part:0:4}" = "-ext" ] ; then
    Extension="${Part:5}"
    fi

    if [ "${Part:0:2}" = "-0" ] ; then
    InclZero="Yes"
    fi


    # ----> And the last one for Extension <----

    Part=`echo "$Input" | cut -d " " -f 7`

    if [ "${Part:0:2}" = "-s=" ] ; then
    URL="${Part:3}"
    fi

    if [ "${Part:0:3}" = "-cs" ] ; then
    CounterStart="${Part:4}"
    fi


    if [ "${Part:0:3}" = "-ce" ] ; then
    CounterEnd="${Part:4}"
    fi

    if [ "${Part:0:3}" = "-sz" ] ; then
    StepSize="${Part:4}"
    fi

    if [ "${Part:0:4}" = "-pre" ] ; then
    Prefix="${Part:5}"
    fi

    if [ "${Part:0:4}" = "-suf" ] ; then
    Suffix="${Part:5}"
    fi

    if [ "${Part:0:4}" = "-ext" ] ; then
    Extension="${Part:5}"
    fi

    if [ "${Part:0:2}" = "-0" ] ; then
    InclZero="Yes"
    fi


    echo "Information Summery:"
    echo "-------------------------------------------------------"
    echo -e "Source URL:\t" $URL
    echo -e "CounterStart:\t" $CounterStart
    echo -e "CounterEnd:\t" $CounterEnd
    echo -e "Step-Size:\t" $StepSize
    echo -e "Prefix:\t\t" $Prefix
    echo -e "Suffix:\t\t" $Suffix
    echo -e "Extension:\t" $Extension
    if [ "$InclZero" = "" ] ; then
    InclZero="No"
    fi
    echo -e "Fill in Zeros:\t" $InclZero
    echo "-------------------------------------------------------"
    echo ""
    echo ""
    echo "Starting in... 3"
    sleep 1
    echo "Starting in... 2"
    sleep 1
    echo "Starting in... 1"
    sleep 1
    echo "Starting NOW!"

    COUNTER=$CounterEnd

    until [ $COUNTER -lt $CounterStart ]; do

    if [ "$InclZero" = "Yes" ] ; then

    if [ "$COUNTER" -gt "999" ] ; then
    COUNTER=$COUNTER

    elif [ "$COUNTER" -gt "99" ] ; then
    COUNTER="0$COUNTER"

    elif [ "$COUNTER" -gt "9" ] ; then
    COUNTER="00$COUNTER"

    elif [ "$COUNTER" -gt "-1" ] ; then
    COUNTER="000$COUNTER"
    fi


    echo "File: " $Prefix$COUNTER$Suffix$Extension
    wget $URL/$Prefix$COUNTER$Suffix$Extension

    else

    echo "File: " $Prefix$COUNTER$Suffix$Extension
    wget $URL/$Prefix$COUNTER$Suffix$Extension

    fi
    let COUNTER-=$StepSize
    done

    ******************************************************************************************************
     
  4. #3 allesmueller, 12.10.2005
    allesmueller

    allesmueller Eroberer

    Dabei seit:
    05.07.2005
    Beiträge:
    69
    Zustimmungen:
    0
    nojo ohne es viel probiert zu haben, speziell "seq" bin ich mir nicht sicher.
    alternativ koenntenst du ein skript auch ueber einen "cron"-job aufrufen, der dann im Hintergrund alles erledigt. Die Directories koennte man dann noch mit einem Zeit/Datumsstempel erstellen...
    ... das ist also wirklich nur ein Ansatz ...
    HTH

    Code:
    #!/bin/sh
    
    COUNT=10  # how many directories
    TIME=300  # seconds
    BASE=/tmp # where dirs are created
    
    for DIR in `seq 1 $COUNT`
    do
            mkdir $BASE/newdir_$DIR
            cd $BASE/newdir_$DIR
    
            sh /home/getit -s=http://www.stryder.de/pics/ -cs=1 -ce=6 -sz=1 -pre=ec -suf= -ext=.jpg
    
            sleep $TIME
    done
     
  5. KlaPe

    KlaPe Grünschnabel

    Dabei seit:
    12.10.2005
    Beiträge:
    5
    Zustimmungen:
    0
    Hallöle,

    erst mal vielen Dank!!!!

    in erster linie bräuchte ich eigentlich nur den Aufbau eines skriptes mit den einzelnen Befehlen hintereinander.
    Beispiel:
    Ordner 1 anlegen
    in Ordner 1 wechseln
    GETIT (1) ausführen
    zurückwechseln
    Zeitpause(1)
    Ordner 2 anlegen
    in Ordner 2 wechseln
    GETIT (2) ausführen
    zurückwechseln
    Zeitpause(2)

    usw

    Scriptende

    Ich teste einfach mal a bisserl - die nacht ist noch lange.....

    Gruß KlaPe (Klaus-Peter)
     
  6. KlaPe

    KlaPe Grünschnabel

    Dabei seit:
    12.10.2005
    Beiträge:
    5
    Zustimmungen:
    0
    Hurra,
    meine erste Fehlermeldung im ersten Versuch:

    line 8: syntax error near unexpected token `do'

    wenn ich nur wüßte was die meldung mir sagen will......

    Bitte-bitte bitte helft mir mit einem ganz einfachen script mit Befehl1 - Befehl2 - Befehl3 - Befehl4 usw. ohne Variable und anderem, was mir das Leben schwer machen könnte......

    Vielen vielen Dank

    Gruß KlaPe
     
  7. #6 ninguno, 13.10.2005
    ninguno

    ninguno Tripel-As

    Dabei seit:
    13.05.2005
    Beiträge:
    162
    Zustimmungen:
    0
    naja eigentlich steht ja eh schon alles oben, aber ...
    Code:
    mkdir ordner1
    cd ordner1
    getit ...
    cd ..
    sleep 300
    mkdir ordner2
    cd ordner2
    getit ...
    cd ..
    sleep 300
    # etc.
    
     
  8. #7 Wolfgang, 13.10.2005
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo

    GNU bash, version 3.00.16(1)-release (i386-pc-linux-gnu)

    P="/Pfad/basis";
    TIMEOUT=300;
    for i in {1..10}; do
    echo "erstelle ${P}$i;
    mkdir ${P}$i;
    sleep $TIMEOUT;
    ..do somewhat
    done

    Eventuell noch prüfen, ob das Verzeichnis erstellt werden konnte
    if [ -d ${P}$i ] ...
    Nur so als grobes Gerüst.
    Für die bash 2.05 dann einfach {1..10} durch $(seq 1 1 10) ersetzen...
    cu Wolfgang
     
  9. KlaPe

    KlaPe Grünschnabel

    Dabei seit:
    12.10.2005
    Beiträge:
    5
    Zustimmungen:
    0
    Vielen Dank für die Antworten,

    aber das von mir erstellte skript bleibt nach Erstellen des ersten ordners "hängen" und garnix geht mehr.

    Wie gesagt, ihr habt es mit einem absoluten anfänger zui tun.

    Ich brauche bitte ein "KOMPLETTES SKRIPT" für die ersten zwei Routinen ohne PARAMETER, SCHLEIFEN und ähnlichen eleganten Lösungen.
    Einfach nur ein Skript mit einer netten Befehlskette, die auch wirkich durchlaufen wird.

    Vielen Dank
     
  10. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  11. #9 Wolfgang, 13.10.2005
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Also wir sind hier eigentlich keine Skriptfabrik. ;)
    Ein wenig Eigeninitiative solltest du schon mitbringen.
    Was sind denn deine Versuche?
    Poste doch mal einen Auszug.
    Die Fehlermeldung, die du oben ( leider ohne deine Codezeilen) gepostet hast, deutet auf einen Syntaxfehler. Ich vermute mal, dass du das Semikolon vor dem do vergessen hast.

    for i in $(seq 1 1 10);do
    if [ -d "/pfad/ordner$i" ]; then
    echo "Ordner existiert schon!";
    else
    mkdir "/pfad/ordner$i";
    fi ; done
    cd "/pfad/ordner$i";
    echo "ich gehe schlafen!";
    sleep 300;
    echo "bin aufgewacht";

    Im Übrigen haben Schleifen nix mit elegant zu tun, sondern sind im Normalfall für sich wiederholende Prozesse die übliche Lösung.
    Zwanzig mal Befehlszeilen hintereinander schreiben ist fehleranfällig und sicher allles andere als zu empfehlen.
    Also lass mal sehen, was du bisher selber versucht hast.
    Gruß Wolfgang
     
  12. #10 Schlaubi_fi.de, 13.10.2005
    Schlaubi_fi.de

    Schlaubi_fi.de Mac OS X User

    Dabei seit:
    22.12.2004
    Beiträge:
    304
    Zustimmungen:
    0
    *schmunzel*

    hast du auch (vorausgesetzt du hast 'sleep 300' in deinem skript verwendet) 300 sekunden abgewartet, bis es wieder weitergeht? denn das skript "schläft" für 300 sek und da sieht es so aus als ob es hängen geblieben wäre *g
     
Thema:

mehrere skripte (z.B. getit) hintereinander ausführen

Die Seite wird geladen...

mehrere skripte (z.B. getit) hintereinander ausführen - Ähnliche Themen

  1. [Gelöst] Suchen und ersetzen mit Hilfe mehrerer Parameter

    [Gelöst] Suchen und ersetzen mit Hilfe mehrerer Parameter: Hallo zusammen, ich bin an einem Punkt angekommen, wo ich nicht mehr weiter komme und hoffe ihr könnt mir weiter helfen. Anbei ein Ausschnitt aus...
  2. Mehrere SSL Vhosts

    Mehrere SSL Vhosts: Hey zusammen, Ich habe zwei verschiedene VHosts mit einem Apache 2.4 am rennen. <VirtualHost *:80> ServerName test1.de DocumentRoot...
  3. Reverse Proxy einrichten für mehrere subdomains über Port 80

    Reverse Proxy einrichten für mehrere subdomains über Port 80: Guten Tag zusammen. Ich habe folgendes Problem. Bei mir laufen 2 Apache-Tomcat Services. Einer auf Port 8880 und einer auf Port 8080. Nun habe...
  4. Problem mit 1er Freigabe und mehreren Ordnern

    Problem mit 1er Freigabe und mehreren Ordnern: Hallo Ich habe auf unseren home Server das Neuste Debian mit der neusten stabilen Samba Version. Ich habe eine Freigabe die die mehrere Ordner...
  5. Artikel: Synergy - Mehrere PCs mit einer Maus steuern

    Artikel: Synergy - Mehrere PCs mit einer Maus steuern: Auf dem Schreibtisch steht oft mehr als ein Monitor, und oft gesellt sich dazu noch ein Notebook. Mit der Client-Server-Anwendung Synergy lassen...