miércoles, 17 de marzo de 2010

Quitar password a un PDF

A veces tenemos un PDF protegido con una contraseña pero:
* Sabemos que tarde o temprano la olvidaremos
* Nuestro dispositivo móvil no es capaz de abrirla
* Nos molesta teclearla


Propongo que utilicemos ghostscript para crear un nuevo PDF sin contraseña. Ejemplo con el fichero "fichero.pdf" protegido por la contraseña "clave"


gs -sPDFPassword=clave -sDEVICE=pdfwrite -dNOPAUSE -sOutputFile=fichero-sinclave.pdf fichero.pdf


Todo esto, claro está, si no quebrantamos ninguna ley.

Comandos EMC Celerra NS80G

Lo normal cuando tienes un Celerra y no terminas de aprenderte los comandos es que sufres la interfaz web y además no puedes hacer scripts. Eso tiene una fácil solución. El fichero /nas/log/nas_log.al contiene todos los comandos que lancemos desde el shell, el equivalente a la operación desde la interfaz web y los comandos internos.


2010-03-17 11:48:03.349 db:201:16987:E: fs_ckpt ckpt_fs_2 -refresh
2010-03-17 11:48:09.532 db:201:17550:S: fs_copy -start ckpt_fs_2 fs_2 -option convert=no,monitor=on
2010-03-17 11:48:13.436 db:201:17550:E: fs_copy -start ckpt_fs_2 fs_2 -option convert=no,monitor=on
2010-03-17 11:48:30.490 db:0:18223:S: /nas/sbin/rootfs_copy -abort 611_CK200000000000000 -timestamp
2010-03-17 11:48:31.197 db:0:18223:E: /nas/sbin/rootfs_copy -abort 611_CK2000000000000000 -timestamp


Tras la marca de tiempo y el identificador de proceso encuentras "S" o "E" que es Start y End respectivamente. Nos permitirá calcular la duración de los comandos.

Observa que también sirve para analizar a posteriori qué ha podido ocurrir si algo va mal o ver qué ejecutan desde el servicio técnico cuando pones una incidencia.

martes, 23 de febrero de 2010

Link Aggregation/Bonding AIX

Problema: queremos hacer una agregación de 2 interfaces de un Blade con VIOS. El chasis es un BladeCenter H y el blade un JS22.
Tenemos una versión de VIOS 2.1.0

Hemos hecho una identificación previa de ent0 y ent3 viendo el tráfico que les llega con tcpdump.

1.- Creamos la agrecación de enlace
$ mkvdev -lnagg ent0,ent3
ent8 Available

2.- Importante la MAC alternativa
$ chdev -dev ent8 -attr use_alt_addr=yes
ent8 changed
$ chdev -dev ent8 -attr alt_addr=0x000000123456
ent8 changed
$ chdev -dev ent8 -attr mode=8023ad
ent8 changed


Vemos un poco más de detalle (ahora como root):
$ oem_setup_env

# lsdev -Cc adapter | grep ent
ent0 Available Logical Host Ethernet Port (lp-hea)
ent1 Available Logical Host Ethernet Port (lp-hea)
ent2 Available 06-20 Gigabit Ethernet-SX PCI-X Adapter (14106703)
ent3 Available 06-21 Gigabit Ethernet-SX PCI-X Adapter (14106703)
ent4 Available Virtual I/O Ethernet Adapter (l-lan)
ent5 Available Virtual I/O Ethernet Adapter (l-lan)
ent6 Available Virtual I/O Ethernet Adapter (l-lan)
ent7 Available Virtual I/O Ethernet Adapter (l-lan)
ent8 Available EtherChannel / IEEE 802.3ad Link Aggregation

# lsattr -El ent8
adapter_names ent0,ent3 EtherChannel Adapters True
alt_addr 0x000000123456 Alternate EtherChannel Address True
auto_recovery yes Enable automatic recovery after failover True
backup_adapter NONE Adapter used when whole channel fails True
hash_mode default Determines how outgoing adapter is chosen True
mode 8023ad EtherChannel mode of operation True
netaddr 0 Address to ping True
noloss_failover yes Enable lossless failover after ping failure True
num_retries 3 Times to retry ping before failing True
retry_time 1 Wait time (in seconds) between pings True
use_alt_addr yes Enable Alternate EtherChannel Address True
use_jumbo_frame no Enable Gigabit Ethernet Jumbo Frames True


Y ahora configuramos (no persistente) la interfaz para ver si funciona:

# ifconfig en8 192.168.1.11 netmask 255.255.255.0

Para comprobarlo podemos ir a los switches del BladeCenter y deshabilitar alternativamente los puertos internos INTX correspondientes de nuestro blade para ver cuando se pierde el "ping".

martes, 16 de febrero de 2010

Problema con el VG altinst_rootvg

Al intentar crear un disco alternativo, nos damos cuenta de que en otra ocasión al hacerlo eliminamos el disco sin exportar el VG altinst_rootvg. Los síntomas son estos.

1.- Nos dice que el "mkvg" no puede crear el mismo device
# alt_disk_install -O -C -B hdisk3
+-----------------------------------------------------------------------------+
ATTENTION: calling new module /usr/sbin/alt_disk_copy. Please see the alt_disk_copy man page and documentation for more details.
Executing command: {/usr/sbin/alt_disk_copy -O -B -d "hdisk3"}
+-----------------------------------------------------------------------------+
Calling mkszfile to create new /image.data file.
Checking disk sizes.
Creating cloned rootvg volume group and associated logical volumes.
0505-102 alt_disk_install: mkvg has returned an error.
0516-360 /usr/sbin/mkvg: The device name is already used; choose a
different name.

2.- Nos lo encontramos definido
# lsvg
rootvg
altinst_rootvg

3.- No podemos exportarlo porque falta el disco
# exportvg altinst_rootvg
0516-894 exportvg: Warning, cannot remove volume group altinst_rootvg from device configuration database.

SOLUCION:
La opción "-X" nos limpia los subproductos pendientes de este tipo:

# alt_disk_install -X
+-----------------------------------------------------------------------------+
ATTENTION: calling new module /usr/sbin/alt_rootvg_op. Please see the alt_rootvg_op man page and documentation for more details.
Executing command: {/usr/sbin/alt_rootvg_op -X }
+-----------------------------------------------------------------------------+
Bootlist is set to the boot disk: hdisk0 blv=hd5

LISTO!!!
# lsvg
rootvg

jueves, 14 de enero de 2010

Convertir cualquier documento a PDF desde un Windows

Lógicamente existen impresoras PDF y piezas de software que hacen esto de un solo paso. Aquí se da una solución de emergencia y gratuíta.

Necesitamos una impresora postcript (nos la regala Microsoft) y un conversor postcript a PDF. La secuencia será imprimir a postscript en un fichero y posteriormente convertirlo a PDF con ghostscript.

1.- Descargamos e instalamos GPL ghostscript 8.64 o similar de http://pages.cs.wisc.edu/~ghost/doc/GPL/gpl864.htm

2.- Desde el panel de control, en Impresoras nos agregamos una impresora local (inexistente) postscript (PS) a color. Por ejemplo, "Apple Laserwriter 12/640 PS". Es importante que cuando nos pregunte el tipo de puerto seleccionemos "FILE:" del desplegable.

3.- Abrimos el documento que nos interesa y procedemos a imprimirlo seleccionando esa impresora. Nos pedirá el nombre de un fichero y le ponemos por ejemplo "c:\factura".

4.- Nos desplazamos a directorio donde está instalado el ghostscript. En mi caso C:\Archivos de programa\gs\gs8.63\bin.

5.- Ejecutamos el sencillo comando:

gswin32c.exe c:\factura.prn -sOutputFile=c:\factura.pdf -sDEVICE=pdfwrite -dBATCH -dNOPAUSE

6.- En c:\factura.pdf está nuestro oscuro objeto del deseo.

Voy a decir una tontería, pero para el siguiente documento que nos urja pasar a PDF solo repetiremos desde el paso 3.