#!/usr/bin/ksh #Script zum Anlegen von Druckern im SAP #Patrick Wessel, 07/2014 #Konstanten TIME=`date "+%Y%m%d%H%M%S"` SCRIPT=$1 WORK=$(pwd) INPUT=$WORK/input.txt OUTPUT=$WORK/output.txt SAPPRINTER="" KOMMENTAR="" HOSTPRINTER="" PRINTERDISABLE="" #Drucker deaktivieren=X SLEEP=60 #Wartezeit Loeschen der Datei SSHSERVERDEV[1]="server1:d01adm:D01:00" SSHSERVERDEV[2]="server2:e01adm:E01:00" SSHSERVERDEV[3]="server3:q01adm:Q01:00" ### Pruefen ob Input File existiert und PRINTERDISABLE setzen [ ! -f $INPUT ] && echo "Es wurde keine Input Datei gefunden. Das Script wird beendet." && exit 1 ### Pruefen ob altes Output File existiert und umbenennen if [ -f $OUTPUT ] then mv $OUTPUT $OUTPUT.old touch $OUTPUT chmod 666 $OUTPUT fi ### Printer Disable parsen [ -f $INPUT.grep ] && rm $INPUT.grep grep '.' $INPUT > $INPUT.grep mv $INPUT.grep $INPUT echo "\n### 1. Druckerdefinitionsdatei generieren ###" case $(grep -v "#" $INPUT | grep PRINTERDISABLE | awk -F= '{print $2}') in X|x) PRINTERDISABLE="X" echo "Die Drucker werden als deaktiviert gekennzeichnet." ;; *) PRINTERDISABLE="" echo "Die Drucker werden als aktiviert gekennzeichnet." ;; esac ### Output Header schreiben echo "VERSION = \"0.1\"\nTIME = \"${TIME}\"\nSYSTEM = \"D01\"\nRELEASE = \"700\"" >>$OUTPUT #Drucker konfiguration parsen und ausgeben cat $INPUT |grep -v PRINTERDISABLE | while read ZEILE do #SAP-Drucker, Drucker und Kommenatar parsen SAPPRINTER="" HOSTPRINTER="" KOMMENTAR="" SAPPRINTER=$(echo ${ZEILE} | awk -F';' '{print $1}') HOSTPRINTER=$(echo ${ZEILE} | awk -F';' '{print $2}') KOMMENTAR=$(echo ${ZEILE} | awk -F';' '{print $3}') echo "Erzeuge Konfiguration fuer SAP Drucker $SAPPRINTER" echo "* DEVICE = {" >>$OUTPUT echo " NAME = \"${SAPPRINTER}\"" >>$OUTPUT echo " PADEST = \"${SAPPRINTER}\"" >>$OUTPUT echo " PATYPE = \"TREIBER\"" >>$OUTPUT echo " PAMODEL = \"TYP\"" >>$OUTPUT echo " PACLASS = \"\"" >>$OUTPUT echo " PAARCHIVER = \"\"" >>$OUTPUT echo " PALANGU = \"D\"" >>$OUTPUT echo " PADISABLED = \"${PRINTERDISABLE}\"" >>$OUTPUT echo " PANOQUERY = \"X\"" >>$OUTPUT echo " PADUPCOPY = \"\"" >>$OUTPUT echo " PADUPLEX = \"\"" >>$OUTPUT echo " PASTORELOC = \"\"" >>$OUTPUT echo " PADFLTUTTL = \"\"" >>$OUTPUT echo " PADFLTSTTL = \"\"" >>$OUTPUT echo " PASYNC = \"X\"" >>$OUTPUT echo " PAMONI = \"\"" >>$OUTPUT echo " PASTANDORT = \"${KOMMENTAR}\"" >>$OUTPUT echo " PAMSG = \"${KOMMENTAR}\"" >>$OUTPUT echo " PAMSSERVER = \"server_D01_00\"" >>$OUTPUT echo " PAMETHOD = \"E\"" >>$OUTPUT echo " PAPROSNAME = \"${HOSTPRINTER}\"" >>$OUTPUT echo " PALOMS = \"PMCPOL\"" >>$OUTPUT echo " PALPRCMD = \"\"" >>$OUTPUT echo " PALPDHOST = \"\"" >>$OUTPUT echo " PALPDPORT = \"0\"" >>$OUTPUT echo " PACONNTIME = \"0\"" >>$OUTPUT echo " PAREADTIME = \"0\"" >>$OUTPUT echo " PATRAYS = \"0\"" >>$OUTPUT echo " PAXSHIFT = \"0\"" >>$OUTPUT echo " PAYSHIFT = \"0\"" >>$OUTPUT echo " PAXSHUNIT = \"MM\"" >>$OUTPUT echo " PAYSHUNIT = \"MM\"" >>$OUTPUT echo " PACRYPTMOD = \"\"" >>$OUTPUT echo " PACRYPTMET = \"\"" >>$OUTPUT echo " PANOVSERVR = \"\"" >>$OUTPUT echo " PAPOOLART = \"\"" >>$OUTPUT echo " PATRACE2 = \"\"" >>$OUTPUT echo " PATRACEF = \"\"" >>$OUTPUT echo " PAPROTDATA = \"\"" >>$OUTPUT echo " PAPROTCMD = \"\"" >>$OUTPUT echo " PAPROTRES = \"\"" >>$OUTPUT echo " PAKEEPFILE = \"\"" >>$OUTPUT echo " CHGNAME1 = \"SAPBENUTZER\"" >>$OUTPUT echo " CHGTSTMP1 = \"${TIME}\"" >>$OUTPUT echo " CHGSAPREL1 = \"700\"" >>$OUTPUT echo " CHGSAPSYS1 = \"D01\"" >>$OUTPUT echo " PADEVGRP = \"\"" >>$OUTPUT echo " COLORPRT = \"\"" >>$OUTPUT echo " PRINTMODE = \"\"" >>$OUTPUT echo " INPUTTRAY = \"\"" >>$OUTPUT echo " PANOCHOICE = \"\"" >>$OUTPUT echo "}" >>$OUTPUT done echo "*** Druckerdefinitionsdatei erfolgreich erzeugt.***" echo "\n### 2. Uebertragung der Druckerdefinitionsdatei und import ins SAP ###" MAXSYSTEME=${#SSHSERVERDEV[*]} echo "Es sind $MAXSYSTEME SAP Systeme fuer die Einrichtung konfiguriert (siehe Scriptheader)." let MAXSYSTEME=MAXSYSTEME+1 SYSZAEHLER=1 while [ $SYSZAEHLER -lt $MAXSYSTEME ] do HOST=$(echo ${SSHSERVERDEV[$SYSZAEHLER]} | awk -F':' '{print $1}') USER=$(echo ${SSHSERVERDEV[$SYSZAEHLER]} | awk -F':' '{print $2}') SYSTEM=$(echo ${SSHSERVERDEV[$SYSZAEHLER]} | awk -F':' '{print $3}') SYSTEMNR=$(echo ${SSHSERVERDEV[$SYSZAEHLER]} | awk -F':' '{print $4}') echo "### Ziel $HOST\nKopiere $OUTPUT auf $HOST..." scp $OUTPUT $HOST:/tmp ssh $HOST "ls -al /tmp/output.txt" echo "\nStarte Druckerimport auf $HOST per Event INSTALL_PRINTER" ssh $HOST "sudo su - $USER -c '/usr/sap/${SYSTEM}/SYS/exe/run/sapevt INSTALL_PRINTER name=${SYSTEM} nr=${SYSTEMNR}'" echo "\nWarte $SLEEP Sekunden bis der JOB fertig ist und loesche $i:/tmp/output.txt" sleep $SLEEP ssh $HOST "rm /tmp/output.txt" echo "*** Druckerimport auf $HOST abgeschlossen. ***\n\n" let SYSZAEHLER=SYSZAEHLER+1 done exit 0