Migrar impresoras de HPUX a Linux (I)
Se tiene que migrar todo el servicio de impresión de máquinas hpux, a máquinas linux. Como había más de 600 impresoras, se decidió automatizar el proceso ya que todas las impresoras se tenían que dar de alta en 14 linux contando desarrollo, preproducción y producción.
El proceso consiste en:
1. Exportar las impresoras del hpux
2. Importar las impresoras en un linux
3. Distribuir la configuración a los demás linux
La configuración del sistema de impresión nada tiene que ver entre hpux y Linux por lo que se tenía que hacer algún tipo de script para luego leerlo desde los Linux.
Para exportar la configuración del spooler de impresión en hpux, se hace de la siguiente manera:
/usr/sam/lbin/lpmgr -S -xsavedir=/var/sam
Esto nos exportará toda la configuración al directorio que le indiquemos. Pero por algún motivo al hacer esto, borra el /var/sam por lo que la exportación la hacemos a través del propio sam de la siguiente manera:
Sam > Printers and plotters > LP spooler > Save/Restore Spooler Configuration > Actions > Save Spooler Configuration
Esto nos deja toda la configuración exportada bajo /var/sam/lp
Una vez que tenemos todos los ficheros de configuración exportados, tendremos que definir que impresoras son del tipo Jetdirect y cuales imprimen a través de algún tipo de servidor de impresión.
Para eso os pongo el siguiente script. Tened en cuenta que no tiene control de errores de ningún tipo ya que solo se va a usar una vez, solo saca un fichero con el tipo de impresora ip servidor y cola. Todos los datos que necesitaremos luego para importarlo en los linux estarán en el fichero que genere dicho script:
#!/usr/bin/ksh
# Exportacion de impresoras hpux en el formato:
# Jetdirect: NETWORK,NOMBRE,IP
# Servidor : REMOTE,NOMBRE,SERVIDOR,COLA
FECHA=`date +%Y%m%d`
LOGFILE=$(echo “impresoras.$FECHA.txt”)
export LOGFILE#Funciones
#########################function jetdirect {
#Saca las impresoras de jetdirect
echo “Exportando las impresoras de tipo Jetdirect…”
for IMP in $(grep “PERIPH=” /var/sam/lp/interface/* |grep -v “MODEL”) do
PRINTER=$(echo $IMP | cut -d: -f 1 | cut -d/ -f 6)
IP=$(echo $IMP | cut -d= -f 2)
echo “NETWORK,$PRINTER,$IP” >> $LOGFILE done }function remote {
# Saca las impresoras que imprimen a través de servidor remoto
echo “Exportando las impresoras de tipo servidor…”
cat /var/sam/lp/lpinfo |grep -i remote | while read LINE do
PRINTER=$(echo $LINE | awk -F : ‘{print $1}’)
SERVER=$(echo $LINE | awk ‘{print $NF}’)
COLA=$(echo $LINE | awk -F : ‘{print $3}’| awk ‘{print $1}’)
echo “REMOTE,$PRINTER,$SERVER,$COLA” >> $LOGFILE done }# Main program
#######################
#Exportamos la configuración de las impresoras en el mismo directorio
jetdirect
remote
echo “Fichero $LOGFILE creado”
Ahora ya tenemos exportadas las impresoras que teníamos en el hpux en un formato legible.
La importación y distribución, en el siguiente artículo