Anzeige:
Ergebnis 1 bis 9 von 9

Thema: dateien kopieren und ...

  1. #1
    Registrierter Benutzer
    Registriert seit
    09.01.2001
    Beiträge
    9

    Question dateien kopieren und ...

    hallo zusammen

    ich habe ein problem und brauche eine lösung dafür.
    ich habe in script programmierung nicht viel erfahrung.

    ich habe einen linux suse 7.2 und eine ibm as/400 im netzwerk.
    auf der as/400 lauft ein unter aix ein samba server.
    ein verzeichnis ist freigegeben.

    auf der as/400 werden in dem freigegebenen verzeichnis von
    der as/400 dateien angelegt. anzahl der dateien 1 bis xxxxxxxx.
    die datei-namen sind von der as/400 vergeben.
    auf der as/400 können keine änderungen vorgenommen werden

    so nun das problem

    auf der linux maschine möchte ich im cron eine script eintragen
    was folgendes macht.

    1. sich zugriff auf das verzeichnis der as/400 beschaft.
    (ip der as/400 "10.10.10.140" freigabename "uebergabe")

    2. die datei bzw. die dateien auf die linux maschine kopieren.
    (ob dateien bzw anzahl der dateien jeden tag verschieden)

    3. die kopierten dateien auf der as/400 löschen.

    4. die dateien umbenennen in 1.dat 2.dat 3.dat usw.
    wichtig! die dateinamen sollen bei jedem aufruf weiter
    gezählt werden.
    (zähler abspeichern in eine datei)

    5. zugriff auf die as/400 wieder freigeben.

    es brauchen keine meldungen auf dem bildschirm erscheinen.
    (höchstens zum testen)
    am liebsten einen meldung in einer log datei speichern
    ob alles geklappt hat oder ein fehler entstanden ist.

    ich hoffe mir kann jemand helfen
    dank im voraus hjn

  2. #2
    Registrierter Benutzer
    Registriert seit
    30.12.2001
    Beiträge
    444
    mal ein grober, ausbaufähiger Vorschlag:

    - Temporäres Verzeichnis erstellen
    - Samba-Freigabe einhängen(mount -t smbfs -o user=USERNAME,password=THEPASSWORD //as400/share /tmpdir)
    - höchste nummer der Datei (###.dat) im Zielverzeichnis herausfinden
    Code:
    		MAX=0
    		for FILE in $(ls $DEST_DIR/*.dat)
    		do
    		NR=$(echo $FILE|cut -f1 -d.)
    		[$NR -gt $MAX] && MAX=$NR
    		done
    - neue Dateien verschieben
    Code:
    	
                    ((FILE_NR=$MAX+1))
    		for FILE in $(ls /tmpdir/*)
    		do
    		mv /tmpdir/$FILE $DEST_DIR/${FILE_NR}.dat
    		((FILE_NR=$FILE_NR+1))
    		done
    - Samba Verzeichnis aushängen
    - Temporäres Verzeichnis löschen

    ich würde vorschlagen bis es funktioniert erst mal mit einem Testverzeichnis mit Testdateien auszuprobieren,
    nicht das irgendetwas verloren geht.
    Fehlerkontrollen sind da natürlich noch keine besonderen drin, mal abgesehen davon das man die Fehler der aufgerufenen Befehle durch anhängen von >>/var/adm/as400-copy.log 2>>&1 an den Scriptaufruf protokollieren kann

    Gruß
    fork
    Geändert von fork (13-01-2002 um 15:13 Uhr)

  3. #3
    Registrierter Benutzer
    Registriert seit
    09.01.2001
    Beiträge
    9
    besten dank
    der vorschlag war genau das richtige.

    ich habe schon ein richtig gutes script drumrum gebastelt.

    nur eines lauft bei mir noch nicht
    "höchste nummer der Datei (###.dat) im Zielverzeichnis herausfinden"

    das ergebnis ist immer null
    DEST_DIR ist bei mir "/update/daten"

    gruß
    hjn

  4. #4
    Registrierter Benutzer
    Registriert seit
    30.12.2001
    Beiträge
    444
    - schon mal "set -x" eingebaut?

    - script mal hier rein stellen

  5. #5
    Registrierter Benutzer
    Registriert seit
    09.01.2001
    Beiträge
    9
    hallo

    verstehe ich nicht, was ist damit gemeint
    "- schon mal "set -x" eingebaut?"
    "- script mal hier rein stellen"

    gruß
    hjn

  6. #6
    Senior Mitglied
    Registriert seit
    23.08.1999
    Beiträge
    132
    "set -x" ist der Shell-Debugger er zeigt Befehle unmittelbar nach Auflösung der Variablennamen, Auflösung generierter Dateinamen, Auflösung von Befehlssubstitutionen (also sowas: $(...) oder ` ...` ) an. Ist irgendwas falsch ersetzt worden sieht man das hier. Abschalten geht mit "set +x"

    "- script mal hier rein stellen"
    ...damit ich es sehen kann, evtl. Fehler feststellen&ansprechen kann

  7. #7
    Registrierter Benutzer
    Registriert seit
    09.01.2001
    Beiträge
    9
    hallo

    das script
    -----------------------------------------------
    DEST_DIR=/update/daten
    MAX=0
    for FILE in $(ls $DEST_DIR/*.dat)
    do
    NR=$(echo $FILE|cut -f1 -d.)
    [$NR -gt $MAX] && MAX=$NR
    done
    ----------------------------------------------

    ausgabe mit set -x
    ...
    ++ echo /update/daten/1000.dat
    ++ cut -f1 -d.
    + NR=/update/daten/1000
    + '[/update/daten/1000' -gt '0]'
    ./holen.sh: [/update/daten/1000: No such file or directory

    ++ echo /update/daten/1001.dat
    ++ cut -f1 -d.
    + NR=/update/daten/1001
    + '[/update/daten/1001' -gt '0]'
    ./holen.sh: [/update/daten/1001: No such file or directory
    ...

    gruß
    hjn

  8. #8
    Registrierter Benutzer
    Registriert seit
    25.12.1999
    Ort
    Stuttgart
    Beiträge
    259
    Code:
    DEST_DIR=/update/daten
    MAX=0
    
    for FILE in $(ls $DEST_DIR/*.dat)
      do
        NR=$(basename $(echo $FILE | cut -f1 -d.))
        [ $NR -gt $MAX ] && MAX=$NR
    done
    Gruß micha
    IRC: irc.euirc.net #tux

  9. #9
    Registrierter Benutzer
    Registriert seit
    09.01.2001
    Beiträge
    9
    besten dank an alle

    es läuft nun einwandfrei

    jetzt werde ich versuchen etwas sicherheit
    (fehlermeldungen) in das script einzubauen.

    gruß
    hjn

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •