Frage : Shell-Skript Unix-, zum von scp über Rückssh Tunnel zu vereinfachen


Ich muss scp von einigen Unix-(HP-UX u. Linux) Bedienern zu einem engagierten tun
PC auf einer häufigen Basis über Tcp2222.

So auf jenen ÜberUnix-Servern ein Dutzend, würde ich herausgeben:
  scp - source_file_on_Unix P2222 administrator@localhost: /g/temp

wo - P2222 ist, scp über Tcp2222 kopieren zu lassen während /g/temp
ist der Antrieb u. das Verzeichnis auf dem PC.  Ich benötige ein Shell-Skript, nenne es ncp
um zu vereinfachen/den Befehl verkürzen (wie ich häufig dieses schreiben muss
scp Befehl) so, dass, ich gerade schreiben muss:

  ncp file1 file2 fileN PC: /x/d

hingegen kann file1, file2,…, fileN bis 12 Quellakten sein (Bediener IE-0Unix (scp erlaubt mehrfaches Quellakten u. als der Index ermittelte
PC:  er ersetzt „PC: “ mit „administrator@localhost: “ während x ist
fahren, das ich spezifizieren kann (sein können c-Antrieb, thumbdrive f-Antriebsie oder a
abgebildetes Laufwerk des Netzes auf dem PC) während d der ZielVerzeichnisname ist
auf dem PC.  Die Zieldateinamen nehmen die Quelldateinamen an

Antwort : Shell-Skript Unix-, zum von scp über Rückssh Tunnel zu vereinfachen

Version wird voll Datenprüfung:

#! /bin/bash
Funktion readVal () {
       wenn zutreffend; tun
               Echo - n „$1“
               val lesen
               [- n „$2“] && [- z „$val“] && val= " $2“ && Bruch;
               wenn eval „$3“; dann
                       Bruch;
               FI
               eval Echo „$4“
       getan
}

Echo „ncp v1.0 durch rumi“
readVal „kopieren Sie gesamtes Verzeichnis/Faltblatt? (y/N)“ „n“ „[[„$val“ =~ y|n|Y|N]]“ „setzte y oder N.“
Fall „$val“ innen
       Y|y)
               readVal „Quellverzeichnis eintragen: “ "" „[- d-„$val“]“ „Verzeichnis \ „$val \“ existiert nicht. Versuchen noch einmal.“
               params= " - r $val "
               ; ;
       N|N)
               i=1
               wenn zutreffend; tun
                       readVal „Quelle file$i eintragen: “ „existiert _“ „[- f „$val“]“ „Akte \ „$val \“ nicht. Versuchen noch einmal.“
                       Fall „$val“ innen
                               „_“)
                                       Bruch;
                                       ; ;
                               *)
                                       params= " $params \ „$val \ ""
                                       i=$ (($i+1))
                                       ; ;
                       esac
               getan
               ; ;
esac

readVal „Bestimmungsort-Antrieb u. -faltblatt betreten (z.B.: /c/temp-Format): “ "" „[[„$val“ =~ /./. *]]“ „sollte Format \ „zu sein /c/temp \“. Versuchen noch einmal.“

widerhallen „, scp durchführend - P2222 $params administrator@localhost: $val…“
scp - P2222 $params administrator@localhost: $val



rgds
rumi
Weitere Lösungen  
 
programming4us programming4us