APPENDIX Y:
Script "chk_prtr"
This script will type for you all the Unix commands required to gather all printer-related parameters from the hard drive of any 51 station. (An AP20 version is coming...).
Instead of using several commands (grep, more, bpatch) to gather the printer configuration parameters, the script will do it for you in a few seconds.
Initially you should run it on the station hosting either the printer itself or the COMM Processor where the printer is attached.
If you have trouble printing from stations different from the printer host, run the script also on those stations.
Each station configures a printer according to its point of view. The printer might be a local host in one station and a remote one on others. The commands to configure the same printer will vary depending on those conditions.
Fixing the printer configuration on one station doesn't mean the other stations should be able to print on that printer.
To install it: Create directory /opt/ac/ at the printer host and copy the script into that directory. Type then: chk_prtr , and the report will be produced as an ascii file "Printers" in the same directory.
#!/bin/sh # # chk_prtr # # By: A.Corbera # # Purpose: Get Printer's Port and Software types from files on this station: # 1. /etc/printers (Port Types) # 2. /usr/fox/sp/IIF.prm (Software Types) from System Cfg # 3. /usr/fox/sp/files/PMlbug.CS (Comm files) # for debugging purposes. # cd /opt/ac echo "Getting data from /etc/printers ..." echo "\nReport generated on `uname -n` at: `date`" > Printers echo "\n1) ======== (ALL) PRINTERS FROM /etc/printers ============" >> Printers echo " LP: SoftwTyp: Printer:" >>Printers sort /etc/printers >>Printers echo "Getting data from IIF.prm and IIF.dat ..." echo "\n\n2) ==== (ALL) PRINTER-HOST INFO FROM: /etc/printers AND IIF.prm/IIF. dat =====" >>Printers #echo "Combined data from /etc/printers and IIF.prm/.dat :" #echo "Lpxx Host/Port /etc/printers PortType" >>Printers echo "Lpxx Host/Port /etc/printers IIF.prm/IIF.dat:" >>Printers PRM="/usr/fox/sp/IIF.prm" DAT="/usr/fox/sp/IIF.dat" LPS=`sort /etc/printers | awk '{print $1}'` for x in $LPS do PRTR_SOFT=`grep $x /etc/printers | awk '{print $2}'` sta=`grep $x $PRM | egrep 'P1LN|P2LN|P3LN|P4LN' | awk '{print $2}'` port=`grep $x $PRM | egrep 'P1LN|P2LN|P3LN|P4LN' | awk '{print substr($4,1,2)}' ` IIF_PORT=`awk '{print $2,$4,$6}' $PRM| grep $sta | grep $port | grep DEV | awk '{print $3}'` DAT_PORT=`awk '{print $2,$4,$6}' $DAT| grep $sta | grep $port | grep DEV | awk '{print $3}'` echo "$x: $sta/$port $PRTR_SOFT $IIF_PORT-$DAT_PORT" >> Printers done # echo "Getting data from files for LOCALLY hosted COMM processors ..." COMMS=`awk ' $2 == "101" {print $1}' /usr/fox/sp/hldb` #COMML=`awk ' $2 == "101" {print $1}' /usr/fox/sp/hldb` echo "\n\n3) ======== (LOCALLY HOSTED) COMM PROCESSOR PRINTERS ===============" >>Printers echo "Comm processors in the system, from /usr/fox/sp/hldb: \c" >>Printers echo $COMMS >> Printers echo "Comm Processors hosted by this station ($HOST)" >> Printers for x in $COMMS do echo $x grep $x /usr/fox/sp/sldb | awk ' $2 == "'$HOST'" {print $1}' >> Printers done echo "Port TYPES for Comm Processors hosted by this station from /usr/fox/sp/fil es/PMxxxxxx.CS:" >>Printers ls /usr/fox/sp/files/PM*.CS |grep .CS > /dev/null if [ $? -eq 0 ] then for x in $COMMS do if [ -f /usr/fox/sp/files/PM$x.CS ] then /usr/foxbin/bpatch -d /usr/fox/sp/files/PM$x.CS > z 2>/dev/null P1=`grep 00: z | awk '{print $4}'` P2=`grep 01: z | awk '{print $8}'` P3=`grep 02: z | awk '{print $12}'` P4=`grep 03: z | awk '{print $16}'` echo "$x: P1=$P1\tP2=$P2\tP3=$P3\tP4=$P4" >>Printers fi done else echo "This station does NOT host any COMM processors!" >> Printers fi echo "Getting data for LOCAL DIRECT connected printers ..." echo "\n\n4) ========== (LOCAL) DIRECT CONNECTED PRINTERS (cs_cfg.pars) ======= ====" >>Printers if [ -f /usr/fox/sp/files/cs_cfg.pars ] then echo " LP: Device: Port Type:" >>Printers DIR="/usr/fox/sp/files/cs_cfg.pars" egrep 'NAME|TYPE' $DIR | sed -e 's/=/ = /'|sed -e 's/#/ # /'|awk ' $1 == "LPNAME" {printf "%-0s\t",$3} $1 == "PTNAME" {printf "%-0s\t",$3} $1 == "LPTYPE" {printf "%-0s\n",$3}' >>Printers fi echo "Getting data from files for PCL3 printers ..." echo "\n\n5) ========== FILES FOR PCL3 (HP870/890/895) PRINTERS ===========" >>P rinters ls -l /etc/printscreen.printers >>Printers ls -l /etc/printscreen.options >>Printers echo "\n /etc/printscreen.options :" >>Printers echo "All your direct-connect PCL3 (HP870/890/895) printers should be here!" >>P rinters if [ -f /etc/printscreen.options ] then cat /etc/printscreen.options | grep -v LPxx >>Printers else echo "File does NOT exist!" >>Printers fi echo "\n\n6) ========== /usr/local/local_printer ==========" >>Printers echo "This file should exist ONLY if you have a DIRECT Serial printer." >> Print ers if [ -f /usr/local/local_printer ] then ls -l /usr/local/local_printer >>Printers else echo "File 'local_printer' does NOT exist!" >>Printers fi echo "\n\n7) ========== PRINTER INTERFACES ==========" >>Printers ls -l /etc/lp/interfaces >>Printers echo "\n\n8) ========== SYSTEM PRINTERS (Remote & Local) ==========" >>Printers echo "Printer Type (bsd/s5)" >>Printers lpsystem -l | awk ' /System/ {printf "%-10s ", $2} /Type/ {printf "%5s\n", $2}' | grep LP >>Printers echo "\n\n9) ========== SYSTEM PRINTERS (Remote) ==========" >>Printers echo "System printers, except local one" lpstat -s | grep system | egrep -v default | sort +2 >>Printers echo "\n\n10) ========== OTHER PRINTSCREEN RELATED FILES ==========" >>Printers echo "Note: Lexmark printer requires 'xwd2ps' to be: 57736, Jul 8, 1999\n" >>Pri nters ls -l /usr/fox/wp/bin/xwd2ps >>Printers ls -l /usr/fox/wp/bin/jettool >>Printers ls -l /usr/fox/wp/bin/r2grab >>Printers ls -l /usr/fox/wp/bin/foxwd >>Printers ls -l /usr/fox/wp/bin/foxpr >>Printers ls -l /usr/fox/exten/standard >>Printers ls -l /usr/fox/exten/pjet_graphics >>Printers echo "\n================ THE END =======================" >>Printers echo "This information was saved in current directory as file: Printers" >> Prin ters more Printers