190 likes | 323 Views
Tips & Tricks im MPE / iX. 2. Bad Dürkheimer HPe3000 MPE/iX Forum 4. September 2001 Pr ä sentation von Otto Neckermann Softwarebüro Dr. Neckermann Gunzenhausen. POSIX auf der HPe3000. Posix.1 ===> System Calls Posix.2 ===> Posix Shell
E N D
Tips & TricksimMPE /iX 2. Bad Dürkheimer HPe3000 MPE/iX Forum 4. September 2001 Präsentation von Otto Neckermann Softwarebüro Dr. Neckermann Gunzenhausen
POSIX auf der HPe3000 • Posix.1 ===> System Calls • Posix.2 ===> Posix Shell • Voraussetzung für Posix .1 und Posix 2: ===> HFS Hierarchisches File System >> Tips & Tricks im MPE/iX <<
MPE Accountstruktur ohne HFS >> Tips & Tricks im MPE/iX <<
Accountstruktur integriert ins HFS >> Tips & Tricks im MPE/iX <<
HFS Features • Directories auf allen hierarchischen Leveln • Files auf allen hierarchischen Leveln • Neue Konventionen für Dateinamen und Directorynamen • Dateinamenqualifizierung “von oben nach unten” • Neue Datei Typen • Bytestream Files • Linked Files • Device-Files • Pipes >> Tips & Tricks im MPE/iX <<
Neue MPE Kommandos für HFS • :NEWDIR | :PURGEDIR | :LISTDIR • Anlegen und Verwalten von Posix Directories • :CHDIR | :SHOWVAR HPCWD • wechseln in ein Posix Directory • :FINDFILE | :FINDDIR • sucht Files/Directories unterhalb eines Directory • :LISTFILE ! • Ersetzt altes :LISTF • :NEWLINK | :PURGELINK • Definieren und Löschen eines Links auf eine Datei >> Tips & Tricks im MPE/iX <<
Integration HFS und MPE Kommando Interpreter • (Fast) alle MPE Kommandos können HFS Files nutzen • Erforderlich hierfür: • Dateinamen nach HFS-Syntax mit Posix Pfadnamen angeben, d.h. die Namen müssen mit / (absoluter Pfad) oder ./ oder ../ (relativer Pfad) beginnen und “von oben nach unten” qualifiziert werden. • Gross-Kleinschreibung strikt beachten! • Einschränkungen: • einige alte CM Utilities (z.B. EDITOR und FCOPY) • :LISTF ist zu ersetzen durch :LISTFILE !!! >> Tips & Tricks im MPE/iX <<
Nutzung von HFS Directories/Files (1) • Archivierung von Dateien • Dateien abspeichern mit Zeitstempel • !SETVAR LOGFILE “X” + LFT(HPDATETIME,15) !COPY TRAFILE, . /!LOGFILE (ergibt z.B. ==> ./X200109041150123) >> Tips & Tricks im MPE/iX <<
Nutzung von HFS Directories/Files (2) • Archivierung von Joblisten • Tagesarchive anlegen • Joblisten mit sprechenden Namen ins Tagesarchiv ablegen >> Tips & Tricks im MPE/iX <<
#Script XCPJOBL zum duplizieren von Joblisten #Festlegen und ggfls,. Neuanlegen des Copy Archives: setvar archdir "/tmp" + "/!hpyyyymmdd” if finfo(archdir,0) = FALSE newdir !archdir endif #Definieren der Filenamen: setvar jobspfile "!hpspoolid.OUT.HPSPOOL" setvar arcspfile "!archdir/!jobspfile-!hpuser.!hpaccount” #liefert etwa: /tmp/20010904/o4711-MGR.BUCHHLTG #Generieren und Streamen des Copyjobs: echo $job xcpjobl,!hpuser.!hpaccount;inpri=12 >>tempjob echo $pause job=#J!hpjobnum >>tempjob echo $copy !jobspfile,!arcspfile >>tempjob echo $altsec !arcspfile;addpair=(r:!hpuser.!hpaccount) >>tempjob echo $set stdlist=delete >>tempjob echo $eoj >>tempjob stream tempjob,$ >> Tips & Tricks im MPE/iX <<
Posix Shell Kommandos • Es gibt ca. 200 Posix Shell Kommandos • ca. 50 interne “built-in” Kommandos und Kontrollbefehle • ca. 150 “nicht eingebaute” Utilities, die die Posix Shell als externe NMPRG-Programme aufruft • Die externen Utilities sind als “normale” MPE Programme (native Mode) implementiert • Sie befinden sich in der Gruppe HPBIN.SYS (mit Link aus dem Directory /bin/) >> Tips & Tricks im MPE/iX <<
Aufruf von Posix Kommandos durch MPE Command Interpreter • Aufruf als “normales” Programm der Gruppe HPBIN.SYS (oder alternativ mit Link: /bin/….) • Parameter werden beim Programmaufruf als Infostring mitgegeben (oder einfach in Hochkomma angefügt) • Standard-IO-Umlenkung (>, <) möglich • Funktionalität bei Aufruf durch den CI oft eingeschränkt oder sogar unmöglich • es fehlen die Umgebungsvariablen der Posix Shell • keine “Vorverarbeitung” durch die Posix Shell • Programm setzt Variable CJCW als Returncode • Tipp: HPPATH um “,HPBIN.SYS” erweitern! >> Tips & Tricks im MPE/iX <<
Nutzung von Posix Shell Utilities (1) Datei Kommando >diff • >diff • zeigt Unterschiede zwischen zwei Dateien • sehr viel besser als FCOPY …..;COMPARE • Beispiele (alle tun das Gleiche): • diff.hpbin.sys “./SOURCE1 ./SOURCE2” (Parameter in Hochkomma, Grossschreibung beachten!) • /bin/diff “./SOURCE1 ./SOURCE2” (Kleinschreibung des Kommandos beachten!) • DIFF.HPBIN.SYS “SOURCE1 SOURCE2” (HFS-Syntax-Trigger . / kann manchmal weggelassen werden) >> Tips & Tricks im MPE/iX <<
Nutzung von Posix Shell Utilities (2) Datei Kommando >grep • >grep • sucht in einer oder mehreren Eingabedateien nach Zeichenfolgen • kann dabei “reguläre Ausdrucke” verwenden (für Spezialisten!) • Eingabedatei kann per Eingabeumlenkung angesprochen werden • Aufruf vom MPE aus erlaubt nur eine einzige Eingabedatei (keine Wildcards erlaubt) >> Tips & Tricks im MPE/iX <<
>grep: Suche nach Job Aborts: purge spfiles,temp >$null build spfiles;temp;msg listspf o@;seleq=[filedes=$stdlist] >spfiles while finfo("spfiles",19)>0 input zeile <spfiles if lft(zeile,1) = "#" setvar spfname "/HPSPOOL/OUT/" + rtrim(str(zeile,2,8)) grep.hpbin.sys "REMAINDER OF JOB FLUSHED." <!spfname >$null if cjcw = 0 echo Job aborted: echo !zeile endif endif endwhile >> Tips & Tricks im MPE/iX <<
>grep und >wc: Feststellen, ob ein Job bereits aktiv ist Script XRUNONCE: setvar myjob "!hpjobname,!hpuser.!hpaccount" purge yymj@,temp >$null showjob job=!myjob;EXEC >yymj grep.hpbin.sys "!myjob" <yymj >yymjgrep wc.hpbin.sys "-l" <yymjgrep >yymjanz input anzahl <yymjanz setvar anzahl !anzahl if anzahl > 1 echo !myjob ist !anzahl mal angemeldet! if "!hpjobtype"= "J" echo = wir verabschieden uns..... eoj endif endif >> Tips & Tricks im MPE/iX <<
Nutzung von Posix Shell Utilities (3) einfache Datei Kommandos • >cp,mv und >rm • ähnlich den MPE Kommandos :COPY, :RENAME und :PURGE • jedoch wesentlich mächtiger: Sie können auch Files bearbeiten, die gerade im Zugriff sind: Es gibt keinen File System Error 90 (exclusive violation)! • Nutzbar zum Austauschen von Programmen, UDC Files, Programmbibliotheken (XL’s), Form Files etc. im laufenden Betrieb! >> Tips & Tricks im MPE/iX <<
Nutzung von Posix Shell Utilities (4) Archivierung mit >tar • >tar • Tape Archiv Utility (auch für Platten Archive) #Beispielscript XMPETAR für MPE Aufruf von TAR: parm fileset=./@, archiv=tarfile purge yylf6@,temp >$null listfile !fileset ,6 >yylf6 cut.hpbin.sys '-f2 -d " "' <yylf6 >yylf6cut tar.hpbin.sys "-cvf !archiv -” <yylf6cut >> Tips & Tricks im MPE/iX <<
Zusammenfassung und Ausblick • Nutzung des HFS mit dem MPE Kommando Interpreter • Nutzung von einzelnen Posix Kommandos als “standalone” Utilities im MPE • Websites mit MPE-Scripts: • http://www.fourdiamonds.net/hp3000/commandfiles.html • http://jazz.external.hp.com/src/scripts • Literatur: • MPE/iX System Administration Handbook John Diercks, Prentice Hall, 2002, ISBN: 0-13-030540-5 >> Tips & Tricks im MPE/iX <<