Sunteți pe pagina 1din 107

ndice:

1.-Introduccin.............................................................................................................................................................. 6 2.-Terminales virtuales.................................................................................................................................................. 6 3.-Configuracin X........................................................................................................................................................ 6 3.1.-Archivos........................................................................................................................................................... 6 3.2.-Gestor de ventanas/aplicaciones........................................................................................................................ 7 3.3.-Arranque de aplicaciones con las X.................................................................................................................. 8 3.4.-Arranque de las X sin que pida clave ............................................................................................................... 8 3.5.-Salvapantallas / pantalla en negro...................................................................................................................... 8 3.6.-Servidor X en Windows.................................................................................................................................... 8 3.7.-Matar el servidor X........................................................................................................................................... 8 3.8.-Cambio de resolucin X.................................................................................................................................... 8 3.9.-Activar/mapear una tecla en X.......................................................................................................................... 9 3.10.-Captura de pantallas........................................................................................................................................ 9 3.10.1.-ksnapshot................................................................................................................................................ 9 3.10.2.-ImageMagick.......................................................................................................................................... 9 3.11.-Visores de imagen......................................................................................................................................... 10 3.11.1.-gthumb.................................................................................................................................................. 10 3.11.2.-xv.......................................................................................................................................................... 10 3.11.3.-Kuickshow............................................................................................................................................ 10 3.12.-Fuentes en X: XFT........................................................................................................................................ 10 3.13.-Configuracin de varios gestores de ventanas............................................................................................... 10 3.13.1.-Configuracin de KDE......................................................................................................................... 10 3.13.2.-Configuracin bsica de AfterStep....................................................................................................... 11 3.13.3.-Configuracin de icewm....................................................................................................................... 11 3.14.-xhost; arrancar aplicaciones grficas desde root........................................................................................... 12 4.-Gestores de arranque............................................................................................................................................... 13 4.1.-Parmetros del ncleo en el arranque............................................................................................................. 13 4.2.-LILO............................................................................................................................................................... 13 4.3.-GRUB............................................................................................................................................................. 14 4.3.1.-Recuperacin de GRUB......................................................................................................................... 15 5.-Gestin de usuarios................................................................................................................................................. 16 5.1.-Creacin de usuarios con pasword.................................................................................................................. 16 5.2.-Su sin pasword................................................................................................................................................ 16 6.-Gestin de paquetes................................................................................................................................................. 17 6.1.-RPM................................................................................................................................................................ 17 6.1.1.-Ultimos paquetes instalados................................................................................................................... 17 6.1.2.-Descripcin de paquetes RPM................................................................................................................ 17 6.1.3.-Nombre completo de paquetes RPM de 64 bits...................................................................................... 17 6.2.-APT-GET / DPKG / SYNAPTIC.................................................................................................................... 17 6.2.1.-Instalacin de acrordr............................................................................................................................. 18 6.2.2.-Aadir repositorio de software a Ubuntu............................................................................................... 18 6.3.-YUM............................................................................................................................................................... 18 6.3.1.-Aadir el cdrom como repositorio.......................................................................................................... 18 6.3.2.-Evitar actualizacin de un rpm concreto................................................................................................. 18 6.3.3.-Instalar grupo de paquetes...................................................................................................................... 18 6.3.4.-Crear repositorio adicional..................................................................................................................... 18 6.4.-Para saber a qu disco corresponde un /dev.................................................................................................... 19 6.5.-Para aadir discos como dispositivos raw....................................................................................................... 19 6.6.-Espacio libre en discos.................................................................................................................................... 19 6.7.-Borrado de la tabla de particiones de un disco ............................................................................................... 19 6.8.-Ext3 y optimizacin del acceso....................................................................................................................... 19 6.9.-Lectura de la tabla de particiones de un disco................................................................................................. 20 6.10.-Instalacin de Linux: configuracin del almacenamiento..............................................................................20 6.11.-Discos........................................................................................................................................................... 20 6.12.-Conceptos...................................................................................................................................................... 20 6.13.-Manejo de particiones................................................................................................................................... 21 6.13.1.-Creacin y borrado de particiones........................................................................................................ 21 6.13.2.-Creacin de una particin de intercambio (Swapping).........................................................................21 6.13.3.-Creacin de un sistema de archivos...................................................................................................... 22 6.13.4.-Modificacin de una particin o sistema de archivos...........................................................................22 6.13.5.-PARTED.............................................................................................................................................. 22 25/09/02 1

6.13.6.-MONTAJE DE SISTEMAS DE ARCHIVOS...................................................................................... 23 6.13.7.-Montaje de un sistema de archivos FAT para compartir entre sistemas y usuarios ..............................23 6.13.8.-Montaje de sistema de archivos NFS.................................................................................................... 24 6.14.-LVM............................................................................................................................................................. 25 6.14.1.-Activar el flag de clster...................................................................................................................... 26 6.14.2.-Recuperar un PV cuya cabecera est corrupta...................................................................................... 26 6.14.3.-Errores en el VG................................................................................................................................... 27 6.15.-Extender un sistema de archivos................................................................................................................... 27 6.15.1.-Ejemplo:............................................................................................................................................... 27 6.15.2.-Reducir sistema de archivos................................................................................................................. 28 6.16.-Mover un disco fuera de un Volume Group.................................................................................................. 28 6.17.-Liberar discos de un VG............................................................................................................................... 28 6.18.-Montaje de discos USB................................................................................................................................. 29 6.19.-Raid software................................................................................................................................................ 29 6.20.-Etiquetar un sistema de archivos................................................................................................................... 30 6.21.-9. Controlling the SCSI Command Timer and Device Status: timeout SCSI................................................31 7.-SAN......................................................................................................................................................................... 31 7.1.-Drivers multipath en Aix/Linux...................................................................................................................... 31 7.2.-Tarjetas HBA.................................................................................................................................................. 32 7.3.-Informacin de HBAs..................................................................................................................................... 32 7.3.1.-Tipo de tarjeta......................................................................................................................................... 32 7.3.2.-Nivel de firmware................................................................................................................................... 32 7.3.3.-Estado..................................................................................................................................................... 32 7.4.-Caractersticas de un dispositivo SCSI........................................................................................................... 32 7.5.-Nmero mximo de LUN,s............................................................................................................................. 32 7.6.-Escaneo de la SAN.......................................................................................................................................... 33 7.7.-Asignacin de discos de fibra......................................................................................................................... 33 8.-Multipath de SAN................................................................................................................................................... 33 8.1.-Rootvg en multipath........................................................................................................................................ 33 8.2.-Multipath con Device Mapper/1...................................................................................................................... 34 8.2.1.-Comandos............................................................................................................................................... 35 8.2.2.-Archivo multipath.conf para acceso simultneo a SAS, DS4000 y DS8000...........................................35 8.3.-Multipath con device mapper/2....................................................................................................................... 36 8.4.-Filtrado de LVM para device mapper............................................................................................................. 40 9.-Procedimeento de recuperacin ante desastres........................................................................................................ 40 9.1.-Arranque en monousuario............................................................................................................................... 40 9.1.1.-LILO....................................................................................................................................................... 40 9.1.2.- GRUB.................................................................................................................................................... 40 9.2.-Si el sistema no arranca por corrupcin del raz.............................................................................................. 40 9.3.-Drivers de arranque en initrd.......................................................................................................................... 41 9.4.-BACKUP Y RECUPERACIN..................................................................................................................... 42 9.5.-CREAR DISQUETE DE ARRANQUE....................................................................................................... 42 9.6.-CMO RETOCAR UN RAMDISK (initrd)................................................................................................... 42 9.6.1.-Mtodo antiguo....................................................................................................................................... 42 9.6.2.-Mtodo nuevo......................................................................................................................................... 43 10.-COMUNICACIONES TCPIP................................................................................................................................ 44 10.1.-IP,s presentes en una red............................................................................................................................... 44 10.2.-Desactivar IP V6........................................................................................................................................... 44 10.3.-NMAP........................................................................................................................................................... 45 10.4.-Configuracin de Telnet................................................................................................................................ 45 10.5.-Orden de bsqueda de direcciones IP........................................................................................................... 45 10.6.-MTU.............................................................................................................................................................. 45 10.7.-Configuracin ethernet.................................................................................................................................. 45 10.7.1.-Caso 1................................................................................................................................................... 45 10.7.2.-Caso 2................................................................................................................................................... 46 10.8.-Aadir un alias a una ethernet....................................................................................................................... 46 10.9.-Crear un bond ethernet.................................................................................................................................. 47 10.9.1.-RedHat.................................................................................................................................................. 47 10.9.2.-Otro ejemplo con RedHat..................................................................................................................... 48 10.9.3.-zSLES................................................................................................................................................... 48 10.10.-VLAN tagging por un ethenet..................................................................................................................... 49 10.11.-Forzar la velocidad de conexin de una ethernet........................................................................................ 50 10.12.-Ver si una Ethernet tiene enlace................................................................................................................. 50 25/09/02 2

10.13.-DHCP.......................................................................................................................................................... 50 10.14.-Puertos y aplicaciones................................................................................................................................. 50 10.15.-Netstat; problema de sockets contra loopback............................................................................................ 51 10.16.-INETD........................................................................................................................................................ 51 10.17.-FTP servidor............................................................................................................................................... 51 10.18.-SOCKS....................................................................................................................................................... 52 10.18.1.-Socks de IBM..................................................................................................................................... 53 10.19.-WGET......................................................................................................................................................... 54 10.20.-Winmdem del porttil T23........................................................................................................................ 54 10.21.-Rutas........................................................................................................................................................... 54 10.21.1.-Tcpdump para ver trfico de rutas...................................................................................................... 55 10.21.2.-Si no se conecta.................................................................................................................................. 55 10.22.-Ejecutar script al activar dispositivo........................................................................................................... 55 10.23.-IPCALC y /24............................................................................................................................................. 55 10.24.-Firewall iptables.......................................................................................................................................... 56 10.25.-Rendimiento de la red................................................................................................................................. 56 11.-IMPRESORAS...................................................................................................................................................... 56 11.1.-Impresora por defecto................................................................................................................................... 56 11.2.-CUPS............................................................................................................................................................ 57 11.3.-Utilizacin de impresoras samba desde windows......................................................................................... 57 11.4.-Printing text in CUPS with no modification. Substitution of printer by backend program. .........................57 11.5.-lpadmin......................................................................................................................................................... 59 11.6.-Impresora no disponible................................................................................................................................ 60 12.-CONFIGURACIN DE LINUX........................................................................................................................... 60 12.1.-Versin del sistema / ncleo......................................................................................................................... 60 12.2.-Lenguaje local............................................................................................................................................... 60 12.3.-Arranque de Linux SuSE: SuSEConfig......................................................................................................... 60 12.4.-ARRANQUE CON MENSAJES MNIMOS................................................................................................ 61 12.5.-Cambio del mensaje de arranque de SuSE.................................................................................................... 61 12.6.- Cambio de pantalla inicial de arranque de SuSE 8.2.................................................................................... 61 12.7.-Mensajes del sistema..................................................................................................................................... 62 12.8.-YAST2.......................................................................................................................................................... 62 12.9.-RAM............................................................................................................................................................. 62 12.9.1.-Informacin de RAM............................................................................................................................ 62 12.9.2.-Si el ncleo no reconoce toda la RAM instalada.................................................................................. 62 12.10.-PROFILES.................................................................................................................................................. 62 12.11.-Colorear la consola...................................................................................................................................... 66 12.12.-Limitaciones de la shell de usuario (ulimit)................................................................................................ 66 12.13.-ARRANQUE Y PARADA DE APLICACIONES EN EL ARRANQUE DEL SERVIDOR .....................66 12.13.1.-Cambios en la versin SuSE 8.1......................................................................................................... 67 12.14.-PARAR SISTEMA..................................................................................................................................... 67 12.15.-CAMBIO DEL NOMBRE DEL SISTEMA................................................................................................ 67 12.16.-CONFIGURACION.................................................................................................................................... 68 12.17.-Puertos serie................................................................................................................................................ 68 12.18.-CONFIGURACIN DE DISCO DURO..................................................................................................... 68 12.19.-Ncleo......................................................................................................................................................... 69 12.19.1.-Cmo conocer lmites del sistema ..................................................................................................... 69 12.19.2.-Versiones de Linux............................................................................................................................. 69 12.19.3.-Threads utilizados............................................................................................................................... 69 12.19.4.-Parmetros del kernel......................................................................................................................... 69 12.19.5.-Compilacin del kernel....................................................................................................................... 70 12.19.6.-Mdulos.............................................................................................................................................. 71 12.20.-WEBMIN.................................................................................................................................................... 71 12.21.-CRON......................................................................................................................................................... 71 12.22.-Arranque lento de SendMail....................................................................................................................... 71 13.-Actualizacin del sistema...................................................................................................................................... 72 14.-Aplicaciones multimedia....................................................................................................................................... 72 14.1.-Sonido........................................................................................................................................................... 72 14.2.-Vdeo............................................................................................................................................................ 72 15.-Procesos................................................................................................................................................................ 72 15.1.-PS con path completo................................................................................................................................... 72 15.2.-Pausar / enviar a background un proceso ..................................................................................................... 72 15.3.-A qu usuario pertenece un proceso ............................................................................................................ 72 25/09/02 3

15.4.-Qu proceso est utilizando un sistema de archivos..................................................................................... 73 15.5.-Strace, trazas de un programa....................................................................................................................... 73 15.6.-ldd, libreras de un proceso........................................................................................................................... 73 15.7.-Contabilidad de procesos.............................................................................................................................. 73 16.-Trucos y aplicaciones varios.................................................................................................................................. 73 16.1.-Quitar sugerencia bash de instalar paquete si tecleo mal..............................................................................73 16.2.-Pasar de pdf a texto....................................................................................................................................... 74 16.3.-Copiar el sector de arranque del disco.......................................................................................................... 74 16.4.-Localizacin de dispositivos CDROM.......................................................................................................... 74 16.5.-Crear una imagen iso a partir de archivos..................................................................................................... 74 16.6.-Crear un CD a partir de una .iso.................................................................................................................... 74 16.7.-Crear pipes.................................................................................................................................................... 74 16.8.-El salvapantallas no reconoce clave de acceso.............................................................................................. 74 16.9.-Montar CDROM........................................................................................................................................... 74 16.10.-Copiar un CD a imagen ISO........................................................................................................................ 75 16.11.-Limpiar terminal......................................................................................................................................... 75 16.12.-Formateo de disquete DOS......................................................................................................................... 75 16.13.-Formateo de disquete para Linux................................................................................................................ 75 16.14.-Ejecucin de comandos recientes............................................................................................................... 75 16.15.-Dialog, xmessage, qmsg............................................................................................................................. 75 16.16.-Paso de iconos de Windows (.ico) a Linux (.png)....................................................................................... 76 16.17.-Rungetty..................................................................................................................................................... 76 16.18.- Cambiar la clave del Gnome KeyRing....................................................................................................... 76 16.19.-Primer da de la semana en gnome.............................................................................................................. 76 16.20.-Grabar CD,s en RHEL 6.............................................................................................................................. 76 16.21.-System rescue CD....................................................................................................................................... 76 17.-Para configurar Notes entre Linux y Windows..................................................................................................... 76 18.-Compilacin en Linux........................................................................................................................................... 77 18.1.-Compilacin del ncleo................................................................................................................................. 77 18.1.1.-Obtencin del ncleo............................................................................................................................ 78 18.1.2.-Compilacin del ncleo........................................................................................................................ 78 18.1.3.-Instalacin del ncleo........................................................................................................................... 78 18.2.-Compilacin de paquetes fuente (src.rpm).................................................................................................... 79 18.3.-Compilacin de fuentes normales................................................................................................................. 79 18.4.-Modificacin de paquetes............................................................................................................................. 79 18.5.-Programas de usuario.................................................................................................................................... 80 18.6.-LDCONFIG................................................................................................................................................... 80 19.-SCRIPTS y utilidades............................................................................................................................................ 80 19.1.-If.................................................................................................................................................................... 80 19.2.-FTP automtico............................................................................................................................................. 81 19.3.-Expect........................................................................................................................................................... 81 19.4.-Cmo modificar un archivo de texto............................................................................................................. 81 19.5.-Modificar archivo de texto si hay texto........................................................................................................ 83 19.6.-Find............................................................................................................................................................... 83 19.7.-Locate............................................................................................................................................................ 83 19.8.-Script de paso de maysculas a minsculas de rbol de archivos.................................................................83 19.9.-Separar directorio y fichero en un script ...................................................................................................... 84 19.10.-Quitar la extensin al nombre del fichero................................................................................................... 84 19.11.- Borrar caracteres de retorno de carro al final de un archivo......................................................................84 19.12.-Traces de un script...................................................................................................................................... 85 19.13.-Resultado de un comando........................................................................................................................... 85 19.14.-Operaciones aritmticas.............................................................................................................................. 85 19.15.-For............................................................................................................................................................... 85 19.16.-While........................................................................................................................................................... 86 19.17.-Menes........................................................................................................................................................ 86 19.18.-Toma de parmetros.................................................................................................................................... 86 19.19.-Listado de hexadecimales........................................................................................................................... 87 20.-Creacin de RPMs................................................................................................................................................. 87 21.-Activar JAVA en Firefox...................................................................................................................................... 88 22.-OpenOffice............................................................................................................................................................ 89 22.1.-Plantilla......................................................................................................................................................... 89 22.2.-Creacin de grficos en un fichero de texto.................................................................................................. 89 23.-Control remoto de estaciones................................................................................................................................ 89 25/09/02 4

24.-Alta disponibilidad................................................................................................................................................ 89 25.-Seguridad............................................................................................................................................................... 89 25.1.-Encriptacin de claves.................................................................................................................................. 89 26.-SSH........................................................................................................................................................................ 90 26.1.-Habilitar acceso ssh de root........................................................................................................................... 90 26.2.-Retardo en login............................................................................................................................................ 90 26.3.-Login ............................................................................................................................................................ 90 26.4.-Copiar un archivo.......................................................................................................................................... 90 26.5.-Copiar directorios tar ................................................................................................................................ 90 26.6.-Ejecutar un comando..................................................................................................................................... 91 26.7.-Conexin rechazada...................................................................................................................................... 91 26.8.-Entrar a un conjunto de servidores sin que pida clave.................................................................................. 91 27.-SFTP...................................................................................................................................................................... 92 28.-RSYNC.................................................................................................................................................................. 92 29.-SAMBA................................................................................................................................................................. 92 29.1.-Configuracin del servidor............................................................................................................................ 92 29.2.-Configuracin del cliente.............................................................................................................................. 92 30.-XINETD................................................................................................................................................................ 93 31.-Nombres de producto............................................................................................................................................ 93 32.-hyperthreading....................................................................................................................................................... 93 33.-Unidades de cinta SCSI......................................................................................................................................... 93 33.1.-Ultrium ......................................................................................................................................................... 93 34.-CDRECORD......................................................................................................................................................... 94 35.-Paso de CD,s a MP3.............................................................................................................................................. 95 36.-Emulador de terminal por puerto serie: minicom.................................................................................................. 95 37.-FTP cliente............................................................................................................................................................ 95 38.-Instalacin en modo texto...................................................................................................................................... 95 39.-Balanceo de carga entre dos linux......................................................................................................................... 95 40.-CP.......................................................................................................................................................................... 95 41.-Captura de pantallas en tiempo de instalacin....................................................................................................... 96 42.-SMTP..................................................................................................................................................................... 96 43.-Usuario no root con permisos de root.................................................................................................................... 96 44.-VI.......................................................................................................................................................................... 96 44.1.-Sustitucin de cadenas.................................................................................................................................. 96 45.-Rendimiento.......................................................................................................................................................... 96 45.1.-Top, vmstat, free........................................................................................................................................... 96 45.2.-Sysstat........................................................................................................................................................... 96 45.3.-Nmon............................................................................................................................................................ 96 45.4.-Nagios........................................................................................................................................................... 96 45.5.-RRDTool....................................................................................................................................................... 97 45.6.-Otras.............................................................................................................................................................. 97 46.-Dimensionamiento de servidores........................................................................................................................... 97 47.-Problemas de arranque con el USB....................................................................................................................... 97 48.-Instalacin automatizada........................................................................................................................................ 97 48.1.-RHEL 4......................................................................................................................................................... 97 48.2.-SLES 10 SP1................................................................................................................................................. 98 49.-Instalacin automatizada por PXE: xcat................................................................................................................ 98 50.-Instalacin con disquete de drivers....................................................................................................................... 98 51.-Bios del sistema..................................................................................................................................................... 99 52.-Sysreport, recoger informacin del sistema (RH)................................................................................................. 99 53.-Hexadecimal.......................................................................................................................................................... 99 54.-Cambios de filtro LVM......................................................................................................................................... 99 54.1.-Filtro LVM para discos powerpath............................................................................................................. 100 55.-Configuracin del porttil para acceso va eSNI.................................................................................................. 100 55.1.-Ubuntu........................................................................................................................................................ 101 55.2.-Windows XP............................................................................................................................................... 101 55.3.-Acceso va mdem USB............................................................................................................................. 101 55.3.1.-Desde Windows XP........................................................................................................................... 101 55.3.2.-Desde Ubuntu..................................................................................................................................... 102 56.-Ubuntu................................................................................................................................................................. 104 56.1.-/etc/network/interfaces de un plumazo....................................................................................................... 104 56.2.-Servicios en Ubuntu.................................................................................................................................... 106 56.3.-Nivel de ejecucin....................................................................................................................................... 106 25/09/02 5

56.4.-Plugin Java.................................................................................................................................................. 106 56.5.-Paquetes...................................................................................................................................................... 106 56.6.-Instalacin de Java...................................................................................................................................... 106 56.7.-Fuentes M$.................................................................................................................................................. 107

1.-Introduccin
Este es un documento de apuntes de Linux en su versin Suse con algunas ideas de RedHat. Aado Ubuntu (versin basada en Debian) a partir de julio del 2008. Est creado por acumulacin de experiencias. Muchas de ellas estn obsoletas y otras necesitan ser desarrolladas para una mejor comprensin. En todo caso, los apartados de este documento pueden utilizarse como gua donde comenzar a resolver un problema. La resolucin concreta depender de cada uno. Se recomienda prudencia al seguir los consejos dados en este documento, especialmente en lo que se refiere al manejo del espacio en disco y, en caso de duda, desechar siempre la sugerencia.

2.-Terminales virtuales
En Linux, por defecto, se crean al arrancar siete terminales virtuales: una grfica y seis de texto. Se puede pasar de una a otra y tener arrancados programas distintos en cada una de ellas simultneamente. ALT-F1, ALT-F2, ... ALT-F6 : Terminales texto. ALT-F7 : Terminal X. Para cambiar de terminal desde la pantalla grfica: CTRL-ALT-F1. Las consolas virtuales arrancan desde /etc/inittab con las lneas: 1:2345:respawn:/sbin/mingetty tty1 2:2345:respawn:/sbin/mingetty tty2 etc. Al comentar una de ellas no se abrir la terminal virtual correspondiente; as se economizan recursos. chvt n cambia de la terminal virtual en la que estoy a la n.

3.-Configuracin X
El archivo de configuracin se llama: /etc/X11/xorg.conf editres --> Se arranca en segundo plano. Devuelve los recursos utilizados por una ventana Linux; se puede utilizar para hacer entradas en ~/.Xdefaults. xset q Devuelve la configuracin de las X.

3.1.-Archivos
/etc/X11/xorg.conf /etc/sysconfig/desktop /usr/sbin/gdm /etc/inittab Configuracin de las X DESKTOP="GNOME" Arranca el gestor de display - login El displaymanager arranca dese aqu. La entrada initdefault=5 provoca el arranque con el sistema del entorno grfico + 6

25/09/02

displaymanager. /etc/X11/xinit /etc/X11/xinit/xinitrc.d/ Configuracin de arranque de aplicaciones con X Contiene los scripts que se ejecutan al arrancarse las X

3.2.-Gestor de ventanas/aplicaciones
Para un completo funcionamiento del entorno grfico se arranca lo siguiente: Servidor X --> Controla la comunicacin con el hardware grfico. Gestor de display --> xdm, kdm, gdm. Gestor de aplicaciones/sesiones. Gestor de ventanas (windowmaker, fvwm2, etc). Libreras de aplicacin (qt): cut, paste, incrustacin objetos (OLE, etc). Para seleccionar el gestor de ventanas: RedHat: switchdesk ej: switchdesk KDE SuSE: yast2 o bien .xinitrc o bien $WINDOWMANAGER=/usr/X11R6/bin/kde $WINDOWMANAGER=/usr/X11R6/bin/gnome $WINDOWMANAGER=/usr/X11R6/bin/fvwm etc. o bien $HOME/.wmrc Se puede arrancar X sin un gestor de ventanas dando a la variable $WINDOWMANAGER el valor de una aplicacin X cualquiera. Por ejemplo, xterm. Se arracar el servidor X con una xterm abierta desde la cual arrancar, por ejemplo, Netscape. Eso s, la falta de gestor de ventanas har que la ventana de Netscape quede fija. Otra forma de verlo: Se edita /etc/init.d/xdm. Este es el script que arranca el display manager. Se ve en l que se llama inicialmente a: /etc/sysconfig/displaymanager para que coja variables de entorno. Se edita este archivo y se cambia el valor de la variable DISPLAYMANAGER al que queramos: DISPLAYMANAGER=kdm (puede ser: xdm, gdm, kdm, etc). Se v el WindowManager en: /etc/sysconfig/windowmanager Se activan los cambios ejecutando SuSEconfig.

25/09/02

3.3.-Arranque de aplicaciones con las X


Las X arrancan tomando un archivo de arranque en este orden: Si arranca desde XDM: $HOME/.Xsession /etc/X11/xdm/Xsession Si no (startx): $HOME/.xinitrc /etc/X11/xinit/xinitrc. Modelos en /etc/skel. /etc/X11/xdm/XSetup: Arranca lo que le demos al arrancar xdm y antes de hagamos login. Despus del login se ejecuta XSession. Para arrancar una aplicacin hay que aadirla a uno de estos archivos justo antes de que arranque el gestor de ventanas. En mi /home/vicente he creado un archivo .Xclients con la informacin necesaria, y dos enlaces a l para que tome esta informacin siempre, independientemente de si arranca con gdm o con startx: .xinitrc -> .Xclients .xsession -> .Xclients

3.4.-Arranque de las X sin que pida clave


El display manager se arranca desde /etc/inittab llamando a /etc/X11/prefdm, que elige el gestor en funcin de lo que contenga /etc/sysconfig/desktop. Puedo sustituir prefdm por un script que arranque las X.

3.5.-Salvapantallas / pantalla en negro


xset xset xset xset s off --> desactiva el salvapantallas s noblank --> Desactiva la pantalla en negro -dpms --> Desactiva la gestin de consumo del PC q --> Devuelve la configuracin actual.

3.6.-Servidor X en Windows
CYGWIN+XFREE86: es un servidor X en forma de DLL que se instala en Windows y permite usar desde windows un entorno X con todo lo que se le instale. No es un Linux pero s incluye numerosas utilidades del mismo.

3.7.-Matar el servidor X
CTRL-ALT-Backspace

3.8.-Cambio de resolucin X
Ctrl alt + - entre todas las resoluciones configuradas A partir de la versin 4.3 de XFree86: xrandr -q muestra las resoluciones disponibles, numeradas en orden. xrandr -s n cambia a la resolucin seleccionada entre las disponibles. No s si ese cambio es permanente o temporal. Si quiero que el cambio sea permanente debo editar /etc/X11/XF86Config.

25/09/02

3.9.-Activar/mapear una tecla en X


Solucin para RHEL y similares: Para saber qu tecla pulsamos: xev Se edita el fichero /etc/X11/Xmodmap y se aade la tecla. Por ejemplo, para que acepte el intro del teclado numrico, se aade al final del fichero la lnea: keycode 108 = Return Otra forma (vlida tambin en Ubuntu): Para mapear la tecla <> a la tecla de Microsoft izquierda, ejecuto xev y pulso esa tecla. Obtengo as su cdigo: 115. A continuacin la mapeo con el comando: xmodmap -e "keycode 133 = less greater" Esto lo puedo aadir al .bashrc del usuario o bien aadirlo al archivo $HOME/.Xmodmap con esta lnea: keycode 133 = less greater

3.10.-Captura de pantallas
ksnapshot ImageMagick import

3.10.1.-ksnapshot
Se ejecuta ksnapshot. Queda arrancado como ventana. Seleccionar desde ella tomar nueva imagen y salvar imagen. Lo salva en un directorio/nombrearchivo.png que luego se puede insertar en OpenOffice: insert graphics from file.

3.10.2.-ImageMagick
ImageMagick hace todo tipo de conversiones y captura de pantallas desde la lnea de comandos. Para capturar pantallas: import -window root fichero.jpg Esto guarda la pantalla completa en un archivo. Si slo se quiere una ventana, ejecutar: import fichero.jpg import fichero.jpg como hacer clic en la ventana deseada y ya est. aparece una cruz que permite seleccionar un recuadro de pantalla. Lo que seleccione con ella se grabar fichero.jpg.

Para reducir el tamao de fotos jpg puedo hacer: convert -size 400x300 foto.jpg fotosal.jpg Para hacerlo con todas las fotos de un directorio, crear el siguiente script: 25/09/02 9

clear size="400x300" salida=fotosal if [ -d $salida ] then echo "El directorio existe. Me salgo." exit 0 else echo "Creo el directorio $salida" mkdir $salida fi ls *.jpg|while read foto do if [ -f $foto ] then echo "Transformo: " $foto convert -size $size $foto fotosal/$foto fi done

3.11.-Visores de imagen
Son programas de visin o edicin de imgenes.

3.11.1.-gthumb
Trabaja con jpeg, pnx y otros. Permite redimensionar fotos.

3.11.2.-xv
Visor rpido y sencillo.

3.11.3.-Kuickshow
Visor de fotos. Las muestra adaptadas al tamao de pantalla, sin modificar. Permite cambios sencillos.

3.12.-Fuentes en X: XFT
Es la forma ms nueva y es incompatible con la anterior. En /etc/fonts/fonts.conf se guarda la configuracin en XML. Incluye los paths de fuentes. Para instalar un fuente se copia en uno de los directorios de fuentes (ej: arial.ttf) y se ejecuta, en el directorio, fc-cache. Para ver los fuentes: fc-list. Se puede cambiar los paths pero conviene hacerlo aadiendo las entradas en la configuracin particular del usuario: $HOME/.fonts.conf o en /etc/fonts/local.conf.

3.13.-Configuracin de varios gestores de ventanas 3.13.1.-Configuracin de KDE


La configuracin de KDE para cada usuario se almacena en: $HOME/.kde. 25/09/02 10

Para rehacer la configuracin de un usuario basta con borrar este directorio de un usuario y entrar en las X con ese usuario. Este mtodo es muy til para permitir a root trabajar con KDE guardando las configuraciones. Es decir: permite quitar el fondo rojo de pantalla, cambiar mens, hacer de todo y, en el prximo arranque, conservar esta nueva configuracin. El idioma en KDE se maneja instalando el paquete de idioma nacional de KDE. Se llaman kde3-i18n-es (caso espaol) y configurando despus el KDE desde el control-center para que su idioma sea el espaol (personalizacin - idioma - espaol). kcmshell language KDE. Sin el control center se puede hacer as, desde root: Para cada usuario que vaya a usar las herramientas KDE: mkdir -p $HOME/.kde/share/config --> donde $HOME es el home del usuario, no de root. al vi $HOME/.kde/share/config/kdeglobals --> No existe. Se crea ahora. Normalmente, se crea iniciar kde desde el usuario. [Locale] Language=es. chown -R usuario:users /home/usuario/.kde Arranca la parte del control-centre que configura el locale del

Instertar en el archivo kdeglobals:

3.13.2.-Configuracin bsica de AfterStep


Se guarda en /usr/share/afterstep. Se utiliza seleccionndolo en la pantalla de arranque del kdm (xdm) o bien modificando el .wmrc o la variable WINDOWMANAGER antes de arrancar startx. En /usr/share/afterstep/autoexec est lo que se arranca con el gestor. En /usr/share/afterstep/feels/feel.Windowish se guarda la configuracin del "feel" que recomiendo. Se arranca afterstep y, desde el men de escritorio (clic derecho), se entra en desktop-feel y se selecciona windowish. Se edita el fichero feel.Windowish para darle los valores: ClickToFocus SloppyFocus EdgeResistance SmartPlacement habilitado (lo descomento) deshabilitado (lo comento) 800 160 (resistencia a salirse del escritorio virtual al mover el ratn).

3.13.3.-Configuracin de icewm
Es otro gestor de ventanas, sencillo y ligero. Su configuracin se guarda en /etc/icewm en forma de varios archivos:

menu:

configura el men principal.

25/09/02

11

Ejemplo:
prog GTerminal xterm gnome-terminal prog ATT agnclient agnclient separator menuprog Gnome folder icewm-menu-gnome2 --list /usr/share/gnome/ separator menu "IBM" folder { prog ATT agnclient /opt/agns/bin/agnclient prog Notes notes ibm-notes8 prog ILC ilc ilc } separator menu "Resto" folder { prog Firefox mozicon firefox prog GTerminal xterm gnome-terminal prog Soffice soffice soffice prog Gimp gimp gimp prog Opera opera opera prog Xine xine xine } separator separator menu "Configs" folder { prog Preferences app gvim /etc/icewm/preferences prog Toolbar app gvim /etc/icewm/toolbar prog Menu app gvim /etc/icewm/menu prog Keys app gvim /etc/icewm/keys prog "Win Options" app gvim /etc/icewm/winoptions separator prog "bashrc" app gvim /home/vicente/.bashrc prog "bash_profile" app gvim /home/vicente/.bash_profile prog "xbindkeys" app gvim /home/vicente/.xbindkeysrc prog "Xclients" app gvim /home/vicente/.Xclients } separator prog "Logout" app killall icewm-session prog "Halt" app halt -p prog "Reboot" app reboot separator

preferences: configuracin de icewm. Ejemplo en: /usr/share/icewm/preferences startup: es un archivo con permisos de ejecucin y contiene una lnea por aplicacin que se quiera arrancar con icewm, aplicacin & toolbar: igual que menu, sin separadores; crea iconos de arranque en el toolbar y otros.

CTRL-Alt-Supr muestra una ventana con varias opciones: bloquear, terminar, cancelar, etc. Imagen del fondo: slo .xpm. Quiz as: DesktopBackgroundImage="imagen". Las aplicaciones que se aaden al men y barra de herramientas necesitan la creacin de un par de iconos; se buscan de su paquete original, se llevan a: /usr/share/icewm/icons y se convierten a los formatos 16x16 y 32x32, acabados en _16x16.xpm y 32x32.xpm. Comandos: cd /usr/share/icewm/icons mv /opt/ibm/lotus/notes/notes.ico . convert notes.ico -resize 16x16 notes_16x16.xpm convert notes.ico -resize 32x32 notes_32x32.xpm

3.14.-xhost; arrancar aplicaciones grficas desde root


La manera ms sencilla es abrir un xterm como el usuario que arranc las X y hacer su a root, pero no con el comando su sino con sux. Este comando establece los permisos necesarios y la 25/09/02 12

variable display. Si no se utiliza sux se puede aadir las lneas de ms abajo al fichero de profile general. En caso de que las X las arranque un usuario no root, dar autorizacin a cualquier usuario de la mquina local; si es root, se establece la variable DISPLAY para que arranque en el servidor X local sus aplicaciones X. Desde un terminal texto, con teclear "xterm", se abre el terminal grfico: if [ $USER = root ] then export DISPLAY=:0.0 # Para root arranque aplicaciones X en local else xhost +local: >/dev/null 2>&1 fi Cuidado con la variable DISPLAY: establecerla y no arrancar el entorno grfico puede hacer pensar a algn script que las X estn arrancadas. Si es desde SSH, conectar con ssh -X ip ssh -Y ip.

4.-Gestores de arranque
Permiten arrancar Linux desde un disco duro. Tambin permiten arrancar alternativamente otros sistemas operativos instalados en la misma mquina.

4.1.-Parmetros del ncleo en el arranque


Se ven con: cat /proc/cmdline Se aaden en el /boot/grub/menu.lst en la lnea de parmetros de arranque.

4.2.-LILO
/etc/lilo.conf Para Suse 7.3: Se instala sobre el MBR (/dev/hda) y da cinco opciones de arranque: suse normal, suse con problemas, comprobacin de memoria, Linux RedHat y Windows 95. append = "enableapic vga=0x0317" boot = /dev/hda lba32 vga = 791 message = /boot/message menu-scheme = Wg:kw:Wg:Wg read-only prompt timeout = 80 # image = /boot/vmlinuz root = /dev/hda3 label = suse initrd = /boot/initrd # image = /boot/vmlinuz.suse root = /dev/hda3 label = failsafe initrd = /boot/initrd.suse optional

25/09/02

13

# image = /boot/memtest.bin label = memtest86 # other = /dev/hda2 label = RedHat # other = /dev/hd4 label = win map-drive = 0x80 to = 0x81 map-drive = 0x81 to = 0x80 table = /dev/hdc Para que arranque los Linux secundarios (en este caso un RedHat) es necesario que, dentro de sus particiones respectivas, tengan instalado un gestor de arranque. Por ejemplo, para arrancar la redhat aparecer primero el gestor de arranque de Suse (en el MBR) y, una vez seleccionado redhat, aparecer el gestor de arranque de redhat (en /dev/hda2). En ambos casos pueden ser LILO. Esto no es as. Puedo tener una sola particin con un solo gestor de arranque, Grub, que llame a los dems Linux cargando sus ncleos desde /boot de la particin /boot desde el /boot de la particin Linux que controlar a las dems. Si instalo LILO en el MBR del disco duro y quiero, un da, quitarlo de all: Arranco con disco DOS desde A: Ejecuto A:\fdisk /mbr para limpiar el sector de arranque.

4.3.-GRUB
Se instala ejecutando: grub-install /dev/hda. Esto instala grub en el MBR del disco duro hda. Para ello es necesario que haya montado el directorio /dev correctamente, por lo que para recuperacin el procedimiento es ms elaborado. Grub funciona de la siguiente manera: al arrancar busca en /boot/grub/menu.lst. Si lo encuentra permite arrancar los sistemas operativos que en l se detallan. Si no existe se abre una shell para que tecleemos los comandos necesarios. Si queremos abrir la shell, podemos ejecutar: grub desde root. Cuidado al instalar Grub: un error en un comando puede acabar con una particin. Tener siempre en cuenta que, para Grub, la particin 1 es, en realidad, la 0. Por ejemplo, para arrancar Linux, que est en la particin /dev/hda2, se escribe en la shell: root (hd0,1) kernel /boot/vmlinuz root=/dev/hda2 initrd /boot/initrd setup (hd0) boot Si se edita el menu.lst, en el arranque no ser necesario teclear tanto: aparece un men. Ejemplo de menu.lst (explicado luego): # # Archivo de configuracin de GRUB # # By default, boot the first entry. default 0 # Boot automatically after 15 secs. timeout 15 # Fallback to the second entry. # fallback 1 25/09/02 14

# For booting GNU/Linux title Linux SuSE 8.0 root (hd0,1) kernel (hd0,1)/boot/vmlinuz root=/dev/hda2 initrd /boot/initrd # Arranque de Windows2000 title W2K rootnoverify (hd0,0) chainloader +1 Grub numera las particiones y discos a partir de 0. As, /dev/hda1 es, para Grub, (hd0,0) o primer disco y primera particin. Chainloader + 1 indica al grub que el sistema operativo que se va a arrancar tiene su propio gestor de arranque y, por eso, le pasa el control al mismo. Es el caso de todos los Windows. Cuidado: el comando setup instala grub donde le digamos. As, setup (hd0,0) instalar grub en la primera particin del primer disco duro borrando lo que haya ah. Si es la particin de Windows2000, por ejemplo, ya no hay windows2000 sino grub. Setup (hd0) instala grub en el MBR del primer disco duro. Despus, con editar menu.lst, podr arrancar todos los sistemas operativos del disco o discos. Ventajas de Grub sobre Lilo: En caso de no arrancar bien se abre una shell donde hacer cambios. Tras editar menu.lst no hace falta reinstalar grub ( no ejecutar setup (hd0)). Si tenemos varios windows en un sistema se pueden ocultar las dems particiones primarias dejando as que arranque la que se desea. Se pueden arrancar sistemas operativos desde el primer disco u otros con el comando swap (disk).

4.3.1.-Recuperacin de GRUB
la palabra: Se ha daado el grub del sector de arranque: el sistema no es capaz de arrancar. Aparece GRUB por pantalla y no ocurre nada ms. Se recupera siguiendo el procedimiento siguiente:

Arrancar desde un CDrom de Linux con un ncleo 2.6.x. y entrar en modo rescue. Crear una particin para montar la particin root del disco duro. Si no permite crearla en /mnt, montar sobre el mismo /mnt (lo habitual, al ser fs de slo lectura) Montar la particin boot sobre /mnt/boot Montar la particin /dev detectada por el CDrom sobre /mnt/dev con el comando: mount - -bind /dev /mnt/dev Si esta sintaxis no funciona, probar con: mount -o bind /dev /mnt/dev chroot /mnt --> Si dice que no encuentra zsh, export SHELL=/bin/sh y reintento. --> suponiendo que hda sea el disco de arranque

grub-install /dev/hda

Ejemplo: Disco de arranque: Particin Linux: rescate. mount /dev/hda2 /mnt mount - -bind /dev /mnt/dev grub-install /dev/hda 25/09/02 15 hda hda2 / no tengo /boot aparte.

Para recuperar Grub en mi RHEL 5 arranco desde el CD de SLES10 y entro en modo

Es posible que necesitemos tambin montar /proc: mount - - bind /proc /mnt/proc Otra forma: boot: root=auto Otra: grub-install --root-directory=/mnt/hd /dev/sda Para simplificar esto se puede bajar el SuperGrubDisk desde la pgina: supergrub.forjamari.linex.org. Se arranca con l y se selecciona que recupere el gestor de arranque y aada las particiones arrancables automticamente.

5.-Gestin de usuarios
Useradd, usermod, userdel.

5.1.-Creacin de usuarios con pasword


Se crea primero el grupo: groupadd -g 101 db2iadm1 y luego el usuario: useradd -g db2iadm1 -G db2fadm1,db2asgrp -m -d /home/idusuar -p mFC3GuFqGdjXA idusuar; chmod 755 /home/idusuar La clave de acceso est cifrada. Para obtenerla se crea un usuario basura y se le da password desde root (passwd basura). Despus se mira en /etc/shadow y se copia esa password, que se utilizar en el useradd -p. Otra forma: useradd "fred" -p "$(perl -e 'print crypt("wilma","am");')" Otra: utilizando un programa C para cifrar. Ver el apartado de seguridad en este documento. Y la ltima: openssl passwd -1 pide una clave y la muestra cifrada: copy paste.

5.2.-Su sin pasword


Se anotan en /etc/passwd. Para permitir, desde un usuario no root, hacer su sin que pida password, borrar la x que se encuentra en el segundo campo de la lnea correspondiente al usuario y aadir al usuario que hace su al fichero /etc/sudoers. Ej: usuario2:x:503:100 ... se cambia por: usuario2::503:100 ... y se aade en /etc/sudoers: vicente ALL=(ALL) ALL

25/09/02

16

Ahora el usuario vicente puede hacer su usuario2 sin que le pida la password. Cuidado con esto: no funciona bien y hace que se pueda hacer su a root sin clave.

6.-Gestin de paquetes
RPM y apt-get.

6.1.-RPM 6.1.1.-Ultimos paquetes instalados


rpm -q last

6.1.2.-Descripcin de paquetes RPM


kpackage y veo qu paquete quiero conocer. Rpm -q - -whatprovides paquete rpm -q - -whatrequires paquete --> Qu da y qu prerrequisitos tiene un paquete. rpm -ql paquete Qu archivos tiene el paquete. rpm -fq /sbin/fdisk Qu paquete contiene este comando. rpm -qf path/fichero rpm -qp paquete.rpm a qu rpm instalado pertenece un archivo qu contiene un paquete

6.1.3.-Nombre completo de paquetes RPM de 64 bits


Cuando se instala un Linux de 64 bits pueden instalarse paquetes de 32 y 64 bits. rpm -qa devuelve el nombre de los paquetes cortando de su nombre el sufijo _64 cuando lo tiene. De esta forma, si buscamos si un paquete de 64 bits ha sido instalado, no diferenciamos entre el de 32 y 64 bits. Para que rpm -q muestre los paquetes de 64 bits con su nombre completo, i.e., acabados en _64, debo crear el fichero: /etc/rpm/macros con esta lnea: %_query_all_fmt %%{name}-%%{version}-%%{release}.%%{arch}

6.2.-APT-GET / DPKG / SYNAPTIC Gestores de paquetes en Debian/Ubuntu. Synaptic es el instalador grfico. Si no, por comandos con apt-get para instalar y dpkg para gestionar paquetes instalados.
/etc/apt/sources.list apt-get search / update / install dpkg get-selections dpkg --get-selections|grep -i offi dpkg -L openoffice.org-base-core Veo los paquetes instalados en Debian de origen: dpkg-query -W dpkg-query -L paquete paquetes instalados lista de ficheros de un paquete concreto listar ficheros de un paquete fuentes de instalacin buscar / actualizar / instalar paquetes listar lo instalado

25/09/02

17

Instalo algunos de los paquetes que faltan en destino.

6.2.1.-Instalacin de acrordr
Se aade el repositorio Medibuntu.list: sudo wget http://www.medibuntu.org/sources.list.d/hardy.list -O /etc/apt/sources.list.d/medibuntu.list Aade la GPG Key tambin: sudo apt-get update && sudo apt-get install medibuntu-keyring && sudo apt-get update Instala acroread: sudo apt-get install acroread

6.2.2.-Aadir repositorio de software a Ubuntu


aptitude install ubuntu-restricted-extras

6.3.-YUM
Instalador de paquetes de RedHat.

6.3.1.-Aadir el cdrom como repositorio


/etc/yum.repos.d # cat rh.repo [rh] name=rh baseurl=file:///mnt/iso enabled=1 gpgcheck=0 gpgkey=file:///mnt/iso/Server/repodata/repomd.xml Si utilizo yum clean all este repositorio desaparecer.

6.3.2.-Evitar actualizacin de un rpm concreto


Se edita /etc/yum.conf y se aade, en la stanza [main]: exclude=usb_modeswitch*

6.3.3.-Instalar grupo de paquetes


Yum grouplist veo X Window System yum groupinstall "X Window System"

6.3.4.-Crear repositorio adicional


Se parte de un repositorio creado en un servidor xCAT en /install/rhels6.1/x86_64 y se quiere aadir varios paquetes. Se crea: /install/rhels6.1/x86_64/Adicionales y se copian los paquetes en l. Se crea el repositorio ejecutando, en el directorio de paquetes nuevos: 25/09/02 18

createrepo . Esto crea los .xml necesarios en un subdirectorio ./repodata. Ahora se crea el archivo de configuracin necesario para acceder al repositorio desde otro servidor (o este a s mismo): cat /etc/yum.repos.d /Adicionales.repo [Adicionales] name=Paquetes adicionales de Linux baseurl=http://xcat/install/rhels6.1/x86_64/Adicionales enabled=1 gpgcheck=0

6.4.-Para saber a qu disco corresponde un /dev


udevinfo -q all -n /dev/sd Tambin se obtiene mirando en dmesg o en /var/log/messages, ya que los nombres se asignan en el arranque o al ser encontrado los discos.

6.5.-Para aadir discos como dispositivos raw


Esto ya no se usa; ahora depende de la aplicacin. Primero se crea una o varias particiones en el disco y se asocia cada particin con un dispositivo raw aadiendo una entrada en /etc/rawdevices: /dev/raw/raw1 A continuacin se arranca el servicio: service rawdevices start En el archivo rawdevices aparece como deprecated esta solucin. Indica en cambio que se abran los dispositivos de modo bloque (/dev/sdb1) con O_DIRECT. Esto requiere compilar la aplicacin que lo haga con esa directiva, no es configuracin, en principio, del sistema operativo. /dev/sdb1

6.6.-Espacio libre en discos


df -h

6.7.-Borrado de la tabla de particiones de un disco


dd if=/dev/zero of=/dev/hda bs=512 count=1 && sync bs puede ser 1k.

6.8.-Ext3 y optimizacin del acceso


Se crea una particin con fdisk. Se formatea como ext2 con: mkfs.ext2 /dev/hdax y se le aade journalling: tune2fs -j /dev/hdax O bien se crea en ext3 directamente: mkfs.ext3 /dev/hdax Para optimizar el rendimiento del Ext3 se puede reducir el nivel de journalling. Por defecto es ordered, es decir, guarda journalling de metadatos y datos. Para guardar slo del primero, lo cual reduce la robustez del sistema de archivos pero incrementa su rendimiento, se ha de montar el sistema de archivos con la opcin writeback, como en el ejemplo: LABEL=/ / ext3 defaults,data=writeback,errors=remount-ro,noatime 01 Si se hace con el raz y no arranca, entrar en el fstab y comentar esa opcin. Rearrancar para que Linux chequee el sistema de archivos y vuelva a funcionar. 25/09/02 19

6.9.-Lectura de la tabla de particiones de un disco


dd if=/dev/hda bs=512 count=1 of=TablaParticiones.dd

6.10.-Instalacin de Linux: configuracin del almacenamiento


Un disco de IDE/SATA permite cuatro particiones como mximo. Se pueden hacer por norma tres particiones primarias y una extendida que sern: /boot arranque. Tipo: ext2. Contiene los archivos del ncleo, disco virtual ram, y otros necesarios en el

Otros dos sistemas operativos. Particin extendida. Discos lgicos: / /.../datos Tipo: ReiserFS. Tipo: ReiserFS, ReiserFS sobre LVM. Contiene datos de aplicaciones. Otros hasta el lmite mximo: 256 discos lgicos. Para instalar / sobre la particin extendida es necesario instalar el LILO sobre el MBR del disco principal ya que una particin lgica no es arrancable desde el MBR normal. Para instalar otros sistemas operativos conviene hacerlo sobre particiones primarias para asegurar que sean arrancables.

6.11.-Discos
IDE/ATA: /dev/sda /dev/hda IBM Xseries (controladora SCSI Adaptec, mdulo aic7xxx). SCSI Bull (controladora DAC960, mdulo DAC960). Cd0: primer controlador SCSI d0: primer disco del controlador. P2: particin 2 del disco.

SCSI/SATA/SAS: /dev/rd/cd0d0p2

6.12.-Conceptos
Los discos se dividen en particiones. Un disco duro de PC puede tener un mximo de cuatro particiones ya sean primarias o lgicas. Cada particin se puede dejar sin formatear o bien se formatea para crear un sistema de archivos. Las aplicaciones acceden a las particiones a travs del sistema operativo. Este accede a las particiones no formateadas en modo carcter y a los sistemas de archivos en modo bloque. Es decir: carcter a carcter o bien bloque a bloque. Las aplicaciones se encargarn de gestionar el formato de las particiones accedidas en modo carcter (raw). Es el caso por ejemplo de particiones gestionadas por DB2 directamente. Los sistemas de archivos se montan sobre cualquier directorio. Las particiones no formateadas no se montan. En Aix una particin no formateada se llama LV (volumen lgico) y una formateada FS (sistema de archivos). Para crear un sistema de archivos primero se crea un lv y luego se formatea. El gestor de discos de Aix se llama LVM (logical volume manager) y se est imponiendo como el estndar para Linux. Ms informacin en: http://www.sistina.com/products_lvm.htm 25/09/02 20

ftp://linux.msede.com/lvm/ Se puede montar Linux sobre un sistema de archivos ext2 o sobre un reiserFS. No se debe montar sobre un LV ya que, para manejar un LV, primero hay que cargar el driver LVM y esto complica las cosas en discos de arranque.

6.13.-Manejo de particiones 6.13.1.-Creacin y borrado de particiones


Se crean con la utilidad fdisk. Sintaxis: fdisk unidad_de_disco Ej: fdisk /dev/hda donde /dev/hda es la primera unidad de disco, /dev/hdb la segunda, etc. La primera particin del primer disco ser: /dev/hda1, la segunda /dev/hda2, etc. Se formatea una particin con el comando: mkreiserfs /dev/hdax mkfs.ext2 /dev/hdax Crea un ext2. Se aade el sistema de archivos en /etc/fstab para darle un punto de montaje. Crea un reiserfs en /dev/hdax

6.13.2.-Creacin de una particin de intercambio (Swapping)


Se crea la particin de un tamao recomendado el doble de la RAM instalada. Se formatea para swapping ejecutando: mkswap particin ej: mkswap /dev/hda2 Se activa la particin para que sea utilizada: swapon -a -e o bien: swapon /dev/hda2 --> para que tome esa particin concreta. --> para que tome todas las definidas.

Se edita /etc/fstab para aadir la entrada correspondiente a la particin de swapping y que la tome como tal en cada arranque del servidor. Se aade una lnea similar a esta: /dev/hda2 swap swap defaults 00

La activacin del swapping en el arranque de la mquina se realiza normalmente desde el script: 25/09/02 21

"/etc/rc.d/sysinit.rc" donde se ejecuta "swapon -a -e". Para crear un archivo (en vez de particin) de swap de 1gb: dd if=/dev/zero of=/swapfile bs=1k count=1048576 mkswap /swapfile swapon /swapfile

6.13.3.-Creacin de un sistema de archivos


Se crea primero una particin con fdisk ( ej: /dev/hda3). Se formatea: mkfs /dev/hda3 Se edita /etc/fstab aadiendo, por ejemplo: /dev/hda3 /home/temp ext3 defaults 00

donde /dev/hda3 es la particin, /home/temp es su punto de montaje y ext3 el tipo de particin.

6.13.4.-Modificacin de una particin o sistema de archivos


Primero se libera la particin para poder operar sobre l (se desmonta o se desactiva); despus se utiliza la aplicacin "parted" para modificarlo. Distintos casos: SWAPPING swapoff /dev/hda2 parted FS umount /home/temp parted Si la particin es la de arranque hay que tomar en cuenta el gestor de arranque (GRUB LILO). Si el gestor est instalado en el MBR (master boot record) del disco duro no hay que hacer nada. Si est instalado en la particin que se ha modificado hay que reinstalar el gestor de arranque ejecutando (ej: /dev/hda2): Si LILO: Si GRUB: lilo grub-install /dev/hda2

6.13.5.-PARTED
Cuidado con este comando: mal usado destruye las particiones. Es una aplicacin que permite crear, borrar y redimensionar particiones en un disco duro. Slo si del tipo ext2, ext3, fat, fat32 y swap. Para redimensionar una particin primero se comprueba que hay espacio libre en disco sin 25/09/02 22

asignar a ninguna particin. Despus se ejecuta parted y, dentro de l: resize n min max ej: resize 2 1 200M --> cambia el tamao de la particin 2 de manera que comience en el punto 1 y tenga 200 Mbytes de tamao.

6.13.6.-MONTAJE DE SISTEMAS DE ARCHIVOS


Supongamos una particin: /dev/hda1 formateado como FS. Para montar sobre el directorio /home/temp: mount /dev/hda1 /home/temp Este comando fallar si el directorio no existe. Para desmontarlo: umount /home/temp. Si el sistema de archivos no se deja montar por no saber el tipo probar con: mount -t auto /dev/hda1 /home/temp Los sistemas de archivos que queremos que se monten automticamente hay que definirlos en el archivo /etc/fstab. Los sistemas de archivos que estn montados aparecen en el fichero /etc/mtab; mirando en l se puede determinar la lnea que hay que aadir en /etc/fstab. Los sistemas de archivos se montan en el orden en que aparecen en el /etc/fstab. Cuidado con esto.

6.13.7.-Montaje de un sistema de archivos FAT para compartir entre sistemas y usuarios


Objetivo: Se crea una particin extendida y, dentro de esta, una o varias unidades lgicas FAT para compartir datos entre los sistemas operativos windows y Linux del sistema. Esta particin se crea desde Linux y se formatea en FAT32. Se monta con el comando mount: mount /dev/hda6 /mnt/discoe Si se monta desde root los dems usuarios no podrn trabajar con ella. Para que todos los usuarios del sistema puedan acceder con permisos de escritura desde Linux hay que hacer lo que sigue: Se edita /etc/fstab para aadir la particin con su punto de montaje y las caractersticas de su acceso: vi /etc/fstab: /dev/hda7 25/09/02 /mnt/discoe vfat 23 auto,exec,rw,user,uid=1000 00

User: indica que la puede montar un usuario distinto de root. Exec: indica que se pueden ejecutar programas desde esta particin. Otras opciones: Umask=002 indica que el usuario que monta y los de su grupo tendrn todos los accesos (rwx) y el resto de usuarios slo lectura y escritura/acceso.

6.13.8.-Montaje de sistema de archivos NFS


Primero hay que exportar un sistema de archivos en el servidor, por ejemplo, con el comando: exportfs -o rw cliente:/exports/home/usuario para despus montarlo en el cliente con el comando: mount -t nfs servidor:/exports/home/usuario /home/usuario donde servidor es el nombre del servidor NFS y cliente es el nombre del cliente NFS. En /etc/exports estn los sistemas de archivos exportados. Para exportar uno y que lo monte Aix hay que exportarlo con la opcin insecure (ya no en Aix5.3; ojo: no se puede montar en Aix sobre /mnt directamente, s sobre /mnt/xxx). Para que un usuario pueda escribir en el sistema de archivos exportado, distintas opciones: Darle todos los permisos antes de exportarlo (777). Exportarlo con la opcin rw. Hacer que el usuario propietario en el cliente y en el servidor sean el mismo (mismo id) Hacer que ambos sean del mismo grupo (mismo gid) y darle permiso de escritura al grupo. Si el usuario cliente es root el caso es distinto. Si le damos todos los permisos root tambin podr escribir, pues es un usuario cliente ms, no es root en el sistema servidor. Si no damos permisos de escritura a todos los usuarios root, por defecto, no podr escribir en el directorio exportado. Permitir que haga esto es en s un problema de seguridad pero se puede hacer editando /etc/exports para darle al sistema de archivos las opciones rw y no_root_squash. Ej: /home/vicente (rw,no_root_squash) El servidor NFS se arranca desde xinetd o bien como demonios independientes. Desde xinetd: chkconfig --list configurado. chkconfig nfs on Independiente: /etc/inet.d/nfs start --> Activa el nfs. --> Muestra los niveles de ejecucin y lo

Hay que aadir en /etc/hosts.allow los clientes nfs; si no, dar un error de RPC no registrado en la parte cliente.

25/09/02

24

6.14.-LVM
LVM (logical volume manager) es una capa intermedia entre las particiones y el sistema operativo. Permite unir particiones en un solo espacio de particionamiento (grupo de volumenes) de manera que varios trozos de disco pasen a ser tratado como un solo disco lgico. LVM permite ampliar y reducir un disco lgico (logical volume) en caliente y, si el sistema de archivos montado en l lo permite (caso de ReiserFS), se reduce o amplia tambin el sistema de archivos montado en l. Terminologa: Un disco se divide en particiones fsicas. Si una particin fsica se le da el tipo 8e (lvm) esta puede utilizarse como volumen fsico. Un volumen fsico puede asignarse a un grupo de volmenes, este estar formado por varios volmenes fsicos y su tamao total ser la suma del tamao de todos ellos. En el espacio de un grupo de volumenes se crean los volmenes lgicos del tamao que se desee hasta completar el grupo de volmenes. No se tiene en cuenta en ningn momento el tamao de los volumenes fsicos: si un volumen lgico no cabe en un solo fsico contina en otros fsicos del mismo grupo de volumenes de manera transparente. Un volumen lgico se puede asignar tal cual a una aplicacin (volumen raw) o bien se puede formatear. Se puede cambiar el tamao del volumen lgico y, si se utiliza ReiserFS, se puede cambiar el tamao del sistema de archivos montado sobre l. Resumen de comandos: fdisk como VF pvcreate /dev/hda3 /dev/hdb4 vgcreate datavg /dev/hda3 /dev/hdb4 lvcreate -L 200M -n datalv1 datavg --> Crea las particiones en los discos. Si el tipo es 8e se usan --> Crea los volmenes fsicos --> Crea el grupo de volmenes --> Crea el volumen lgico datalv1

lvcreate -L 200M -i 3 -I4 -n datalv1 datavg lo crea con stripping (-i4 = 4k stripe size, i maysculas) sobre tres PV,s (-i3) < = que el nmero de PV,s del VG vgs lvs pvs --> Estos tres comandos listan los vg, lv y pv del sistema /dev/datavg /dev/datavg/datalv1 Se crea un sistema de archivos sobre un LV con el comando: mkreiserfs /dev/datavg/datalv1 Para aumentar el tamao de un sistema de archivos: lvextend -L+1G /dev/datavg/datalv1 lvextend -l +100%FREE /dev/auxvg/auxlv LV al mximo resize_reiserfs -s+1G -f /dev/datavg/datalv1 vgextend vgreduce Para mostrar informacin: pvscan lvscan vgscan vgdisplay -v datavg 25/09/02 25 --> Aade un PV a un VG --> Saca un PV de un VG --> Se formatea el espacio ampliado Si el VG se ha quedado sin espacio, se ampla aadindole PV,s nuevos: --> Se ampla primero el LV --> O bien se ampla el Quedan creados:

lvdisplay /dev/datavg/datalv1 Para mostrar sobre qu PV,s est escrito un LV: lvs -a -o +devices Para borrar: lvremove vgremove vgexport Para aadir un VG que est creado y con datos: vgimport Para activar un VG (como varyonvg en Aix): vgchange -a y vgchange -a n --> Activa el VG --> Desactiva el VG --> Debe estar desactivado Para borrar un VG del sistema y no borrar su contenido (se puede asignar a otro sistema):

Un sistema de archivos creado con LVM se monta y maneja igual que uno normal. Por ejemplo, la entrada en /etc/fstab puede ser esta: /dev/datavg/datalv1 /oradata O bien, sin aadir nada: mount /dev/datavg/datalv1 /oradata reiserfs defaults 12

6.14.1.-Activar el flag de clster


Cuidado con este comando: necesita tener activo clvm (clster manager) de RHEL para poder hacer cambios. Si no, cualquier comando devuelve un Skipping clustered volume group vgxxx y no permite modificarlo. Extrado de: http://sources.redhat.com/cluster/faq.html#clvmd_clustered.

Why aren't changes to my logical volume being picked up by the rest of the cluster? There's a little-known "clustering" flag for volume groups that should be set on when a cluster uses a shared volume. If that bit is not set, you can see strange lvm problems on your cluster. For example, if you extend a volume with lvresize and gfs_grow, the other nodes in the cluster will not be informed of the resize, and will likely crash when they try to access the volume. To check if the clustering flag is on for a volume group, use the "vgs" command and see if the "Attr" column shows a "c". If the attr column shows something like "wz--n-" the clustering flag is off for the volume group. If the "Attr" column shows something like "wz--nc" the clustering flag is on. To set the clustering flag on, use this command: vgchange -cy <volume group name>

6.14.2.-Recuperar un PV cuya cabecera est corrupta


Couldn't find device with uuid 'SAoSYI-2VF8-nelD-YJKs-2paM-d8D3-uu8JWY'. Couldn't find all physical volumes for volume group datosvg.

25/09/02

26

Se soluciona: pvdisplay > busco el que es SaoSYI-... Veo que es el dasdbw1, as que lo recreo. Primero hago por si acaso un pvmove: pvmove /dev/dasdbw1 pvremove /dev/dasdbw1 -ff Luego backup de la configuracin actual del VG: vgcfgbackup -d -f datosvg --ignorelockingfailure -P datosvg y por ltimo creo de nuevo el PV: pvcreate --uuid "SAoSYI-2VF8-nelD-YJKs-2paM-d8D3-uu8JWY" --restorefile ./datosvg /dev/dasdbw1

6.14.3.-Errores en el VG
# vgexport Cannot change VG db_dbtstafw_vg while PVs are missing. Consider vgreduce removemissing. cd /etc/lvm/cache rm .cache vgcfgbackup db_dbtstafw_vg cd /etc/lvm/backup vi db_dbtstafw_vg Borrar los flag= MISSING vgcfgrestore db_dbtstafw_vg Ahora exporta bien.

6.15.-Extender un sistema de archivos


Se extiende su LV (si usa LVM) y despus su filesystem. Para extender el LV, se usa lvextend. Si no hay espacio en el VG se aade antes un PV. Para extender su filesystem se usa fsadm o bien resize2fs. Se puede hacer con el sistema de archivos montado. Para reducirlo se hace con l desmontado.

6.15.1.-Ejemplo:
Se aade primero un LV: # pvcreate /dev/mapper/mpath4 # vgextend /dev/swvg /dev/mapper/mpath4 Se extiende el LV: # lvextend /dev/swvg/swlv1 /dev/mapper/mpath4
Extending logical volume swlv1 to 99.99 GB Logical volume swlv1 successfully resized

usa mpath4 completamente

25/09/02

27

Se ampla el filesystem: # fsadm resize /dev/swvg/swlv1


resize2fs 1.39 (29-May-2006) Filesystem at /dev/mapper/swvg-swlv1 is mounted on /opt; on-line resizing required Performing an on-line resize of /dev/mapper/swvg-swlv1 to 26212352 (4k) blocks. The filesystem on /dev/mapper/swvg-swlv1 is now 26212352 blocks long.

Ejemplo: extender rootlv de 8Gb a 9Gb: lvextend -L9G /dev/vg_system/lv_root lvextend +2500 /dev/datavg/lvdata lvextend -l +100%FREE /dev/auxvg/auxlv Ampla a tamao total de 9G Ampla en 2500 extensiones Ampla el LV al mximo

6.15.2.-Reducir sistema de archivos


Se desmonta. Se comprueba: e2fsck -f /dev/vgsistema/lv1 Se da el tamao nuevo, menor que el original: resize2fs /dev/vgsistema/lv1 5G Se reduce el LV: lvreduce

6.16.-Mover un disco fuera de un Volume Group


Se busca sustituir un disco (PV: volumen fsico) que forma parte de un volume group (VG) por otro o bien tan solo liberarlo para otros usos, dejando el VG ms pequeo. Pasos para dar de baja el disco:

Mover los datos del disco a otro dentro del VG. Es necesario que el VG tenga espacio libre suficiente para mover todos los datos del PV. Es decir, un nmero de extensiones fsicas (PE,s) igual al de PE,s ocupadas en el disco. Si no hay espacio suficiente, hay que aadir un PV nuevo antes e mover los datos. Una vez comprobado que hay espacio suficiente, se ejecuta el comando siguiente: pvmove /dev/nombre_PV Puede tardar mucho tiempo, dependiendo del tamao del disco. Para evitar problemas conviene ejecutar primero con la opcin -t que simula la operacin pero no la realiza. La opcin -a libera todos los discos que no contienen datos dentro del VG.

Tras mover los datos se puede ya borrar de la configuracin del VG: vgreduce nombre_VG nombre_PV

6.17.-Liberar discos de un VG
Se pretende borrar un VG completo y liberar sus discos. Este proceso es delicado pues afecta a la lista de discos aadidos al sistema en zipl.conf. Procedimiento vlido para SLES9 en zLinux. El procedimiento en pasos, con ejemplos, es el siguiente: 1. Listar LV,s y PV,s del VG y anotarlos. Se quiere borrar tmpvg y liberar sus discos: vgdisplay -v tmpvg 2. Listar los discos activos y anotar los correspondientes a los PV,s que se van a liberar pvs lsdasd 25/09/02 28

3. Desmontar LV,s umount /usr/sap/put 4. Quitar montaje de LV,s en /etc/fstab 5. Desactivar el VG vgchange -an tmpvg 6. Borrar el VG vgremove tmpvg 7. Borrar los PV,s pvremove /dev/dasdj1 8. Ejecutar comandos para limpiar el LVM y que no de errores al buscar lo borrado vgscan, lvscan, pvscan

6.18.-Montaje de discos USB


Dos tipos de dispositivos de almacenamiento: Memoria USB Disco USB Para que se reconozca un usb en un linux hacen falta los mdulos sd_mod, usb_storage y uhci_hcd y tener activo el soporte SCSI y USB en el ncleo. En el linux SuSE 9.3, tras actualizar el ncleo deja de reconocer los discos usb automticamente. Se mira qu mdulos carga y se soluciona cargando el que falte. Por ejemplo: # /sbin/modprobe sd_mod Linux carga los dos primeros automticamente # /sbin/modprobe usb_storage /sbin/modprobe uhci_hcd -->No lo carga automticamente. Ejecutar esta lnea para que vea los discos USB. Aparecen los discos como: Memoria USB: /dev/uba montado en: /media/usbdisk Disco USB: /dev/sda1 montado en /media/CLASSIC_HD marca y modelo. --> el punto de montaje depende de

6.19.-Raid software
Se crean particiones de tipo software raid en diferentes discos. Se puede crear con ellas un software raid de diferentes tipos; incluso se puede crear un raid multipath, de forma que se controle la entrada y salida por varios paths a un mismo disco de SAN. fdisk -l parted cat /proc/mdstat muestra las particiones creadas muestra las particiones en entorno Itanium muestra los raids creados y su estado: md0: active raid1 sda4[2] sdb4[0] xxx blocks [2/1] [U_] --> esto significa una U, una unidad, falta la segunda. Para crear un /dev/mdx nuevo: mdadm create /dev/md0 -a /dev/sda4 /dev/sdb4 Mostrar detalles sobre el sw raid: 25/09/02 29

mdadm - -detail /dev/md0 Para aadir una particin nueva a un raid: mdadm /dev/md0 -a /dev/sdc4 y aparece en /proc/mdstat que se est haciendo el mirror. Para desactivar una de las copias: mdadm /dev/md0 -f /dev/sdb4 Despus de desactivarla se puede quitar (si no se desactiva, no se puede quitar): mdadm /dev/md0 -r /dev/sdb4 Cuando se cambia un disco, la tabla de particiones del anterior sigue en la RAM. Para refrescarla: blockdev rereadpt /dev/sdb Rescaneo de discos SCSI Si no se consigue, comprobamos que en /proc/scsi/scsi el disco que aparece sigue siendo el antiguo. Se rescanea con: rescan-scsi-bus.sh Si sigue el disco antiguo o no aparece disco puedo forzar que lo vea: dmesg > discos vi discos --> buscar sdb. Nos da scsi 0, channel 0 , id 3, lun 0. echo - - - > /sys/class/scsi_host/host0/scan Si conoces host, channel, id y lun, puedo hacer: echo scsi add-single-device h c i Puedo forzar rescaneo del disco: echo 1 > /sys/class/scsi_device/0:0:1:0 Para parar el proceso de recreacin del raid: mdadm --misc /dev/md2 -S Para recrear con modo multipath (un solo disco que se ve por dos SCSI o fibra): mdadm --create /dev/md1 --level=multipath --raid-devices=2 /dev/sdc1 /dev/sdd1 l > /proc/scsi/scsi donde h, c, i, l son host, channel, id y lun respectivamente.

6.20.-Etiquetar un sistema de archivos


tune2fs -L discod /dev/sda5 discod a sda1 En fstab puedo indicar que monte por etiqueta: LABEL=discod /mnt/d ext3 y montar ejecutando: mount discod Para ver la etiqueta: dumpe2fs --> pone la etiqueta

Para encontrar un FS para una etiqueta: findfs label=

25/09/02

30

6.21.-9. Controlling the SCSI Command Timer and Device Status: timeout SCSI
The Linux SCSI layer sets a timer on each command. When this timer expires, the SCSI layer will quiesce the host bus adapter (HBA) and wait for all outstanding commands to either time out or complete. Afterwards, the SCSI layer will activate the driver's error handler. When the error handler is triggered, it attempts the following operations in order (until one successfully executes): 1. 2. 3. 4. Abort the command. Reset the device. Reset the bus. Reset the host.

If all of these operations fail, the device will be set to the offline state. When this occurs, all IO to that device will be failed, until the problem is corrected and the user sets the device to running. The process is different, however, if a device uses the fibre channel protocol and the rport is blocked. In such cases, the drivers wait for several seconds for the rport to become online again before activating the error handler. This prevents devices from becoming offline due to temporary transport problems.

Device States
To display the state of a device, use: cat /sys/block/<device name>/device/state To set a device to running state, use: echo running > /sys/block/<device name>/device/state

Command Timer
To control the command timer, you can write to /sys/block/<device name>/device/timeout. To do so, run: echo <value> /sys/block/<device name>/device/timeout Here, <value> is the timeout value (in seconds) you want to implement. Alternatively, you can also modify the timeout udev rule. To do so, open /etc/udev/rules.d/50udev.rules. You should find the following lines: ACTION=="add",SUBSYSTEM=="scsi",SYSFS{type}=="0|7|14",\ RUN+="/bin/shc'echo60>/sys$$DEVPATH/timeout'" echo 60 refers to the timeout length, in seconds; in this case, timeout is set at 60 seconds. Replace this value with your desired timeout length. Note that the default timeout for normal file system commands is 60 seconds when udev is being used. If udev is not in use, the default timeout is 30 seconds.

7.-SAN
7.1.-Drivers multipath en Aix/Linux
LVM SDD MPIO Fibreutils (Qlogic), Ipfcdriver (Emulex) Device mapper RDAC para Linux (ya no se usa) para Aix y Linux, slo con ESS, DS8000 y SVC. En Linux se abandona a partir de Sles 10 y RHEL 5. Aix 5.2 y superiores, driver nativo. Linux Para todo Linux. DS4000 y DS5000

25/09/02

31

7.2.-Tarjetas HBA
Dos tipos: Emulex y Qlogic. Drivers: Emulex: Qlogic: lpfc qla2xxx

7.3.-Informacin de HBAs
Est en: /sys/class/scsi_host/hostx O, en versiones nuevas de Linux: /sys/class/fc_host/hostx/port_name Donde x es 0,1,2, ... Normalmente la 0 es la SCSI interna y las otras son adicionales y de fibra. En este directorio est el WWPN.

7.3.1.-Tipo de tarjeta
SCSI Fibra. cat /sys/class/scsi_host/hostx/xxxxx

7.3.2.-Nivel de firmware
cat /sys/class/scsi_host/hostx/fw_version

7.3.3.-Estado
cat /sys/class/scsi_host/hostx/state --> online

7.4.-Caractersticas de un dispositivo SCSI


Sginfo -s /dev/st0 --> Le pide el nmero de serie a una unidad de cinta.

7.5.-Nmero mximo de LUN,s


To setup multiple LUNS, the option used would be optionsscsi_modmax_luns=xxx. Note the difference in previous Red Hat Enterprise Linux versions where the option would be optionsscsi_mod max_scsi_luns=xxx. Listed below are the steps to configure multiple LUNs in Red Hat Enterprise Linux 4: 1. In /etc/modprobe.conf add the line below: optionsscsi_modmax_luns=xxx (add the number of LUNs to support in place of xxx) 2. Build the initial ramdisk to implement the change mkinitrdf/boot/newimage2.6.xx2.6.xx Donde2.6.xxexisteen/lib/modulescomodirectorio.ds (add the exact kernel version you have in place of xx) 3. Reboot the system. After the reboot, the LUNs should appear. 25/09/02 32

7.6.-Escaneo de la SAN
echo - - - > /sys/class/scsi_host/host0/scan

7.7.-Asignacin de discos de fibra


Se explica cmo aadir a mano un disco SCSI al sistema. 1. Escaneamos para aadir disco igual en en los ESX: echo "scsi-qlascan" > /proc/scsi/qla2300/n donde n es la tarjeta de fibra 2. Una vez escaneado si hacemos un cat de la tarjeta veremos los discos nuevos identificados por un asterisco: ( 4: 2): Total reqs 0, Pending reqs 0, flags 0x0*, 0:0:85, 3. Ahora tenemos que registrar el dispositivo en el sistema operativo. Una vez registrado aparecera sin el asterisco: echo "scsi add-single-device R C T L" > /proc/scsi/scsi R tarjeta 1 o 2, la 0 es la ServeRAID C0 T id L lun Para el ejemplo anterior tendremos que ejecutar: echo scsi add-single-device 1 0 4 2 > /proc/scsi/scsi para registrar el disco de lun 2 Id 4 en la tarjeta SCSI 1. Al hacerlo si hacemos un cat de la tarjeta veremos: ( 4: 2): Total reqs 0, Pending reqs 0, flags 0x0, 0:0:85, como ya no aparece con un asterisco el disco esta registrado en el sistema operativo y podremos utilizarlo. 4. Muy importante es hacer los puntos 1 a 3 para cada tarjeta de fibra en la maquina y para cada disco en cada tarjeta. 5. Si al hacer un cat en todas las tarjetas de fibra ya no nos sale ningn dispositio con asterisco, todos los discos estan asignados en el sistema operativo, estamos listos para trabajar con los discos.

8.-Multipath de SAN
8.1.-Rootvg en multipath
Para instalar RHEL5 sobre multipath se utiliza el parmetro del ncleo mpath en el arranque de la instalacin: boot: linux mpath El sistema sugiere instalar, en lugar de sobre /dev/sda y /dev/sdb, en el disco /dev/mapper/mpath0. Despus hay que configurar el multipath.conf para aadir discos nuevos. 25/09/02 33

Testeado en RHEL 5.5 sobre dos VIO servers en Power 7. El problema de este procedimiento es que a la hora de clonar un servidor no basta con realizar un dd desde el VIOs y levantar ya que el filtro del devmapper es demasiado estricto. An no di con la solucin. Al arrancar la particin clonada esta da un kernel panic al intentar montar el disco. Carga el initrd pero no llega al disco, no lo ve. multipath.conf: defaults { user_friendly_names yes } blacklist { devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*" devnode "^(hd|xvd|vd)[a-z]*" wwid "*" } # Make sure our multipath devices are enabled. blacklist_exceptions { wwid "3600601606cc221008cd417531d7edf11" } Arrancamos desde CD, con boot: linux rescue. Montamos /, /var y /boot y hacemos chroot. Borramos el contenido de /var/lib/multipath/bindings y lanzamos multipath -F y multipath para que los recree. Lo hace bien: aade el id que devuelve scsi_info -gus /block/sda. Hemos recreado el initrd y rearrancado. Se queda siempre en kernel panic al buscar el disco. La cabina de almacenamiento es una EMC Clariion y el driver del VIOs es PowerPath. Bien instalado y con licencia. El initrd contiene el /etc/multipath.conf y los mdulos de device mapper. Al actualizar el sistema operativo se regenera el initrd sin necesidad de rehacerlo. Si quisiramos aadir multipath sobre un sistema instalado sin l habra que recrear el initrd tras meter en el mismo mdulos de device mapper, multipath.conf y yaboot.conf. Es preferible reinstalar con multipath. Prueba sugerida por Tortosa: Asumo que ese es el multipath.conf que anaconda te fabrica automticamente. Comenta las lneas wwid "*" y wwid "3600601606cc221008cd417531d7edf11" o por lo menos la primera de las dos y regenera el disco ram. Despus clonas.

8.2.-Multipath con Device Mapper/1


Para los nombres de disco de la blacklist: los encuentro con ls /dev/disk/by-id/*. Mtodo independiente del dispositivo de almacenamiento y el nivel de ncleo.

25/09/02

34

Se carga un mdulo del device mapper: Mdulo DDM configurado en /etc/multipath.conf (round robin para reparto de carga) En /etc/dm.conf se crea un alias para que el nombre del disco sea ms corto.

8.2.1.-Comandos
/sbin/multipath, scan the system for multipathed devices, assembles them and update the devicemapper's maps /usr/bin/multipathd, wait for maps events, then execs multipath devmap-name /sbin/devmap_name, provides a meaningful device name to udev for devmaps kpartx /sbin/kpartx, maps linear devmaps upon device partitions, which makes multipath maps partionable

8.2.2.-Archivo multipath.conf para acceso simultneo a SAS, DS4000 y DS8000


Revisar en $docs/linux/varios/multipath.
defaults { polling_interval 30 failback immediate no_path_retry 5 rr_min_io 100 path_checker tur user_friendly_names yes } # An example of using an alias. # NOTE: this will override the "user_friendly_name" for this LUN. # # Here a LUN from IBM storage with wwid 3600507630efffe32000000000000120a # is given an alias of "IBM-1750" and will appear as "IBM-1750 #(3600507630efffe32000000000000120a)", when "multipath -l(l)" is invoked. # Se le da un alias a cada disco SAS; no s si a cada particin SAS: multipaths { multipath { wwid 1IBM_IPR-10_01574DF403A89124 alias system-raid1-ds3000-sas } multipath { wwid 36005076308ffc3cc0000000000001000 alias q1_temp_01 multipath { wwid 36005076308ffc3cc0000000000001002 alias q1_catalog_01 } # # devices : List of per storage controler settings, overrides default # settings (device_maps block), overriden by per multipath # settings (multipaths block) # # vendor : Vendor Name # # product : Product Name # # path_grouping_policy : Path grouping policy to apply to multipath hosted # by this storage controller # # prio_callout : The program and args to callout to obtain a path # weight. Weights are summed for each path group to # determine the next PG to use case of failure. # NOTE: If no callout then all paths have equals weight. # # Dispositivos de IBM # devices { # SVC device {

25/09/02

35

} # DS6000 device { vendor "IBM" product "1750500" path_grouping_policy group_by_prio prio_callout "/sbin/mpath_prio_alua /dev/%n" } # DS8000 device { vendor "IBM" product "2107900" path_grouping_policy group_by_serial } # ESS 800 device { vendor "IBM" product "2105800" path_grouping_policy group_by_serial } # DS4800 device { vendor "IBM" product "1815" path_grouping_policy "group_by_prio" path_checker "rdac" hardware_handler "1 rdac" failback "immediate" prio "rdac" } }

vendor "IBM" product "2145" path_grouping_policy group_by_prio prio_callout "/sbin/mpath_prio_alua /dev/%n"

8.3.-Multipath con device mapper/2


Ejemplo de configuracin con SVC sobre blades HS22 con RHEL 5.5. Tenemos un SVC y le damos 10 discos de 100 Gb al servidor. DM soporta hasta 4 caminos por disco. Creamos el /etc/multipath.conf con el dispositivo (SVC) que descubrir. Con blacklist evito el disco de arranque interno. El id del interno lo saco de /dev/disk/by_id. Luego aadiremos los discos. Despus activo el servicio: chkconfig multipathd on service multipathd start multipath -v2 --> descubre los dispositivos

[root@blade402 ~]# multipath -ll

--> lista dispositivos

36005076801808523c000000000000048 dm-4 IBM,2145 25/09/02 36

[size=100G][features=1 queue_if_no_path][hwhandler=0][rw] \_ round-robin 0 [prio=200][active] \_ 3:0:2:9 sdae 65:224 [active][ready] \_ 3:0:3:9 sdao 66:128 [active][ready] \_ 4:0:2:9 sdbs 68:96 [active][ready] \_ 4:0:3:9 sdcc 69:0 [active][ready] \_ round-robin 0 [prio=40][enabled] \_ 4:0:0:9 sday 67:32 [active][ready] \_ 4:0:1:9 sdbi 67:192 [active][ready] \_ 3:0:0:9 sdk 8:160 [active][ready] \_ 3:0:1:9 sdu 65:64 [active][ready] 36005076801808523c00000000000003f dm-5 IBM,2145 [size=100G][features=1 queue_if_no_path][hwhandler=0][rw] \_ round-robin 0 [prio=200][active] \_ 4:0:0:0 sdap 66:144 [active][ready] \_ 4:0:1:0 sdaz 67:48 [active][ready] \_ 3:0:0:0 sdb 8:16 [active][ready] \_ 3:0:1:0 sdl 8:176 [active][ready] \_ round-robin 0 [prio=40][enabled] \_ 3:0:3:0 sdaf 65:240 [active][ready] \_ 4:0:2:0 sdbj 67:208 [active][ready] \_ 4:0:3:0 sdbt 68:112 [active][ready] \_ 3:0:2:0 sdv 65:80 [active][ready] 36005076801808523c000000000000047 dm-3 IBM,2145 [size=100G][features=1 queue_if_no_path][hwhandler=0][rw] \_ round-robin 0 [prio=200][active] \_ 4:0:0:8 sdax 67:16 [active][ready] \_ 4:0:1:8 sdbh 67:176 [active][ready] \_ 3:0:0:8 sdj 8:144 [active][ready] \_ 3:0:1:8 sdt 65:48 [active][ready] \_ round-robin 0 [prio=40][enabled] \_ 3:0:2:8 sdad 65:208 [active][ready] \_ 3:0:3:8 sdan 66:112 [active][ready] \_ 4:0:2:8 sdbr 68:80 [active][ready] \_ 4:0:3:8 sdcb 68:240 [active][ready] ... Ahora aadimos los discos a multipath.conf. El id es el nmero del comando anterior: 36005076801808523c000000000000047 y dems. Una entrada por disco.

25/09/02

37

Multipath.conf:
# This is an example configuration file for device mapper multipath. # For a complete list of the default configuration values, see # /usr/share/doc/device-mapper-multipath-0.4.5/multipath.conf.defaults devnode_blacklist { wwid 3600508e0000000007de02c4c9799db0a # disco local } defaults { polling_interval 30 failback immediate no_path_retry 5 rr_min_io 100 path_checker tur user_friendly_name yes } # SVC device { vendor "IBM" product "2145" path_grouping_policy group_by_prio prio_callout "/sbin/mpath_prio_alua /dev/%n" } multipaths { multipath { wwid 36005076801808523c000000000000048 alias vdrodas01 path_grouping_policy group_by_prio path_selector "round-robin 0" rr_weigth priorities } multipath { wwid 36005076801808523c00000000000003f alias vdrodas02 path_grouping_policy group_by_prio path_selector "round-robin 0" rr_weigth priorities } multipath { wwid 36005076801808523c000000000000047 alias vdrodas03 path_grouping_policy group_by_prio path_selector "round-robin 0" rr_weigth priorities } multipath { wwid 36005076801808523c000000000000046 alias vdrodas04 path_grouping_policy group_by_prio path_selector "round-robin 0" rr_weigth priorities } multipath { wwid 36005076801808523c000000000000045 alias vdrodas05

25/09/02

38

path_grouping_policy group_by_prio path_selector "round-robin 0" rr_weigth priorities } multipath { wwid 36005076801808523c000000000000044 alias vdrodas06 path_grouping_policy group_by_prio path_selector "round-robin 0" rr_weigth priorities } multipath { wwid 36005076801808523c000000000000043 alias vdrodas07 path_grouping_policy group_by_prio path_selector "round-robin 0" rr_weigth priorities } multipath { wwid 36005076801808523c000000000000042 alias vdrodas08 path_grouping_policy group_by_prio path_selector "round-robin 0" rr_weigth priorities } multipath { wwid 36005076801808523c000000000000041 alias vdrodas09 path_grouping_policy group_by_prio path_selector "round-robin 0" rr_weigth priorities } multipath { wwid 36005076801808523c000000000000040 alias vdrodas10 path_grouping_policy group_by_prio path_selector "round-robin 0" rr_weigth priorities } }

El resultado es este:
# ls /dev/mapper/ vdrodas02 vdrodas02p2 vdrodas03 vdrodas05 vdrodas07 vdrodas09 vdrodas01 vdrodas02p1 vdrodas02p3 vdrodas04 vdrodas06 vdrodas08 vdrodas10

Estos son los discos definidos. Si tengo que borrar la definicin de dispositivos: blockdev - -rereadpt /dev/sdxxx multipath -F multipath -v2 multipath -ll borra los /dev/mapper/* los redescubre los muestra

25/09/02

39

8.4.-Filtrado de LVM para device mapper


En /etc/lvm/lvm.conf hay que cambiar el filtro para que busque los PV,s slo en los dispositivos /dev/mapper/* y evite buscarlos en los /dev/sd*. Ejemplo: filter = [ #"r|/dev/.*/by-path/.*|", #"r|/dev/.*/by-id/.*|", #"a|/dev/disk/by-name/IBM-1814_LUN10|", "a|/dev/mapper/IBM-1814_LUN10|", #"a|/dev/dm*|", "a|/dev/sda|", "r|.*|" ]

9.-Procedimeento de recuperacin ante desastres


9.1.-Arranque en monousuario
Es el equivalente a init 1 desde el sistema operativo arrancado.

9.1.1.-LILO
Se entra, desde el arranque, tecleando en el prompt de arranque (boot: ): boot: o bien boot: o bien boot: linux single init single init 1

9.1.2.- GRUB
En el men de arranque (Grub), seleccionar el kernel y:

Pulsar e para editar la entrada Seleccionar la segunda lnea, la que comienza con kernel Presionar e para editarla Aadir la letra S al final de la lnea y pulsar Enter Presionar b para arrancar

Si / se ha montado en slo lectura, remontar: mount -o remount,rw /

9.2.-Si el sistema no arranca por corrupcin del raz


Si el / es un reiserfs y se ha corrompido:

25/09/02

40

Arrancar desde CD, entrar en rescue system fsck.reiserfs /dev/particin_raz Si es otro tipo de sistema de archivos utilizar el fsck adecuado: si no, dar problemas. No es posible hacerlo arrancando en modo de mantenimiento y, sin montar el /, hacer el fsck.reiserfs. Porque est en modo de slo lectura y, si lo monto con: mount -n -o remount,rw / , al estar montado, tampoco. No correr nunca fsck con el sistema de archivos montado. Si es ext3, avisa de posible corrupcin y se corrompe con toda seguridad.

9.3.-Drivers de arranque en initrd


Se ha clonado un servidor HP mediante Acronis y se pasa, por ejemplo, a un blade server de IBM, un HS21. Al restaurar el servidor ocurren dos cosas:

No se ven los discos SCSI porque los drivers no estn en initrd; no arranca Los drivers no vienen en /etc/modprobe.conf por lo cual, si arrancara de alguna forma, no podra ver los discos despus /etc/fstab puede contener nombres de disco que hayan cambiado; si se monta por label, no hay que cambiar nada, montar sin problema

Es necesario pues comprobar que se dispone de los drivers necesarios en /lib/modules/nombre_del_ncleo, aadirlos a /etc/modprobe.conf y meterlos en el initrd de arranque. Lo vemos con el ejemplo anterior, de paso de HP a HS21: Se restaura la copia Acronis de un RHEL AS 4 U6 sobre el HS21 y no arranca. Se arranca desde el CDrom de RHEL AS 4 U6 y se entra en modo rescate o se abre una shell. Se crea /mnt/hd y se monta /root (y dems subdirectorios) en l. Se monta en modo bind el /dev en /mnt/hd/dev: mount -o bind /dev /mnt/dev En versiones RHEL 5 y siguientes, se monta tambin /sys y /proc con bind. Se hace chroot: chroot /mnt/hd Contenido del /etc/modprobe.conf, tal como viene de HP: alias alias alias alias alias eth0 bnx2 eth1 bnx2 scsi_hostadapter aacraid scsi_hostadapter1 ata_piix scsi_hostadapter2 lpfc

Los drivers de red son vlidos; los scsi no. Es necesario borrar las lneas de scsi, las tres ltimas y aadir las necesarias para los SCSI IBM; las ltimas lneas las aadir Kudzu en el primer arranque tras borrar configuraciones antiguas y aadir nuevas: alias alias alias alias alias scsi_hostadapter mptbase scsi_hostadapter1 mptscsi scsi_hostadapter2 mptspi scsi_hostadapter3 mptsas scsi_hostadapter4 mptscsih

# Aadidas por kudzu: alias usb-controller uhci-hcd alias scsi_hostadapter ata_piix 25/09/02 41

alias eth1 tg3 alias scsi_hostadapter5 qla2400 Se recrea el initrd. El ncleo debe tener un directorio en /lib/modules con su nombre. Se crea el initrd para el mismo ncleo (o similar) al que est corriendo. Si no existe /lib/modules/2.6.9-67.0.7.ELsmp, no se podr regenerar initrd para el mismo. Se ejecuta: mkinitrd -f /boot/newimage-2.6.9-67.0.7.ELsmp 2.6.9-67.0.7.ELsmp Se cambia la password de root y de cualquier usuario necesario y se rearranca. Ya debe arrancar bien. Es necesario guardar la configuracin de red (adaptadores, rutas y resolv.conf) porque se van a borrar en el primer arranque (lo har Kudzu, interactivamente). En RHEL 5 sobre blade HP los drivers para HP son: cciss ata_piix bnx2x para scsi. para ATA. para Ethernet.

9.4.-BACKUP Y RECUPERACIN
Para salvar un sistema Linux lo ms fcil es copiarlo entero en formato tar, cpio, comprimido o no a un disco de red o cinta con todas las aplicaciones posibles paradas. Para restaurarlo: a partir de lo que haya sobrevivido del sistema instalar un Linux mnimo y restaurar sobre l la copia hecha. Otras opciones son utilizar la herramienta kbackup o TSM. En el segundo caso, aparte de reinstalar Linux ser necesario reinstalar el cliente TSM y reconfigurar los archivos dsm.opt y dsm.sys.

9.5.-CREAR DISQUETE DE ARRANQUE


mkbootdisk --iso 2.6.18-194.el5 --device ./rhel5.iso

9.6.-CMO RETOCAR UN RAMDISK (initrd)


Un ramdisk es un sistema de archivos que se carga en RAM en el arranque del sistema. Se crea como un archivo y, al montarlo, se puede modificar para incluir en l archivos.

9.6.1.-Mtodo antiguo
Al crearlo se le inicializa a ceros (/dev/zero). Cuando se borra un archivo no se libera espacio pues el espacio que ocupaba ahora no lo ocupan ceros. Partimos de /boot/initrd: gzip -dc initrd > discoram mount -o loop discoram /mnt/discoram 25/09/02 42

Lo modifico. umount /mnt/discoram bzip2 -9 discoram mv discoram /temp/initrd --> este ya es el disco ram. Lo comprimo con bzip2 o con gzip; bzip2 comprime ms. El parmetro -9 indica que la compresin ha de ser mxima. Otro mtodo de integrar archivos en el ramdisk es: cp /boot/initrd /boot/initrd.bak yast - system admin - change conf. file - INITRD-MODULES - reiserfs F10 salir. mk_initrd Deja creado un initrd. Lo metemos en lilo.conf y ejecutamos lilo. Lilo.conf queda: initrd = /boot/initrd. Este mtodo deja el ramdisk del sistema de un tamao mayor al original. Si queremos crear despus un disco de arranque dar un error. De ah que comience haciendo copia del initrd original. Creacin de disquete de arranque dd if=bootdisk of=/dev/fd0 bootdisk se baja de internet (www.suse.com suse.de) o se coge del disco 1 de SuSE, donde adems estn los mdulos; todo en /cdrom/disks.

9.6.2.-Mtodo nuevo
cp /boot/su_archivo_initrd.img /tmp/su_archivo_initrd.img.gz gunzip /tmp/su_archivo_initrd.img.gz mkdir /tmp/initrd cd /tmp/initrd Para saber si es un cpio: file /tmp/su_archivo_initrd.img En caso de ser un cpio devuelve: su_archivo_initrd.img: ASCII cpio archive (SVR4 with no CRC) Si es un cpio, se descomprime: cpio -idv < /tmp/su_archivo_initrd.img Si no es un cpio se monta: mount -o loop /tmp/su_archivo_initrd.img /tmp/initrd Guardar despus de hacer los cambios:

25/09/02

43

mv /boot/su_archivo_initrd.img /boot/su_archivo_initrd.img.bak cd /tmp Si es un cpio: find initrd -print -depth | cpio -ocv > /tmp/su_archivo_initrd.img Si no es un cpio: umount /tmp/initrd gzip /tmp/su_archivo_initrd.img mv /tmp/su_archivo_initrd.img.gz /boot/su_archivo_initrd.img

10.-COMUNICACIONES TCPIP
La configuracin se encuentra principalmente en /etc/sysconfig/network*, segn distribucin. Comando general de TCPIP: ip --> manipula rutas, dispositivos, etc. Otros: ifconfig, ifup/ifdown, etc.

10.1.-IP,s presentes en una red


Nos conectamos a una red y no sabemos la IP de un servidor. Podemos pedir las IP,s de toda la red lanzando un ping a la red: ping -b 192.168.70.0 hace un ping a la red de IMM,s de un blade center. As podemos saber qu IP tiene el AMM cuya IP desconocemos.

Buscamos en la salida las IP,s encontradas: soRT -U kk|awk '{ print $4 }'|sort -u

10.2.-Desactivar IP V6
Para deshabilitar y que no de problemas con el driver de bonding en RHEL: echo "options ipv6 disable=1 " > /etc/modprobe.d/disable_ipv6.conf En RHEL adems aado en /etc/sysconfig/network: NETWORKING_IPV6=no Stop the ipv6tables service service ip6tables stop Disable the ipv6tables service chkconfig ip6tables off y en los ifcfg-ethx: IPV6INIT=no

25/09/02

44

Compruebo: ip a | grep inet6 --> si no sale nada, es que est deshabilitado.

Para desactivarlo slo en Firefox: about:config buscar ipv6 aparece: network.dns.disableIPv6: poner a true.

10.3.-NMAP
nmap es una aplicacin que pregunta a una IP sus puertos abiertos. nmap ip

10.4.-Configuracin de Telnet
Se arranca desde xinetd. Para poder entrar como root hay que editar /etc/securetty y aadir pts/0 para que pueda entrar un usuario con telnet.

10.5.-Orden de bsqueda de direcciones IP


Dado un servidor con su /etc/hosts y un fichero /etc/resolv.conf con los dominios y servidores DNS. En /etc/hosts aparece una entrada 127.0.0.1 localhost y otra 127.0.0.2 nombre_del_host. Ambas entradas son necesarias. Si borramos la segunda y el DNS est cado o no hay red no se puede hacer, por ejemplo, login al servidor (en ocasiones). Sin embargo, algunas aplicaciones no funcionan bien con la 127.0.0.2 (creo que porque usan socks). Solucin: cambiar el orden de bsqueda de los nombres de sistema tcpip. Se hace editando el archivo: /etc/nsswitch.conf para cambiar: hosts: network: por: hosts: network: dns files dns files. files dns files dns

As buscar primero en el dns y, de no encontrarlo, en el /etc/hosts.

10.6.-MTU
Ip link set dev eth0 mtu 1500 --> establece un mtu=1500 Se cambia de forma permanente aadiendo la lnea: MTU=1500 a /etc/sysconfig/network-scripts/ifcfg-eth0.

10.7.-Configuracin ethernet 10.7.1.-Caso 1


En el caso de querer variar la configuracin de la tarjeta hay que mirar en /etc/modules.conf y 25/09/02 45

buscar la lnea que hace referencia al adaptador. Hay que aadirle unos parmetros a esta lnea los cuales dependen de la tarjeta que se est utilizando. Por ejemplo, para una e100 queda la lnea as: alias eth0 e100 e100_speed_duplex=2 donde 2 indica 10 Full duplex. 1 es 10 semidplex, 3 es 100 semidplex y 4 es 100 dplex. Para una tarjeta 3c905c Tornado (3Com): insmod 3c59x.o debug=0 full-duplex=1. Los mdulos estn en: /lib/modules/2.4.18.../kernel/drivers/net. El paquete diag-ether permite comprobar gran nmero de tarjetas ethernet y configurar algunas. Lspci, lsdev, lsmod comprueban los dispositivos y los mdulos cargados.

10.7.2.-Caso 2
Tenemos una ethernet que no funciona. Queremos aadir otra. lsmod ifdown eth0 rmmod 3c59x Ahora tenemos limpio el sistema. Vamos a aadir las tarjetas; insertamos el mdulo de modprobe e100 modprobe 3c59x Ahora configuramos eth0: ifup eth0 --> esto toma la configuracin que le tenamos dada al eth0 antiguo. --> Pasa a ser eth0 --> Pasa a ser eth1 la nueva:

eth1 hay que configurarla (con yast2, por ejemplo).

10.8.-Aadir un alias a una ethernet


ifconfig eth0:0 up direccin_ip Se puede dejar como configuracin definitiva creando un archivo ifcfg-eth0:0, ifcfg-eth:1, etc para cada alias dentro de /etc/sysconfig/network-scripts. Ejemplo: # cat /etc/sysconfig/network-scripts/ifcfg-eth0:1 DEVICE=eth0:1 BOOTPROTO=static IPADDR=192.168.30.127 NETMASK=255.255.255.0 NETWORK=192.168.30.0 BROADCAST=192.168.30.255 ONBOOT=yes Otra manera es crear rangos de direcciones. Para cada rango se aade un fichero ifcfg-eth_x-range_y. Por ejemplo, para crear dos rangos sobre eth0 se crean los archivos siguientes: # ls ifcfg-eth0* ifcfg-eth0 ifcfg-eth0-range1 ifcfg-eth0-range2 25/09/02 46

# cat ifcfg-eth0-range1 IPADDR_START=172.16.4.127 IPADDR_END=172.16.4.137 CLONENUM_START=0 # cat ifcfg-eth0-range2 IPADDR_START=172.16.4.129 IPADDR_END=172.16.4.139 CLONENUM_START=1

10.9.-Crear un bond ethernet


El driver de bonding depende de la IPv6 as que hay que tener cuidado al deshabilitarla. Ver apartado de IPv6. Se parte de dos adaptadores de red, eth0 y eth1, y se quiere unirlos para crear un link aggregation, bond, o etherchannel. Estos nombres dependen del sistema operativo y del hardware de red. En Linux se les llama bond y supone la unin de dos o ms adaptadores en un solo canal. Se pueden unir para reparticin de carga o slo para failover. Si se unen para repartir carga ambos adaptadores van a estar activos a la vez. Esto requiere crear un link aggregation en el switch. Si slo para failover, el linux desactiva uno de los adaptadores y no hace falta tocar el switch. Cuidado con los blade servers y passthrough modules: van forzados a Gb FD, por lo que, si no se levanta un bond en ellos, puede deberse a esto.

10.9.1.-RedHat
Ver IPv6. En RedHat la configuracin se crea editando los archivos siguientes en /etc/sysconfig/network-scripts. En este caso se crean dos bond. Es interesante comprobar que el mtodo estndar falla debido a que el mdulo se carga en modprobe.conf bien para el primer bond, pero no para el segundo. El modprobe.conf de abajo contiene lo necesario para que se configuren ambos bond. Luego, sobre cada bond se pueden crear alias. BOOTPROTO=none USERCTL=no IPV6INIT=no PEERDNS=yes TYPE=Ethernet # GATEWAY= ifcfg_bond1 DEVICE=bond1 ONBOOT=yes IPADDR=10.64.110.94 NETMASK=255.255.255.0 NETWORK=10.64.110.0 BROADCAST=10.64.110.255 BOOTPROTO=none USERCTL=no IPV6INIT=no PEERDNS=yes TYPE=Ethernet GATEWAY=10.64.110.254

Modprobe.conf alias eth0 bnx2 alias eth1 bnx2 alias eth2 tg3 alias eth3 tg3 install bond0 /sbin/modprobe bonding -o bond0 miimon=100 mode=1 install bond1 /sbin/modprobe bonding -o bond1 miimon=100 mode=1 ifcfg_bond0 DEVICE=bond0 ONBOOT=yes IPADDR=1.1.1.5 NETMASK=255.255.255.0 NETWORK=1.1.1.0 BROADCAST=1.1.1.255 25/09/02

47

ifcfg_eth2 ifcfg_eth0 DEVICE=eth0 USERCTL=no ONBOOT=yes MASTER=bond0 SLAVE=yes BOOTPROTO=none TYPE=Ethernet ifcfg_eth1 DEVICE=eth1 USERCTL=no ONBOOT=yes MASTER=bond1 SLAVE=yes BOOTPROTO=none TYPE=Ethernet DEVICE=eth2 USERCTL=no ONBOOT=yes MASTER=bond0 SLAVE=yes BOOTPROTO=none TYPE=Ethernet ifcfg_eth3 DEVICE=eth3 USERCTL=no ONBOOT=yes MASTER=bond1 SLAVE=yes BOOTPROTO=none TYPE=Ethernet

10.9.2.-Otro ejemplo con RedHat


Ver IPv6. modprobe.conf: alias bond0 bonding options bonding miimon=100 mode=1 alias eth0 bnx2 alias eth1 bnx2 ifcfg-bond0 DEVICE=bond0 USERCTL=no ONBOOT=yes BROADCAST=172.16.4.255 IPADDR=172.16.4.20 NETMASK=255.255.255.0 NETWORK=172.16.4.0 ifcfg-eth0 DEVICE=eth0 USERCTL=no ONBOOT=yes MASTER=bond0 SLAVE=yes BOOTPROTO=none TYPE=Ethernet ETHTOOL_OPTS="speed 1000 duplex full autoneg off" Duplex ifcfg-eth1 DEVICE=eth1

Fuerza a GB Full

10.9.3.-zSLES

25/09/02

48

ifcfg-bond0 BOOTPROTO='static' BROADCAST='10.1.1.255' IPADDR='10.1.1.11' NETMASK='255.255.255.0' NETWORK='10.1.1.0' REMOTE_IPADDR='' STARTMODE='auto' BONDING_MASTER='yes' BONDING_MODULE_OPTS='miimon=100 mode=6' BONDING_SLAVE0='qeth-bus-ccw-0.0.3720' BONDING_SLAVE1='qeth-bus-ccw-0.0.37aa' PREFIXLEN='' ifcfg-qeth-bus-ccw-0.0.37a0 BOOTPROTO='static' UNIQUE='' STARTMODE='auto' IPADDR='172.22.0.221' NETMASK='255.255.240.0' NETWORK='172.22.0.0' BROADCAST='172.22.15.255' _nm_name='qeth-bus-ccw-0.0.37a0' PREFIXLEN='' ifcfg-qeth-bus-ccw-0.0.37aa BOOTPROTO='none' LLADDR='02:00:04:04:04:04' STARTMODE='onboot' UNIQUE='Q+DI.FOqOuhDmSR4' _nm_name='qeth-bus-ccw-0.0.37aa'

10.10.-VLAN tagging por un ethenet


Se requiere conectar un solo ethernet a varias VLAN,s. Se configura el puerto del switch donde est conectada esta ethernet en las vlanes necesarias, por ejemplo la 34 y la 35. Se configura el puerto como tagged. Se configura desde una consola la red del servidor para que utilice vlan tagging creando, para el adaptador, eth0 en el ejemplo, los siguientes archivos: /etc/sysconfig/networkscripts/ifcfgeth0 /etc/sysconfig/networkscripts/ifcfgeth0.34 /etc/sysconfig/networkscripts/ifcfgeth0.35 Los dos segundos son copia del primero. Les aado a ambos VLAN=yes. Aadir el router por defecto en /etc/sysconfig/network. Quedan as: /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 ONBOOT=yes /etc/sysconfig/network-scripts/ifcfg-eth0.34 similar eth0.35, con otra IP.

25/09/02

49

DEVICE=eth0.34 BOOTPROTO=static HWADDR=XX:XX:XX:XX:XX:XX IPADDR=10.10.10.1 NETMASK=255.255.255.0 NETWORK=10.10.10.0 ONBOOT=yes TYPE=Ethernet VLAN=yes vconfig rem eth0.34 para quitar una vlan sin rearrancar

10.11.-Forzar la velocidad de conexin de una ethernet


Se puede utilizar en muchos casos una herramienta (si no, hay que basarse en cmo lo haga su driver) llamada mi-tool: mii-tool -F 100 BaseTx-FD eth0 ethtool -s eth0 speed 1000 duplex full Esto ocurre, por ejemplo, con Linux sobre Blade Center conectndose al exterior mediante un CPM (mdulo passthrough). Se puede incluir en el script del adaptador (/etc/sysconfig/network/ifcfg-eth0) la lnea: ETHTOOL_OPTS="speed 100 duplex full autoneg off" para que arranque forzada. --> Fuerza a 100 full duplex. Si la tarjeta no es compatible con mii-tool, tambin se puede usar ethtool:

10.12.-Ver si una Ethernet tiene enlace


ethtool eth0 Speed: 100Mb/s Duplex: Full Link detected: yes

10.13.-DHCP
dhcpcd --> con esto suele bastar. Si no: dhcpcd -n -H eth0 dhcpcd -h igan.es.ibm.com Cuando se desactiva una tarjeta ethernet (ifconfig eth0 down) para, por ejemplo, conectar por mdem, se reactiva con: ifconfig eth0 up; con ifconfig se comprueba que vuelve a tener la direccin que tena pero no conecta. Para que funcione completamente se lanza el dhcp ejecutando: dhcpcd. Para arrancar el servidor: dhcpd -d -f

10.14.-Puertos y aplicaciones
Cmo saber qu proceso corre en qu puerto: lsof -i lsof -i :80 fuser -n tcp -v 80 netstat -np 25/09/02 50 quin da servicio en el puerto 80.

nmap -T Aggressive -A -v 127.0.0.1 -p 1-65000 netstat --tcp --udp --listening --program lsof +M -i4 fuser -v 2208/tcp

requiere instalar nmap

puedo matar el proceso con -vk

10.15.-Netstat; problema de sockets contra loopback


netstat -an Muestra los puertos utilizados en el sistema con su direccin IP. netstat -a muestra "hostname puerto". hostname -an muestra "direccin_ip puerto". Si el servidor Linux tiene una direccin IP y se llama a un servicio de forma local es posible que el puerto escuche en "127.0.0.1 : puerto" y esto, para algunas aplicaciones, no funcionar. Es necesario que escuche en "direccin_ip : puerto". Esto se consigue cambiando el orden en el cual el servidor resuelve los nombres; se cambia en /etc/nsswitch.conf y en /etc/host.conf.

10.16.-INETD
Inetd se activa desde yast2 (se hace que arranque con el sistema). Se edita /etc/inetd.conf para arrancar los servicios que queramos y se ejecuta lo siguiente para que lea este archivo: /etc/rc.d/inetd start / stop / status / reload. Las opciones son: /etc/rc.d/inetd start / stop / status / reload.

10.17.-FTP servidor
El ftp se arranca desde dos lneas de inetd.conf. La segunda arranca un producto que se llama vftpd y que se configura en /etc/vftpd.conf. En este archivo puedo cambiar opciones tales como habilitar o no ftp con usuarios adems de anonymous. Si no permite ftp ms que como anonymous es por esto. Si no permite ftp en absoluto es porque inetd est apagado o bien porque no estn activos los servicios ftp. Se activan modificando inetd.conf y arrancando inetd. Si seguimos con problemas conviene desactivar (yast2) el firewall y reactivarlo cuando hayamos conseguido conectar va ftp, eso s, indicndole que el puerto 21 (ftp) debe estar abierto. OJO: todo lo anterior ocurre porque arranco los dos servicios FTP y el segundo, vsftpd, tapa al primero. Si arranco slo el ftp normal, podr acceder sin ms al FTP (en teora). Si no consigo, hecho esto, conectarme al servidor FTP comprobar: que el software servidor de ftp est instalado que el archivo /etc/ftpusers no contiene mi usuario FTP. Para hacer que el ftp escriba lo recibido con una mscara dada hay que arrancar el servidor FTP desde inetd.conf con la lnea siguiente (Aix): ftp stream tcp6 nowait root /usr/sbin/ftpd ftpd -u 000 Esto ha cambiado: a partir de SuSE 8.2 inetd se cambia por xinetd, distinto. En Ubuntu: 25/09/02 51

vsftpd: # Para activarlo: poner listen=YES y start. En /etc/vsftpd.conf .

10.18.-SOCKS
Utilizo el producto DANTE como cliente socks. Tras instalar los paquetes del producto (dante-1.1.10-126) se configura en tres pasos: A.- Editar el .profile .bash_profile (en realidad, .kshrc .bashrc) de los usuarios que va a usar el cliente socks y aadir: export LD_PRELOAD=/usr/lib/libdsocks.so.0.1.0 B.- Activar socks: men preferencias - network - socks - activar socks - dante. C.- Editar /etc/socks.conf: En este archivo diferenciar entre subredes o servidores a los que se quiere acceder mediante socks y a los que no. A los que no (loopback, DNS,s, servidores Notes, otros) se les da la directiva direct as:

# Rutas a los DNS,s route { from: 0.0.0.0/0 to: 9.139.254.4/32 port = domain via: direct } # Loopback route { from: 0.0.0.0/0 to: 127.0.0.0/8 via: direct command: connect udpassociate # everything but bind, bind confuses us. } # Red local route { from: 0.0.0.0/0 to: 9.137.92.0/23 via: direct } # Proxies. route { from: 0.0.0.0/0 to: 9.139.0.0/16 via: direct }

25/09/02

52

# Servidor Notes route { from: 0.0.0.0/0 to: 9.0.0.0/8 via: direct } A los servidores que se acceden mediante socks se les da via: servidor socks port = puerto. # Rutas va sock route { from: 0.0.0.0/0 to: 10.24.29.0/24 via: 9.137.92.30 port = 1080 protocol: tcp udp method: none #username } No consigo que tome por defecto otro servidor socks para el resto de servidores (no me funciona esto): # Rutas al mundo entero (por un socks distinto al anterior) route { from: 0.0.0.0/0 to: 0.0.0.0/0 via: 9.14.3.71 port = 1080 protocol: tcp udp method: none #username } # server supports tcp and udp. # we are willing to authenticate via # method "none", not "username". proxyprotocol: socks_v4 socks_v5 # server supports socks v4 and v5. # server supports tcp and udp. # we are willing to authenticate via # method "none", not "username". proxyprotocol: socks_v4 socks_v5 # server supports socks v4 and v5.

10.18.1.-Socks de IBM
Se instala el paquete: tsocks-1.8beta4-4IBM. Para instalarlo en SuSE pide un paquete que incluye los comandos bsicos, por lo que es necesario instalarlo con la opcin nodeps de rpm. Cuidado al desinstalar los tsocks: el SuSE queda inservible pidiendo la librera tsocks para cualquier comando sencillo (ls, cp, etc). No s an cmo se evita esto. Some extra utilities are included in this version validateconf - a utility to verify the tsocks configuration file inspectsocks - a utility to determine the version of a socks server saveme - a statically linked utility to remove /etc/ld.so.preload sockson.sh - switch socks on socksoff.sh - switch socks off (default) runtsocks - run an application socksified === Default Server Configuration === Server: super.socks1.server.ibm.com (9.14.3.67) Port: 1080 SOCKS type: 5

25/09/02

53

10.19.-WGET
wget con proxy: Establecer estas variables de entorno en .bashrc del usuario: http_proxy=http://proxy:8080 ftp_proxy=proxy:8080 export ftp_proxy http_proxy Si el proxy requiere autenticacin crear el archivo $HOME/.wgetrc con esto: proxy_user = usuario proxy_passwd = password wget annimo: wget -c ftp://servidor/archivo o, si no encuentra el subdirectorio: wget -c ftp://servidor/archivo wget con usuario: wget --ftp-user=vicenteromero@es.ibm.com --ftp-password=xxx -c ftp://ftp3.linux.ibm.com//redhat/release_cds/rhel-5-u2/Server/x86_64/RHEL5.2-Server-2008043 0.0-x86_64-DVD.iso Opciones: -c para que contine un wget interrumpido por donde iba. Wget de pgina web completa (mirror): wget -m http://paginaweb

10.20.-Winmdem del porttil T23


En la pgina www.linuxcare.com aparece el hardware certificado para cada ordenador. Se busca el T23 de IBM y nos dice que tenemos un Lucent Technologies DSP como mdem y cmo se llama el driver que necesitamos. Es el: ltmodem-kv_2.4.18_4GB-8.22a3-1.i386.rpm Se instala (con rpm -ivh) sobre el kernel 2.4.18_4GB y ya funciona el mdem, que lo instala como: /dev/ttyLT0. Si nos dice que no tenemos el kernel teclear uname -a. Si el kernel es 2.4.18_4GB entonces es el adecuado y slo necesitamos instalar, desde el CD de SuSE, los fuentes del kernel (paquete kernelsource). Tambin se puede saber el mdem del PC tecleando: lspci; en una lnea aparece el modem. Lsmod muestra los mdulos cargados. El cdigo fuente del mdem Lucent est en: http://www.heby.de/ltmodem Si el ncleo es uno distinto de aquel para el que se compil el mdulo hay que recompilarlo. Es sencillo y los fuentes estn en la pgina anterior.

10.21.-Rutas
Ver rutas: netstat -rn Borrar todas las rutas: ip route flush default Aadir ruta por defecto: route add -net 0.0.0.0 netmask 255.255.248.0 gw ip_del_gw Borrar una ruta: route del -net 0.0.0.0 netmask 255.255.248.0 gw ip_del_gw --> Misma sintaxis que add

25/09/02

54

Las rutas se definen de forma permanente creando entradas en dos archivos, que quedan como sigue: /etc/sysconfig/static-routes ( para RH; para SuSE es: /etc/sysconfig/network/routes): any net 172.20.36.0 netmask 255.255.255.0 gw 172.20.35.1 /etc/sysconfig/network NETWORKING=yes HOSTNAME=igan GATEWAY=172.20.43.1 Para asignar rutas a adaptadores concretos, como es el caso de un servidor con dos adaptadores en dos redes diferentes, con routers distintos, se aade la lnea GATEWAY en /etc/sysconfig/networkscripts/ifcfg-eth0, ifcfg-eth1, etc. Cada ifcfg-ethx con su GATEWAY.

10.21.1.-Tcpdump para ver trfico de rutas


Para ver trfico en el adaptador: tcpdump -i eth1 src 172.30.37.30 desde esa IP.

10.21.2.-Si no se conecta
Esto ocurre en algunas redes. Puede que se est definiendo la ruta por defecto con una mscara concreta. Hay que definirla contra la mscara 0.0.0.0 Si se llega al router pero no ms all es porque la direccin de la red por defecto aparece primero asignada al router y debe ser al revs. El orden correcto es este: $ route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref 172.22.32.0 * 255.255.240.0 U 0 0 default 172.22.32.1 0.0.0.0 UG 0 0

Use Iface 0 eth0 0 eth0

10.22.-Ejecutar script al activar dispositivo


/etc/sysconfig/network/scripts/dhcpcd-hook hacer ifup/ifdown. Se puede cambiar dando un valor a: DHCLIENT_SCRIPT_EXE="" en el archivo /etc/sysconfig/network/dhcp. Se puede aadir, por ejemplo, una lnea como esta en el script: if [ $INTERFACE = tr0 ] then route add -net 0.0.0.0 netmask 255.255.248.0 gw ip_del_gw fi --> Es el script que se ejecuta al

10.23.-IPCALC y /24
Aplicacin (se baja de internet) que muestra caractersticas de una IP, su mscara, la traduce de 255.255.255.0 a /24, da el tipo, etc. Si quiero saber a qu red corresponde el /23, por ejemplo, puedo hacerlo sin ipcalc as: 9.137.92/23 --> ruta a la red 9.137.92.0 con mscara 255.255.254.0 ( 8 + 8 + 7 = 23). Por qu 8 y 7: por el nmero de unos en binario. 8 unos = 11111111 = 255. 7 unos = 11111110 = 254.

25/09/02

55

10.24.-Firewall iptables
Se arranca como un servicio en RH: service iptables start/stop/status Comandos: iptables-save necesarios para iptables-restore iptables -L Por men: system-config-securitylevel muestra por pantalla los pasos recrear la configuracin actual. salva la configuracin a partir de la entrada, un cat de archivo o de un iptables-save. lista configuracin actual.

10.25.-Rendimiento de la red
Se mide con: iperf -c ip_remota

11.-IMPRESORAS
Comando de impresin: Daemon de impresin: Spool de impresora: lpr -Plp0 fichero --> lp, lp0, etc: impresoras definidas. lpd (o cups). /var/spool/lpd/nombreimp (kjobviewer pertenece a kdebase3). Impresin por grfico.

Tambin: cp fichero /dev/lp1 --> para imprimir sin spool.

Gestin grfica de impresoras: kjobviewer -d lp --show Xpp Impresoras de red: Una impresora de red (que funciona directamente conectada, por su ethernet, a la red, sin servidor de impresin) ejecuta internamente un demonio LPD. Para imprimir desde un cliente Linux hay que definir una cola local redirigida contra una cola de impresin que est definida en la impresora. Para configurarla mediante yast2 (suse): Entrar en el mdulo de impresoras del yast2. Aadir impresora del tipo: pre-filter queue for lpd forwarding queue. Hostname: Queue: Driver: IP de la impresora PASS (impresora IBM InfoPrint32; poner en maysculas). Otras: 9100. Generic printer. Postcript level 2.

Name for printing: nombre con el cual se imprime; ej: lp. Para imprimir por esta impresora: lpr -Plp fichero.

11.1.-Impresora por defecto


La informacin de las impresoras creadas aparece en /etc/cups/lpoptions que, para un usuario no root, es $HOME/.lpoptions. En el caso de un usuario normal se indica cul es la impresora por defecto pero, para root (definicin global), lpoptions no indica eso. 25/09/02 56

Para obtener la impresora por defecto: lpstat -d En versiones de cups antiguas se utilizaba $PRINTER; ya no.

11.2.-CUPS
Cups transforma el fichero a postcript, trabaja con l y lo enva a la impresora en postcript, pcl, etc. Para que imprima sin transformar: lpr -oraw fichero Se guarda la configuracin en /etc/cups. Para poder imprimir en un servidor cups desde un puesto cliente hay que cambiar /etc/cups/cupsd.conf para que contenga "Allow pc,s-cliente" tras del "Deny All" por defecto. Se puede instalar en un puesto slo el cliente. En /etc/cups/client.conf se puede dar el ServerName=ip_servidor, y el cliente ver las impresoras del servidor como suyas. Se puede instalar el cups servidor en el puesto. As se definirn las impresoras en local. Para acceder a impresoras de red se definirn como impresoras LPD y, para acceder a impresoras en otro servidor CUPS, se definirn como impresoras IPP. Se puede configurar CUPS o gestionar impresoras desde: Yast2 kups kupsdconf http://localhost:631 lpadmin Cuidado: las impresoras que se crean desde yast2 no se ven en el administrador web. Las creadas mediante lpadmin se ven en kups. Kups y lpadmin/lpstat son los nicos que muestran todas las impresoras creadas. Se prueba a imprimir desde windows. Parece que windows requiere Samba para utilizar las impresoras Linux ya que no da opcin de utilizar impresoras LPD ni IPP. El servidor CUPS se arranca ejecutando: /etc/init.d/cups start y se para: /etc/init.d/cups stop. Una vez arrancado se puede configurar va web: http://localhost:631, usuario root.

11.3.-Utilizacin de impresoras samba desde windows


Desde SWAT se entra en el icono "printers" y se define una impresora samba a partir de las impresoras cups ya creadas en el sistema Linux. Se rearrancan los demonios samba para que est disponible la nueva impresora. El recurso se ve a partir de entonces como una impresora compartida windows. Se define la impresora en el cliente windows como normalmente teniendo en cuenta que el driver que se instale en el cliente va a gobernar formato y caractersticas de la impresin ya que Samba entrega a la impresora los datos sin filtrar. Samba se puede configurar para que entregue los drivers necesarios al windows al definir la impresora en el cliente (no hecho en este piloto). Es necesario dar en el servidor samba los permisos de impresin necesarios. En el piloto se han dado ampliamente desde swat globals username=@users valid users=@users write list=@users El usuario con el cual se va a acceder a la impresora est definido en Linux, pertenece al grupo "users" y est aadido al samba (smbpasswd -a).

11.4.-Printing text in CUPS with no modification. Substitution of printer by backend program.


To avoid any postcript transformation, print this way: lpr -oraw file 25/09/02 57

Anyway, it makes some changes. In this section we discuss how to avoid any transformation of files on a printer queue. CUPS uses spooling to process printer jobs. Sometimes it is useful using spools to send files to, for example, a compiler. The text files are submitted to a defined queue that, instead of sending to a filter and, after, to a printer, sends the file to a filter that is really a compiler or other kind of program able of processing files. Cups defines data types and links a filter program to each of them. These types and filters are defined in: /etc/cups/mime.type. This is an extract of the file showing two types of data defined: text/html text/plain html htm printable(0,1024) +\ (string(0,"<HTML>") string(0,"<!DOCTYPE")) txt printable(0,1024)

First two lines define the type text/html as a file with the extension html or htm (that is, file.htm or file.html) that contains printable characters and starts with a tag such as: <HTML> or <!DOCTYPE>. The other type defined is plain text: only needs printable characters and has, probably, .txt extension (file.txt). The file /etc/cups/mime.convs associates a filter to each conversion from one type to other. This extract shows plain text to postcript conversion and the program texttops associated to make this conversion: # Type1 text/plain Type2 application/postscript Weight 33 Filter texttops

Filters are stored in /usr/lib/cups/filter and needs to be an executable file (C, bash shell, etc). The filter associated is the one used for all conversions between these types, independently from the types associated to each printer. To create a printer that don't modify the text being printed it can be created a printer associated to the device /dev/null but with a filter that simply gets the text and copies it into a file or into the desired printer or other device. This filter is called by CUPS giving six parameters to it. The sixth parameter is the name of the spool archive where the file to be processed is. As in example, a basic filter will be next bash script, stored with the name of /usr/lib/cups/filter/p3287filter: #!/bin/sh # File: /usr/lib/cups/filter/p3287filter: /bin/cat $6 > /tmp/pipe exit 0 Pipe is a text file (or a pipe, created running mkfifi pipe -m 777). Insead of cat, as an example, a compiler could be used to compile all the files put in this queue. Give write permission to all users over /tmp/pipe: chmod 666 /tmp/pipe. Give execution permission to p3287filter: chmod 755 /usr/lib/cups/filter/p3287filter. To create the printer it must be created a .ppd file with the printer definition. For example, let's create /etc/cups/ppd/p3287.ppd with this content, adapted from the content of /etc/cups/ppd/lp0.ppd or whichever printer created before. It can be also obtained modifying any file from /usr/share/cups/model. *PPD-Adobe: "4.3" *% "$Id: p3287.ppd,v 1.4 2002/08/22 12:18:56 jsmeix Exp $" *% Driver to print text with no modifications. Created modifying a standard file. *% Modified by: Jos Vicente Romero /IBM. *FormatVersion: "1.1" *FileVersion: "1.1" *LanguageVersion: Espaol *LanguageEncoding: ISOLatin1 *PCFileName: "POSTSCRIPT.PPD" *cupsFilter: "text/plain 0 p3287filter" *Manufacturer: "Postscript" *Product: "(CUPS v1.1)" *ModelName: "Generic postscript printer" *ShortNickName: "Generic postscript printer" *NickName: "Generic postscript printer" *PSVersion: "(2017.000) 0" *LanguageLevel: "2" *ColorDevice: False *DefaultColorSpace: Gray 25/09/02 58

*FileSystem: False *Throughput: "8" *LandscapeOrientation: Plus90 *VariablePaperSize: False *TTRasterizer: Type42 *UIConstraints: *PageSize Executive *InputSlot Envelope *UIConstraints: *PageSize Letter *InputSlot Envelope *UIConstraints: *PageSize Legal *InputSlot Envelope *UIConstraints: *PageSize A4 *InputSlot Envelope *UIConstraints: *PageSize A5 *InputSlot Envelope *UIConstraints: *PageSize B5 *InputSlot Envelope *OpenUI *PageSize/Media Size: PickOne *OrderDependency: 10 AnySetup *PageSize *DefaultPageSize: A4 *% *% End of "$Id: p3287.ppd,v 1.1 2003/04/25 15:31:00". *% For us, these two options are important: *cupsFilter: "text/plain 0 p3287filter" *DefaultPageSize: A4 First option uses our previously created filter to perform no transformation over the text. Now, the printer must be created running: lpadmin -p p3287 -E -P p3287.ppd The printer is created and it appears inside /etc/cups/printers.conf. Here is an extract showing our just created printer: # Printer configuration file for CUPS v1.1.15 <Printer p3287> Info p3287 DeviceURI file:/dev/null State Idle Accepting Yes JobSheets none none QuotaPeriod 0 PageLimit 0 KLimit 0 </Printer> Here, DeviceURI=/dev/null means that CUPS sends the job to no printer. But, remember, the filter will process the file sending it to /tmp/pipe (in our example) in pure text with no modifications on it. It is important to check the field Accepting Yes and State Idle. If the values are different the queue will not accept jobs.

11.5.-lpadmin
Lpadmin can manage printers in text mode. Very useful for scripting. What is done running lpadmin will be done in CUPS. Next table shows tasks to be done and lpadmin command to be executed: Task List of .ppd files available (/usr/share/cups/model) Create printer queues associate to a backend. The printer is /dev/null and the backend is a modified filter as seen formerly in this chapter. Create printer queue associated to a printer. Printers created Assign printer by default Delete a printer poll_ppd_base -a lpadmin -p printer_name -E -P printer_type.ppd Command

lpadmin -p lp -E -v socket://ip_address:port/ -P impresora.ppd lpstat -a lpadmin -d printer_name lpadmin -x printer_name

25/09/02

59

Task Check printers status lpstat -t

Command

Printer files (.ppd) can be obtained from the Windows or MacOS drivers CD or downloaded from the web: adobe or printer model web site. They are unzipped running: unzip -L impresora.exe The files .ppd are located in /usr/share/cups/model directory and, after creating a printer, they will appear with the printer name and ppd extension in /etc/cups/ppd, i.e, lp1.ppd, lp2.ppd and so on. Some useful examples on how to create different printers using lpadmin: In a CUPS server: Parallel printer: lpadmin -p LASER01 -E -v parallel:/dev/lp0 -P /usr/share/cups/model/HP/LaserJet_4050-Postscript.ppd.gz Network printer: lpadmin -p LASER02 -E -v lpd://printer_IP/9100 -P /usr/share/cups/model/HP/LaserJet_4050-Postscript.ppd.gz In a CUPS client: lpadmin -p laser01 -E -v ipp://server_IP/printers/laser01 -P /usr/share/cups/model/HP/LaserJet_4050Postscript.ppd.gz

11.6.-Impresora no disponible
Lpstat muestra el estado de las impresoras. Si devuelve el mensaje de impresora no disponible, entrar en /etc/cups/printers.conf, cambiar el estado de la impresora de State Stopped a State Idle, borrar el mensaje de error de la lnea siguiente y rearrancar CUPS tecleando, desde root: /etc/init.d/cups restart. El estado no disponible se alcanza normalmente cuando Cups no ha podido imprimir el contenido de su cola en un tiempo dado.

12.-CONFIGURACIN DE LINUX
12.1.-Versin del sistema / ncleo
Ncleo: uname -a Sistema: Suse: cat /etc/SuSE-release Service Pack (Suse): SPident

12.2.-Lenguaje local
Se aade en el profile: export LANG=es_ES@euro Se ve tecleando: locale.

12.3.-Arranque de Linux SuSE: SuSEConfig


Todo lo que en suse se configure utilizando yast yast2 se va a almacenar en el sistema de manera que pueda volver a ser aplicado. Si entre dos configuraciones va yast2 se ha cambiado algn fichero de configuracin a mano es muy posible que la configuracin se pierda, ya que al salir de yast2 se ejecuta a menudo el proceso "SuSEConfig", el cual aplica la configuracin almacenada por yast2. SuSEConfig se ejecuta si existe el archivo /var/lib/YaST2/runme_at_boot run_suseconfig. 25/09/02 60

Al arrancar SuSE se ejecuta, primero, el proceso /sbin/init con el pid=1, el cual arranca todo el contenido del archivo /etc/inittab y este ejecuta todos los scripts que encuentre en los "runlevels", /etc/init.d/rc.0, rc.1, ... rc.6. El primer proceso que arranca init, antes de nada, es /etc/init.d/boot, boot.local y todos los scripts del subdirectorio boot.d, para inicializar el sistema.

12.4.-ARRANQUE CON MENSAJES MNIMOS


Para evitar los mensajes de arranque del ncleo editar /etc/lilo.conf y aadir, en la lnea append, la palabra quiet. O bien, en la pantalla de arranque (o bien en el prompt boot:) darle el parmetro quiet. Para evitar que se muestren grficos en la terminal virtual 1 (tty1) se edita /etc/sysconfig/sysctl y se pone: BOOT_SPLASH=no. Se edita tambin /etc/sysconfig/bootsplash y se pone: SPLASH=no.

12.5.-Cambio del mensaje de arranque de SuSE


Se instalan los paquetes gfxboot y gfxboot-devel. Se puede modificar el fondo del arranque desde disquetes (isolinux.cfg, syslinux.cfg) o del arranque desde disco-Lilo (lilo.conf). Se crea el logo nuevo mediante mkbootmsg.

12.6.- Cambio de pantalla inicial de arranque de SuSE 8.2


Se edita /etc/sysconfig/bootsplash y se aade: THEME=/usr/share/splash/themes/tema_mo SPLASH=yes Creamos el tema: cd /usr/share/splash/themes/tema_mo cd /usr/share/splash/themes/tema_mo/images cd /usr/share/splash/themes/tema_mo/config vi *cfg para cambiar por mi imagen. resolucin). Los jpg deben tener una resolucin de 800x600 (si el sistema arranca en esta Para ello se edita con gimp y se transforma la imagen a esta resolucin. El tema se puede crear copiando el tema SuSE cambiando lo que yo quiera. SuSEConfig -module bootsplash mk_initrd. Si quiero generarlo desde cero: Ya tengo instalados los paquetes de bootsplash; dentro de uno viene "bootsplash-maker". Este no funciona as que hay que bajarse un parche de internet con el programa perl bootsp.sh. Ejecuto: perl bootsp.sh. Pide crear un directorio. Se ejecuta de nuevo y se crea todo lo necesario de forma interactiva. Para terminar, hay que aadir al initrd el tema creado. Se hace as: Se ejecuta: SuSEconfig -module bootsplash. Se ejecuta: mk_initrd. En una lnea aparece que se carga el tema nuevo. Si no es as es porque en /boot/grub/menu.lst aparece el arranque del ncleo sin el parmetro vga, por lo que mk_initrd supone que arranca en modo texto y no aade la parte grfica nueva. 25/09/02 61

Se soluciona cambiando la lnea "kernel..." aadiendo por ejemplo "vga=0x314". Se ejecuta mk_initrd y ya va.

12.7.-Mensajes del sistema


dmesg --> al arrancar. /var/log/messages

12.8.-YAST2
Configura el sistema completo en modo grfico. Tras cambiar la configuracin ejecuta /sbin/SuSEconfig. Para reconfigurar el sistema se puede ejecutar este script; este lee de /etc/sysconfig y aplica de nuevo todo lo configurado con yast2. Esto puede, en algn caso, sobreescribir configuraciones hechas a mano. No es una aplicacin completamente fiable. Falla por ejemplo en el manejo de LVM y en la creacin de particiones (llama a fdisk, crea o borra y luego no puede formatear pues la tabla de particiones no se ha actualizado hasta que no se rearranca el servidor).

12.9.-RAM 12.9.1.-Informacin de RAM


free top cat /proc/meminfo

12.9.2.-Si el ncleo no reconoce toda la RAM instalada


Es una incidencia que se da con hardware antiguo independientemente de si la versin de Linux es actual. Consiste en que el sistema reconoce 16 Mb cuando tiene mucho ms instalado. Se soluciona pasndole el parmetro siguiente al ncleo en el arranque: append="mem=nM" donde n=(RAM-1) y la M=megabytes.

12.10.-PROFILES
Your Session Profile When you log into a computer and start a new Bash session, you might need to type several commands to customize your session. Perhaps you want to change the editing mode from emacs to vi, create new key bindings, or change your command-line prompt. Rather than typing these commands, Bash will run these commands for you each time you log on if they are saved in a special file. This file is called a profile file because it contains the commands to tailor the session to your particular requirements. The original Bourne shell ran two profile files whenever a user logged on. First, a file called /etc/profile was the general profile file executed for all users. Second, if a file named .profile appeared in the user's home directory, this contained additional commands for each user. Bash mimics this behavior when it is started as sh instead of bash. Bash extended the principle to run several profile files depending on the circumstances. In addition, Linux distributions often customize the general profile files to run additional commands stored in other scripts. Bash differentiates between a login session and other instances. Bash runs as a login shell when a user or program first logs in or when a login is simulated with Bash's --login (or -l) switch. A login shell is not necessarily one that presents a user with a prompt. It only indicates that Bash is the top program in the current session, and when Bash completes its run, the login session will be over. The login_shell shell option is turned on when you are in a login shell. This option can be used to verify that you are in a login shell.

25/09/02

62

$ shopt login_shell login_shell on Bash runs as an interactive shell when it is started without a script or when the -i switch is used. An interactive shell presents the user with a command prompt. An interactive shell is not necessarily a login shell. A user can start a non-login interactive shell by typing bash at a Bash prompt, thus starting a new copy of Bash. Whether the Bash session is interactive or a login shell determines which profile files are used. This way, Bash separates commands specifically for customizing an interactive session from the more generalpurpose commands. The /etc/profile file contains the setup commands and environment changes common to all users. A general profile file might look something like this: #!/etc/profile # No core files by default ulimit -S -c 0 > /dev/null 2>&1 # HOSTNAME is the result of running the hostname command declare -x HOSTNAME=/bin/hostname # No more than 1000 lines of Bash command history declare -x HISTSIZE=1000 # If PostgreSQL is installed, add the Postgres commands # to the user's PATH If test -r /usr/bin/pgsql/bin ; then declare -x PATH="$PATH"":/usr/bin/pgsql/bin" fi # end of general profile Only the superuser can edit this file. When Bash is used as a login shell, it executes the first file it finds named ~/.bash_profile, ~/.bash_login, or ~/.profile. When a session completes, Bash runs ~/.bash_logout, if it exists. For example, SuSE Linux uses ~/.profile for the user's profile file. (You can check this by listing the files in your home directory.) By editing this file, you can add commands that will always execute when you log in. # My profile shopt -s -o emacs # I prefer emacs mode to vi mode date # display the date when I log on

Test the changes by simulating a login with the --login switch. $ bash --login Wed Feb 6 15:20:35 EST 2002 $ shopt -o emacs emacs $ logout on

25/09/02

63

Running a new Bash interactive session without logging in will not run the profile file. $ bash $ logout bash: logout: not login shell: use 'exit' $ exit Scripts will not normally execute the login profile scripts. Bash will load a profile for scripts if the BASH_ENV environment variable contains a pathname to a file to execute. However, you should avoid using BASH_ENV. Setting the common environment for a set of scripts is usually done with the source command, which is discussed in Chapter 14, "Functions and Script Execution." BASH_ENV has no effect on interactive sessions. You can stop the running of the login profile files by using the --noprofile switch. Bash runs a different set of files for interactive sessions that are not also login sessions. Bash looks for a customization script called ~/.bashrc (Bash resources) and executes it instead of the login profile files. Aliased functions are only allowed in the resource files. A different resource file can be specified with the --init-file or --rcfile switch. A typical resource file might contain the following: # /etc/bashrc # Don't let others write to the user's files umask 002 # Alias ls to provide default switches alias ls='ls -qF' Some distributions add lines to your login profile to run the commands in ~/.bashrc as well. This is not a feature of Bash, but a change made by your Linux distribution. You can add the following lines to the ~/.bashrc file to test its behavior: # My bashrc Resource File Customizations printf "%s\n" ".bashrc has run" Test it from the command prompt by starting new sessions. In this case, SuSE Linux always runs the resource file. $ bash --login .bashrc has run $ logout $ bash .bashrc has run $ exit As a result, you cannot be certain of the behavior of the resource file without checking your distribution. Resource files can be suppressed with the --norc switch. Your distribution can run other files as well during login: 25/09/02 64

Red Hat and Mandrake Linux separates your customizations, putting functions and aliases in ~/.bashrc and other customization in ~/.bash_profile. Their .bash_profile script will automatically run a .bashrc file as well, if it is present. SuSE Linux separates your customizations, putting functions and aliases in ~/.bashrc and other customization in ~/.profile. Their .profile script will automatically run a .bashrc file as well, if it is present. SCO Linux (also called Caldera Linux) uses ~/.profile, which calls ~/.bashrc. It then runs the profile script from ~/etc/config.d/shells to configure the system defaults. When ~/.bashrc runs, it calls /etc/config.d/shells/bashrc to set up the non-interactive defaults. User's personal customizations should be stored in ~/.profile-private and ~/.bashrc-private, respectively.

Likewise, the general profile files can be customized: Red Hat and Mandrake split customizations into /etc/bashrc and /etc/profile to mimic the behavior of a user's profile files. Further system scripts automatically executed are for specifically installed packages stored in /etc/profile.d. SuSE Linux automatically set the contents of many files in the /etc directory, including /etc/profile. As a result, personal changes must stored in a separate file called /etc/profile.local or they can be lost when the system is reconfigured or upgraded. Other system scripts automatically executed are /etc/SuSEconfig and scripts for installed software packages stored in /etc/profile.d. SuSE also includes an /etc/profile.dos script to define customizations for users coming from MS-DOS. This is enabled by SuSE configuration software, but it can also be executed from your /etc/profile.local file. SCO Linux only puts minimum setup information common to any Bourne-based shells in /etc/profile. Common Bash settings should be configured in /etc/config.d/shells/profile and /etc/config.d/shells/bashrc. Para todo usuario: /etc/profile, /etc/bashrc, /etc/bash.bashrc y, para algo que sea accesible a todos los usuarios y no se borre al actualizar linux: /etc/bash.bashrc.local. Si se abre una sesin de usuario se ejecuta: $HOME/.bashrc Si el usuario hace login se ejecuta tambin: $HOME/.bash_profile o, si no existe (o la shell es ksh): $HOME/.profile Tambin ejecuta: /etc/profile.d/*.sh, .csh, etc segn la shell. Cuando se llama a konsole (o rxvt u otra utilidad de terminal texto) se abre un terminal en el cual el usuario no ha ejecutado su .profile. Para que lo ejecute (login) es necesario pasarle un parmetro que lo indique explcitamente. En konsole y rxvt suelo pasarle los parmetros: konsole %i %m --ls rxvt -bg 0 -fg 7 -ls -st -tn aixterm --> --ls para login. --> -ls

Para que esto ltimo no sea necesario, es mejor meter lo que se necesita en .bashrc y as se ejecuta siempre. Para evitar tener que modificar .bashrc para cada usuario se pone lo comn en /etc/bash.bashrc.local (SuSE). Por ejemplo, para cambiar el prompt para todos los usuarios: if test "$UID" = 0 ; then PS1=\($(hostname)\)' $PWD# ' else PS1=\($(hostname)\)'$PWD$ ' fi

25/09/02

65

12.11.-Colorear la consola
Se aade en /etc/bashrc esto: ROJO="\[\033[0;31m\]" AZUL="\[\033[0;34m\]" VERDE="\[\033[0;32m\]" NADA="\[\033[0m\]" PS1="$ROJO\u$NADA@$VERDE\h$NADA $AZUL\w$NADA $ROJO#$NADA " y se recarga bashrc: source /etc/bashrc

12.12.-Limitaciones de la shell de usuario (ulimit)


ulimit -a Importantes: --> Muestra las limitaciones en el uso del sistema para cada usuario. cpu time virtual memory ulimit -v unlimited ulimit -t unlimited --> quitan las limitaciones en memoria virtual y tiempo de CPU. Para hacerlo permanente editar: /etc/security/limits.conf Se aade: * hard cpu * hard rss Nmero de archivos abiertos: * * hard soft nofile nofile 32800 32800

unlimited unlimited

12.13.-ARRANQUE Y PARADA DE APLICACIONES EN EL ARRANQUE DEL SERVIDOR


La configuracin del sistema arranca con /etc/rc.config. El ltimo script que se ejecuta en el arranque de un servidor es: /etc/rc.d/rc.local. Las lneas que se incluyan en este archivo se ejecutan tras arrancar todo. Las aplicaciones se activan o desactivan con chkconfig si sus scripts estn. /etc/init.d contiene una serie de scripts. Cada script es un servicio arrancable. Si me creo un script y lo pongo ah chkconfig -l me dir que est y que est off en todos los niveles de ejecucin. Para hacer que arranque en un nivel: chkconfig script.sh 3,5 chkconfig script.sh off chkconfig -l --> Arrancar en los niveles 3 y 5. --> No arrancar. --> Cmo estn los servicios.

Lo que arranca con xinetd. Si se instala telnet, ftp, etc, aparece un script en /etc/xinetd.d con disable=yes. Se pone a "no" y se activa xinetd con chkconfig -a xinetd. Se desactiva con chkconfig -d xinetd. O con on y off. el aplicacin. /etc/rc.d contiene scripts de arranque y parada de aplicaciones. Cada script contiene arranque y parada de una aplicacin dentro de un "case". /etc/rc3.d contiene un enlace para cada script que deba arrancar o parar una Si el enlace comienza por K es de parada; si comienza por S es de arranque. Estos enlaces se ejecutan en orden alfabtico cuando el sistema alcanza el nivel de ejecucin designado por el nmero del 66

25/09/02

sistema

directorio. Es decir, se ejectutan todos los script que contengan un enlace en el directoriy /etc/rc.d al arrancar y al parar el sistema cuando se alcanza el nivel de ejecucin 3. Si se est arrancando el se ejecutan todos los que comiencen por S y, si se est parando, se ejecutan los que comiencen por K.

Supongamos un script notes.sh que contenga el arranque y parada del servidor Notes. Creamos un enlace /etc/Snotes y otro /etc/Knotes, ambos contra /etc/rc.d/notes.sh. Cuando se ejecute Snotes el sistema llamar a notes.sh con el parmetro "start"; cuando se pare el sistema este llamar a notes.sh con el parmetro "stop". Para desactivar un script de arranque o parada lo renombramos como: _Snotes y _Knotes (en el ejemplo). El contenido del script notes.sh es: . /etc/rc.config case "$1" in start) echo -n "Starting Notes" su - notes -c ' /home/scripts/notes/domino_start.sh > /dev/null 2>&1 ' rc_status -v ;; stop) echo -n "Shutting down Notes" su - notes -c ' /home/scripts/notes/domino_stop.sh > /dev/null 2>&1 ' rc_status -v ;; esac rc.config se ejecuta para poder utilizar rc_status el cual muestra el resultado del arranque o parada de la aplicacin junto con el mensaje del cual se hace "echo" (Shutting down Notes).

12.13.1.-Cambios en la versin SuSE 8.1


El apartado anterior funciona para la versin SuSE 8.0. En la 8.1 cambia levemente: /etc/rc.config pasa a llamarse /etc/rc.status

12.14.-PARAR SISTEMA
shutdown -fh now shutdown -fr now reboot init 6 Init 0 init 1 init 5 --> Rearrancar --> Rearrancar --> Rearrancar. --> Parar --> Modo de mantenimiento --> Entrar en nivel de ejecucin con grficos (xdm).

12.15.-CAMBIO DEL NOMBRE DEL SISTEMA


Lo vemos con un ejemplo: cambiamos el nombre del sistema a "igan" (IP fija, no DHCP). 1.- hostname igan 2.- Editar /etc/hosts para aadir una entrada: direccin_ip igan 3.- /etc/HOSTNAME Su contenido debe ser: igan. 4.- Si, adems, se cambia la IP revisar /etc/sysconfig/network/ifcfg-eth0 dado que, al asignar una IP, se aade una entrada IPADDR= en este archivo. Cada vez que se ejecuta SuSEconfig (tras hacer un cambio con Yast2) lee este archivo y aade la IPADDR en /etc/hosts. Si se ha cambiado la IP es posible que no se haya borrado esta entrada del ifcfg-eth0. 5.- Si el puesto es cliente DHCP es posible que el servidor cambie el hostname al asignar direccin. 25/09/02 67

Esto se desactiva cambiando Yes por No en la siguiente lnea de /etc/sysconfig/network/dhcp: DHCLIENT_SET_HOSTNAME="no"

12.16.-CONFIGURACION
La configuracin del sistema se guarda en /etc y, especialmente, en /etc/sysconfig. Dentro de /proc aparece la configuracin en tiempo de ejecucin. TODO yast , yast2. (SuSE). Linuxconf, control-panel (de RedHat, obsoletas). Setup (RedHat). sndconfig (RedHat) Para configurarlo directamente, editar: /etc/sysconfig/keyboard KEYTABLE="es.map.gz" --> cambiar por lo que se busque: us.map.gz o similar. Rearrancar teclado: /etc/init.d/kbd restart. netconfig (RedHat)

SONIDO TECLADO

RED

Teclado, ratn, sonido, X, autenticacin, servicios setup IMPRESORAS printconfig-gui lprsetup CUPS: lpstat, lpadmin.

12.17.-Puertos serie
/dev/ttyS0 /dev/ttyS1 /dev/ttyS2 /dev/ttyS2 equivale a COM1 COM2 COM3 COM4

12.18.-CONFIGURACIN DE DISCO DURO


fdisk /dev/hda (fdisk -l) cfdisk Ejemplo de script de optimizacin de acceso a disco. Funciona para discos IDE y es slo un ejemplo. Estudiar hdparm (man hdparm) y las caractersticas del hardware antes de configurarlo. Cuidado: este comando, mal utilizado, puede corromper el contenido del disco. /root# cat /etc/rc.d/rc3.d/S12disco #!/bin/sh # S12disco # Configura el disco para mximo rendimiento. # Autor: VR 30-Nov-2000 ############################################################ case "$1" in start) hdparm -q -c 1 -m 16 -u 1 /dev/hda > /root/disco.log echo "Salida del script /etc/rc.d/rc3.d/S12disco" >> /root/disco.log ;; esac exit 0

25/09/02

68

12.19.-Ncleo 12.19.1.-Cmo conocer lmites del sistema


Dentro del directorio /usr/include hay ficheros cabecera del sistema con definiciones de mximos. Hay que buscar en ellos para encontrarlas.

12.19.2.-Versiones de Linux
En RedHat Advanced server 3 32bits se instalan varios ncleos. Uno para caso de fallos y otros tres: Normal: slo reconoce un micro y 3,6 Gb de RAM. Enterprise: para tamaos de RAM mayores de 4 Gb. SMP: para tamaos de RAM hasta 16 Gb, varios micros. PAE: para micros de 32bits con extensiones de 64 (PAE). RHEL: RedHat Enterprise Linux. ES: Enterprise server. Slo reconoce dos micros fsicas, cuatro con HThreading. AS: Advanced server. Reconoce ms micros. Fedora: es un RH libre, sin soporte. En Suse: SuSE, ahora llamado OpenSuse: es el Suse libre, sin soporte. SLES: Suse Linux Enterprise Server.

12.19.3.-Threads utilizados
NPTL (kernel 2.6) LinuxThreads (kernel 2.4): getconf GNU_LIBPTHREAD_VERSION --> NPTL Linux Threads

12.19.4.-Parmetros del kernel


Se pueden cambiar con: Sysctl Y se ven en: /proc/sys/kernel o con: sysctl -a To see all kernel parameters, execute: su - root sysctl -a I added the following lines to the /etc/sysctl.conf file which is used during the boot process: kernel.shmmax=2147483648 kernel.sem=250 32000 100 128 fs.file-max=65536 net.ipv4.ip_local_port_range=1024 65000

25/09/02

69

Adding these lines to the /etc/sysctl.conf file will cause the system to change these kernel parameters after each boot using the /etc/rc.d/rc.sysinit script which is invoked by /etc/inittab. But in order that these new added lines or settings in /etc/sysctl.conf become effective immediately, execute the following command: sysctl -p

12.19.5.-Compilacin del kernel


Se instalan los fuentes del kernel (paquete kernel-source) en /usr/src/linux_versin_ncleo. La configuracin del ncleo de la distribucin viene con los fuentes en el fichero .config (/usr/src/linux/.config) y se modifica con make xconfig ( menuconfig config) de manera interactiva, mejor que editando el archivo directamente. Si se desea utilizar la configuracin del ncleo instalado y no se dispone del .config se puede crear un .config con esta configuracin ejecutando: make cloneconfig Al actualizar online el ncleo de un SuSE el archivo de configuracin suele aparecer como configversin_ncleo en /boot. El procedimiento para compilar el ncleo es el siguiente: cd /usr/src/linux make clean (o make mrproper) make xconfig --> Se seleccionan las caractersticas que va a incluir. Alternativas: menuconfig, config. make dep make bzImage

Esto deja una imagen bzImage en /usr/src/linux_xxx/arch/i386/boot/bzImage que se copia a /boot y se aade la entrada correspondiente a este ncleo en /boot/grub/menu.lst. Tras compilar el kernel los mdulos pueden quedar anticuados (si hemos cambiado la versin de kernel). Para recompilar los mdulos: make modules make modules_install Esto crea un directorio de mdulos en /lib/modules/linux-versin_del_ncleo. Si se compila la versin del ncleo que ya tenamos instalado esto va a sobreescribir los mdulos que ya tenamos: hacerles backup. Si no, se crea un directorio nuevo. Se modifica el initrd por lo mismo: mkinitrd /boot/initrd_nuevo opciones Ejemplo: mkinitrd -k /boot/vmlinuz-2.4.x -i initrd-2.4.x -d /boot Ejemplo con ncleo 2.6: mkinitrd -v initrd-2.6.9-42.0.3.EL.img 2.6.9-42.0.3.EL Es recomendable recompilar el ncleo tras instalar el sistema operativo para adecuarlo al hardware de que disponemos. Por ejemplo, se debe compilar contra el microprocesador concreto creando, y compilando despus, en .config una entrada: # Processor type and features CONFIG_MPENTIUMIII=y Esta entrada se crea desde make xconfig. Atencin: la configuracin del ncleo-fuente no es la del ncleo que viene instalado. La configuracin de este ltimo est en /boot/config-versin_del_ncleo. En /proc/config.gz est la versin en ejecucin del ncleo: se supone igual a 25/09/02 70

la anterior. Es normal que, tras recompilar y arrancar con el nuevo ncleo, no funcione todo lo que antes lo haca: configurar correctamente antes de compilar. En la versin 2.6 del ncleo la cosa cambia: make cloneconfig make xconfig make make modules make modules_install cp bzImage /boot Modificar el initrd y aadir entrada en Grub.

12.19.6.-Mdulos Los mdulos quedan, una vez compilados, en /lib/modules/versin_ncleo. Se instalan aadindolos a /etc/modprobe.conf. Se ven con: lsmod Para conocer los parmetros que podemos pasar a un mdulo: modinfo nombre_mdulo

12.20.-WEBMIN
Administra el sistema desde un navegador. Se instala como webmin-xxx.rpm en el directorios /usr/libexec/webmin, con su configuracin en /etc/webmin. Necesita instalar usermin-xxx.rpm. Se configuraba ejecutando: /usr/lib/webmin/setup.sh -> Ya no hace falta para RH ni SuSE. Se arranca: /etc/init.d/webmin start. Se usa: http://localhost:10000. Necesita, pero no requiere, usermin. Si se pincha sobre su icono se instala automticamente desde webmin.

12.21.-CRON
Creacin: crontab -e ----> min hora da mes da-semana comando Ej: 0 2 * * 1 backup -0 -uf /dev/rmt0.1/home/plan Ej2: 15,45 8-017 * * * mandato --> desde las 8 a las 17 ejecuta mandato en los minutos 15 y 45. Archivos cron: /etc/cron.d --> diarios /etc/cron.xxx --> resto

12.22.-Arranque lento de SendMail


Se produce porque requiere el FQDN en el /etc/hosts. Si se pone el nombre del servidor.dominio en el /etc/hosts el servidor levanta sendmail rpido. Si no, espera un timeout de sendmail.

25/09/02

71

13.-Actualizacin del sistema


Se puede actualizar una versin 8.0 de SuSE, por ejemplo, a la versin 8.1 arrancando el sistema desde el cdrom 1 de la versin nueva y solicitando que actualice. Es muy importante que el disco duro tenga espacio suficiente para la copia de archivos temporales; desconozco el tamao necesario. Se puede actualizar tambin desde un servidor FTP en nuestra red o en Internet. La actualizacin en este caso se realiza mediante el cliente ftp wget. Si se accede a Internet va proxy habr que configurar wget para que lo utilice as como darle, en caso necesario, usuario y clave (ver apartado de wget). Se realiza en dos pasos; en el primero se selecciona actualizacin automtica y esto actualiza You (la herramienta de actualizacin) y se baja informacin sobre los paquetes disponibles en el servidor FTP. En el segundo paso se selecciona actualizacin manual para seleccionar cules de esos paquetes se van a instalar en el sistema. De esta forma slo se baja por la red los rpm solicitados. Mediante YOU (YaST Online Update): En /etc/youservers se puede poner el servidor de origen (software.linux.ibm.com) y el directorio de origen. En /etc/sysconfig/onlineupdate se puede cambiar YaST2_LOADFTPSERVER="yes" a "no" para que utilice el de IBM. Si se quiere utilizar los de SuSE, se deja la lnea anterior a "yes" y se arranca la actualizacin normalmente. Lo primero que esta hace es mirar en www.suse.de y coger la lista de servidores. Se selecciona uno y se hace la actualizacin en lnea. Si se utiliza proxy hay que configurar wget para ello. La actualizacin en lnea se arranca, desde root: yast2 online_update

14.-Aplicaciones multimedia
14.1.-Sonido
Configurar: Grabar: Mejorar: Reproducir: alsamix record nombre_archivo.wav gwc play archivo.wav mpg123 xmms

14.2.-Vdeo
MPEG: AVI: plaympeg, mplayer mplayer (Buscar: mplayer -ss hh:mm:ss pelcula.avi). Xine

15.-Procesos
15.1.-PS con path completo
ps axwww

15.2.-Pausar / enviar a background un proceso


Ctrl z bg fg jobs pausa un procesos manda un proceso pausado a background, reactivndolo lo trae a primer plano muestra los procesos en segundo plano para un terminal

15.3.-A qu usuario pertenece un proceso


lsof 25/09/02 72

15.4.-Qu proceso est utilizando un sistema de archivos


fuser sistema_archivos Para matar el proceso: fuser -k sistema_archivos

15.5.-Strace, trazas de un programa strace programa libreras, etc. --> Indica lo que va cargando un programa en su ejecucin:

15.6.-ldd, libreras de un proceso


ldd programa indica las libreras que carga un programa en su ejecucin Si hay problemas con libreras que no se cargan, ver apartado de ldconfig y el valor de LD_LIBRARY_PATH ldd /usr/lib/virtualbox/VirtualBox.so lo mismo para una librera

15.7.-Contabilidad de procesos
Para recoger datos sobre la ejecucin de procesos: cundo arrancan y acaban y otros. Paquete: psacct Programa: accton Deja datos en: /var/account/pacct Activacin: Comandos: ac sa lastcomm Tamao del log: muestra tiempo de conexin por usuario muestra informacin de procesos ejecutados muestra informacin sobre todos los comandos previamente ejecutados controlado por logrotate. Aparece en /etc/logrotate.d/psacct. accton /var/account/pacct

16.-Trucos y aplicaciones varios


16.1.-Quitar sugerencia bash de instalar paquete si tecleo mal
Cuando me equivoco al teclear bash busca un comando parecido y, si no lo encuentra, busca un paquete que se llame de forma similar. Cada vez que me equivoco me hace esperar unos segundos para poder teclear otra vez, o pulsar CTRL-C. Para que esto no ocurra hay que desactivar el paquete: [root@catorce ~]# yum info PackageKit-command-not-found Loaded plugins: ibm-cds-plugin, ibm-repository, refresh-packagekit Installed Packages Name : PackageKit-command-not-found

25/09/02

73

Arch

: x86_64

Editar /etc/PackageKit/CommandNotFound.conf: SoftwareSourceSearch=false

16.2.-Pasar de pdf a texto


pdftotext Es parte de xpdf.rpm o, si no, de poppler-utils.rpm. pdftotext -layout entrada.pdf salida.txt

16.3.-Copiar el sector de arranque del disco


dd if=/dev/hda of=kk bs=512 count=1

16.4.-Localizacin de dispositivos CDROM


Cmo se llama el CDROM? Entrar en /proc/sys/dev/cdrom y, con cat info, aparece el nombre del cdrom. Por ejemplo, /dev/sr0. En el caso de un servidor Blade, el Cdrom es USB. Al instalar el Linux (o un vmware ESX) es posible que el nombre aparezca en /etc/fstab, o bien que cree un enlace de /dev/cdrom al dispositivo. En un blade hs40 el nombre del dispositivo, para ESX 2.5.2, es /dev/scd0. Para Linux es /dev/sdx.

16.5.-Crear una imagen iso a partir de archivos


mkisofs -o imagen.iso log*

16.6.-Crear un CD a partir de una .iso


cdrecord -v speed=4 dev=0,4,0 openlinux.iso (Obtener el id SCSI mediante: "cdrecord --scanbus")

16.7.-Crear pipes
mkfifo -m 777

16.8.-El salvapantallas no reconoce clave de acceso Suele ocurrir cuando se interrumpe bruscamente una instalacin. Al bloquear la pantalla con el salvapantallas no reconoce la clave del usuario para desbloquearla. La solucin est en ejecutar el script que se ejecuta al final de una instalacin con yast. Es decir, se ejecuta /sbin/SuSEconfig y esto deja bien el sistema. 16.9.-Montar CDROM mount -t iso9660 /dev/hdc /mnt/cdrom O bien (SuSE): mount /cdrom
25/09/02 74

asignada en /etc/fstab

dmesg muestra con qu nombre se ha reconocido el cdrom. Con ese nombre se puede montar donde queramos: mount /dev/cdr0 /media/cdrom

16.10.-Copiar un CD a imagen ISO


Introduzco el CD y, sin montarlo, ejecuto: dd if=/dev/cdrom of=/home/vicente/imagen1.iso Como es un sistema de archivos lo podemos montar sobre el loop con la orden: mount -t iso9660 imagen1.iso /mnt/cdrom -o loop

16.11.-Limpiar terminal Si en el telnet aparecen caracteres aleatorios: reset.

16.12.-Formateo de disquete DOS fdformat /dev/fd0H1440b o bien: mformat a: o bien: mkfs.msdos /dev/fd0

16.13.-Formateo de disquete para Linux


Podemos crear un sistema de archivos ext2 en un disquete: mkfs /dev/fd0 y luego montarlo como un sistema de archivos normal mount /dev/fd0 /media/floppy Tambin se puede copiar a disquete con tar, cpio, etc: tar -cvf /dev/fd0 ficheros

16.14.-Ejecucin de comandos recientes History --> Muestra los ltimos comandos ejecutados. Ctrl-r --> Pide cadena con la cual busca en la lista de comandos ejecutados y la ejecuta.

16.15.-Dialog, xmessage, qmsg Dialog hace pantallas para bash. Ej: dialog --title Prueba --msgbox 12 35 xmessage hace pantallas para X: Ej: xmessage hola
25/09/02 75

qmsg sustituye a xmessage.

16.16.-Paso de iconos de Windows (.ico) a Linux (.png) Se realiza mediante la utilidad PixiePlus. Se abre el archivo .ico, se pulsa con el botn derecho sobre l y se selecciona la primera opcin de men, que dice "convert to", y seleccionar el tipo destino deseado. 16.17.-Rungetty
Ejecuta aplicaciones en terminales virtuales.

16.18.- Cambiar la clave del Gnome KeyRing


Se entra en $HOME/.gnome2/keyrings y se borra default.keyring. La prxima vez que una aplicacin acceda al mismo se crear la clave nueva. Por ejemplo, el NetworkManager cuando pide la clave de acceso a una red wireless.

16.19.-Primer da de la semana en gnome


Cuando se instala como en_US aparece el domingo como primer da de la semana. Para cambiarlo puedo seleccionar en_GB o bien cambiar en_US. Para lo segundo edito /usr/share/i18n/locales/en_US y cambio first_weekday 1 para que sea 2: first_weekday 2 first_workday 2

16.20.-Grabar CD,s en RHEL 6


Falla Brasero al grabar CDs, especialmente al cerrarlos al final, as que, sin necesidad de desinstalarlo, se instala gnomeBaker y este va mucho mejor.

16.21.-System rescue CD
Es un CD bajado de la web para realizar tareas de mantenimiento. Permite por ejemplo montar un servidor .pxe + dchcp que levante otras mquinas e instalar en las mismas va partimage. Pero tambin resetear claves de entrada al Windows y otras muchas cosas. Para seleccionar el cdigo de teclado en el arranque, aadir al final de la lnea grub lo siguiente: setkmap=es.

17.-Para configurar Notes entre Linux y Windows


Parto de Notes instalado en Windows (c:\lotus\notes).Instalo el rpm de Linux (Notes under Linux). En Linux: Para arrancar Notes he de hacerlo desde un usuario distinto de root. Creo un script como el que sigue: 25/09/02 76

DISPLAY=127.0.0.1:0.0 LC_CTYPE=es_ES@euro export DISPLAY LC_CTYPE /usr/bin/notes5-apps y creo un icono en la barra de herramientas o en el men K: Clic derecho sobre barra aadir - botn - seleccionar cualquier aplicacin aceptar Modificar el botn: clic dcho - preferencias general: darle nombre e icono ejecutar: darle el comando: el script anterior con seleccionar "ejecutar como otro usuario" darle el usuario, distinto de root, con el que se

su path completo. ejecutar Notes.

Arranco Notes por vez primera. Le doy el id (es087399.id). Le doy el servidor Notes (D18ML003/18/M/IBM). Lo anterior es slo para probar que funciona bien. Ahora lo configuro igual que el de W95. Para ello: copio /w95/Lotus/Notes/Data/names.nsf y desktop5.dsk en /root/.notes5/Lotus/Notes/Data creo en Linux (Data) enlaces a las bases de datos de W95 (a las que no estuvieran ya el Linux). Conexiones Notes (ya creadas con lo anterior): ausnform d06db007 d06dbl06 d18db003/18/a/ibm d18dbl01 d18ml003/18/m/ibm stadb02/sta/a/lotus ausnform.austin.ibm.com 9.180.34.230 9.180.35.71 d18db003.spain.ibm.com 9.71.13.37 9.71.13.43 9.128.2.28

Tras una cada de Linux con el Notes abierto este no vuelve a arrancar. Notes deja un log en /tmp/notes-$USER.log que indica la solucin. Esta es borrarel archivo:/root/.notes5/.wine/wineserverigan/socket (donde igan es el hostname). Esta incidencia est ya resuelta en las ltimas versiones de Notes under Linux.

18.-Compilacin en Linux
18.1.-Compilacin del ncleo
Linux es el nombre del ncleo del sistema operativo GNU-Linux. Sobre Linux se ha compilado software libre y otros dando lugar al GNU-Linux que, por extensin, se ha dado en llamar Linux. El ncleo de Linux se puede parchear, modificar y sustituir. El procedimiento para ello es instalar los fuentes del ncleo en /usr/src, modificarlos con parches o retocando el cdigo, configurarlo cambiando parmetros de compilacin y recompilarlo. Despus se lleva el ncleo creado a /boot y se 25/09/02 77

incluye en la lista de arranque de Lilo o de Grub. El software del sistema operativo est compilado para el ncleo que viene con la distribucin. Es posible por ello que, si los cambios de una versin a otra del ncleo son importantes, algunos paquetes del sistema operativo no funcionen y haya que recompilarlos para el nuevo ncleo. El ncleo nuevo y el que trae la distribucin no suelen tener las mismas capacidades habilitadas. Es recomendable revisar bien la configuracin del ncleo nuevo para que permita todo lo esperado de l.

18.1.1.-Obtencin del ncleo


Se instala desde los CD,s de la distribucin (paquete kernel-source.versin.etc...) o bien se baja desde Internet (http://www.kernel.org). Se descomprime (o instala) en el directorio /usr/src dando lugar a un directorio similar a este: /usr/src/linux-2.4.20 Que contiene todos los fuentes del ncleo necesarios para recompilarlo.

18.1.2.-Compilacin del ncleo


Supongamos que se ha bajado el ncleo 2.4.20 y descomprimido en /usr/src/linux-2.4.20. Se dejan sin tocar los directorios de las dems versiones. cd /usr/src/linux-2.4.20 make xconfig ( make config make menuconfig) tras generar la configuracin deseada se sale del programa de configuracin salvando make dep make bzImage Cuando acabe de compilar se habr creado: /usr/src/linux-2.4.20/arch/i386/boot/bzImage.

18.1.3.-Instalacin del ncleo


cp /usr/src/linux-2.4.20/arch/i386/boot/bzImage /boot Se aade el ncleo nuevo al men del gestor de arranque. Se configura Grub o Lilo, segn el que se est usando: Si es lilo, se aade en /etc/lilo.conf: image = /boot/bzImage label = Linux 2.4.20 root = /dev/hdax initrd = /boot/initrd --> Particin del sistema, la de root (/). --> El mismo del ncleo anterior.

Tras esto, se ejecuta: lilo para que acepte los cambios. Si el gestor de arranque es Grub se aade en /boot/grub/menu.lst: title Linux 2.4.20

25/09/02

78

kernel (hd0,3)/boot/bzImage root=/dev/hda4 ide=nodma apm=off acpi=off vga=788 initrd (hd0,3)/boot/initrd grub queda configurado sin necesidad de ejecutar nada. Cuidado: Grub numera desde cero en adelante las unidades y Lilo lo hace desde uno. Por tanto, /dev/hda4 es (hd0,3) para Grub (para ms informacin leer el apartado de Grub). Se prueba el nuevo ncleo rearrancando la mquina y seleccionando en el men del gestor de arranque esta nueva entrada. Si falla se puede arrancar con el ncleo antiguo y volver a compilar cambiando la configuracin.

18.2.-Compilacin de paquetes fuente (src.rpm)


Se instala el fuente: rpm -ivh paquete.src.rpm Esto copia cdigo a /usr/src/packages. Para compilar estos fuentes entro en el subdirectorio SPECS del anterior y ejecuto: rpmbuild -ba paquete.spec

18.3.-Compilacin de fuentes normales


Se suelen bajar en formato de tar comprimido (tar.gz). Se descomprimen con tar -zxvf fichero.tar.gz dejando un directorio. Se entra en l y se ejecuta: ./configure make make install. Llevan normalmente un README o similar que indica cmo se hace para el caso concreto, incluyendo opciones de compilacin.

18.4.-Modificacin de paquetes
Como ejemplo, linuxrc, que pertenece al sistema operativo. Entro en /usr/src/packages/BUILD/linuxrc-1.3.20. Copio el fichero que quiero modificar: cp util.c util.m Modifico el cdigo en util.m. Ejecuto: diff -p util.c util.m > util.dif mv util.dif Atencin: Al compilar se pierde todo el contenido del directorio BUILD. El cdigo de los parches aplicados queda escrito dentro del util.c. Pero: hay que modificar el fichero spec para incluir este nuevo cambio; si se olvida este paso, al compilar se pierde el util.m y el util.c no incluir los cambios y se habrn perdido las modificaciones. cd /usr/src/packages/SPECS 25/09/02 79 /usr/src/packages/SOURCES/linuxrc-1.3.21.dif

vi linuxrc.spec Aado: Patch18: %patch18 y, por ltimo, compilo: rpmbuild -ba linuxrc.spec linuxrc-1.3.21.dif

18.5.-Programas de usuario
Se compila: gcc -o programa_ejecutable programa_fuentej.c -llibrera La librera liblibrera.so est en /usr/lib. A menudo la cabecera siguiente: #include <librera.h> hace que, al no enlazar la librera, de errores de compilacin. Se soluciona con el -llibrera. Del librera.h deduzco el nombre de la librera por nombre simila.

18.6.-LDCONFIG
ldconfig Pgina man: ldconfig creates the necessary links and cache (for use by the run-time linker, ld.so) to the most recent shared libraries found in the directories specified on the command line, in the file /etc/ld.so.conf, and in the trusted directories (/usr/lib and /lib). As evitamos errores en ejecucin de programas. Cuidado: /etc/ld.so.preload. Si da errores con strace programa de este tipo es que puede ser necesario instalar algo o configurarlo. Esta librera permite la precarga de libreras: si no est aparecer un error por cada librera que intente precargar. Explicacin de esto: `/etc/ld.so.cache' A file created by `ldconfig' and used to speed linking. It's structure is private to the suite. `/etc/ld.so.conf' A simple list of directories to scan for libraries, in addition to `/usr/lib' and `/lib', which are hardwired. It may contain comments started with a `#'. `/etc/ld.so.preload' A list of libraries to preload. This allows preloading libraries for setuid/setgid executables securely. It may contain comments.

19.-SCRIPTS y utilidades
19.1.-If
Comprobacin de comando correcto: grep "tty1" /etc/securetty > /dev/null 2>&1 if [ $? != 0 ]; then echo Encontrado 25/09/02 80

fi

19.2.-FTP automtico
#!/bin/sh # FTP automtico ################ ftp -inv << EOF open itsaix user vicente bellota get smit.log bye EOF Las lneas que contienen EOF tienen que estar pegadas a la izquierda, sin espacios.

19.3.-Expect
#!/usr/bin/expectf # # #Conestescriptbajamoselarchivodepasswordsautomaticamente, #delservidorqueespecificamosenlavariablesite setsite"host.algun.lugar" #Aquidefinimoseldirectorioremoto setdir"/etc" #Seleccionamoselarchivoremoto settheirname"passwd" #Establecemoselnombreconelquebajara setmyname"passwd22" #Colocamoselpassworddelacuenta setpassword"holamundo" settimeout60 #Nosconectamos spawnftp$site expect"*Name*:*" #IMPORTANTE:aquiestablecemoselloginconelqueentraremosal #servidorremoto send"alex\r" #comenzamosconelprocedimeentohabitualdeunaconexionftpyla #transferenciadelarchivoindicado. expect"*Password:*" send"$password\r" expect"*ftp>*" send"binary\r" expect"*ftp>*" send"cd$dir\r" expect"*550*ftp>*"{exit1}"*250*ftp>*" send"get$theirname$myname\r" #Aquipuedeser"PUT"o"GET" expect"*550*ftp>*"{exit1}"*200*226*ftp>*" #Terminamosynosdesconectamos. close wait send_user"FTPtransferok\n" exit0 #FIN

19.4.-Cmo modificar un archivo de texto


La forma tpica es, resumida: cat archivo | proceso lneas > temporal ; mv temporal archivo. Esto supone crear un archivo temporal y, adems, eliminar los espacios al comienzo de lnea. Otra manera es con sed. -i: modifica el archivo, no hay que volcarlo a un temporal. 25/09/02 81

sed -i /net.bridge.bridge/d /etc/sysctl.conf sed -i 's/kernel.sysrq = 0/kernel.sysrq = 1/' /etc/sysctl.conf Otra forma es utilizar el editor de lneas ed. Se ve en un ejemplo: Se parte del archivo de texto siguiente (podra ser XF86Config):
uno PATHF /usr/X11R6/lib/X11/fonts/truetype /usr/X11R6/lib/X11/fonts/truetype2 FINPATH Otras cosas Y se acab

Borra net.bridge.bridge sustituye 0 por 1

Se ejecuta sobre l este script:


#!/bin/sh ed archivo_texto << EOF /PATHF/ c PATHFUENTES . a /usr/X11R6/lib/X11/fonts/microsoft . w q EOF

Y el resultado es el que sigue:


uno PATHFUENTES /usr/X11R6/lib/X11/fonts/microsoft /usr/X11R6/lib/X11/fonts/truetype /usr/X11R6/lib/X11/fonts/truetype2 FINPATH Otras cosas Y se acab

Ha modificado la lnea de PATHF y ha aadido un path nuevo. Comandos de ed: q w c i a /str/ n1,n2 s/str1/str2 n1,n2 p 6,$p n1,n2 d Enumeraciones de: n1,n2 , . Otro ejemplo: #!/bin/sh ed -s texto << EOF /truetype/ . s/truetype/fuentenuevo/ . 25/09/02 82 Sale Salva Modifica la lnea actual Inserta lnea antes de la lnea actual Aade lnea tras la lnea actual Busca str Sustituye, en las lneas n1 a n2, str1 por str2 lista las lneas n1 a n2 lista 6 lneas al final del archivo borra desde las lneas n1 a la n2 todo el buffer la lnea actual

busca truetype y sustituye, en la lnea actual, por fuentenuevo

w q EOF En el ejemplo anterior, si cambio .s/truetype/fuentenuevo/ por: ,s/truetype/fuentenuevo/ se cambia en todas las lneas del fichero.

19.5.-Modificar archivo de texto si hay texto


Se trata de cambiar un valor en un fichero si existe. PAR=$(grep net.ipv4.conf.default.rp_filter /etc/sysctl.conf) if [ ${PAR} = ] then echo net.ipv4.conf.default.rp_filter = 0 >> /etc/sysctl.conf elif [ ${PAR} = net.ipv4.conf.default.rp_filter = 1 ] then sed 'net.ipv4.conf.default.rp_filter = 1 # net.ipv4.conf.default.rp_filter = 0#g' /etc/sysctl.conf -i /etc/sysctl.conf fi

19.6.-Find
find . -name \* -type d -exec echo {} \; Exec ejecuta comandos sobre los archivos encontrados en el find. Los encuentra siguiendo el rbol de arriba abajo y los entrega todos los nombres juntos al comando. Si el comando es un script, por ejemplo, el script no se ejecutar una vez para cada archivo encontrado sino una sola vez con el nombre de todos en la lnea de comandos. Si se desea confirmacin, sustituir -exec por: -ok Si se quiere buscar dentro de un sistema de archivos, sin que salga fuera de l: find . -xdev

19.7.-Locate
locate cadena updatedb -v busca archivos que contengan cadena ignorando maysculas actualiza la base de datos para las bsquedas de locate

19.8.-Script de paso de maysculas a minsculas de rbol de archivos


#!/bin/sh # Script mayminV2.sh # Funcin: cambiar de maysculas a minsculas todos los directorios y # archivos recursivamente a partir del directorio actual. # Requiere: ejecutarse como usuario no root ya que es un programa recursivo # y no est totalmente probado. Funciona como root pero "as is basis". # Cuidado: Si existen enlaces en el path este programa cambia su nombre a 25/09/02 83

# minsculas pero puede que apunte a un directorio cuyo nombre est # ahora en minsculas. Hay que rehacer los enlaces a mano. # Autor: J.Vicente Romero Santandru / IBM 25/02/2003 ############################################################################## function min { fich2=$(echo $fich1|tr 'A-Z' 'a-z') if [ $fich1 != $fich2 ] then mv $fich1 $fich2 fi } function recorre { ls|while read fich do if [ -d $fich ] then cd $fich recorre cd .. fich1=$fich min else fich1=$fich min fi done } # Principal recorre

19.9.-Separar directorio y fichero en un script


echo $(dirname /home/vicente/.bashrc) echo $(basename /home/vicente/.bashrc) --> /home/vicente --> .bashrc

19.10.-Quitar la extensin al nombre del fichero


echo ho.la|cut -d. -f1

19.11.- Borrar caracteres de retorno de carro al final de un archivo


Cuando se pasan archivos de texto de Windows a Linux vienen con caracteres de retorno de carro y nueva lnea al final de cada lnea del archivo. En Linux esto se hace poniendo slo nueva 25/09/02 84

lnea. As, si se ejecuta como script un fichero editado en Windows (un DDL de DB2, por ejemplo), esto falla. Se deja bien el archivo as: Cat fichero | tr -d \\15 > fichero.bien archivo de O bien: tr -d \r < fichero_windows > fichero_linux Para comprobar que est bien: od -cd archivo. Esto muestra los caracteres \r (retorno de carro) y \n (nueva lnea) adems del texto. --> Quita los retornos de carro del final de un texto windows para que sea til en Unix.

19.12.-Traces de un script
#!/bin/sh -x (aado -x al comienzo del script).

19.13.-Resultado de un comando
Si quiero ejecutar una orden en funcin del resultado de la anterior, no utilizar el pipe ( | ) sino el punto y coma (bash). Ejemplo: echo hola|grep -i tr0 | if [ $? = 0 ] ; then echo s; fi echo tr0 |grep -i tr0 ; if [ $? = 0 ] ; then echo s; fi --> muestra s siempre, independientemente del echo. --> muestra: s slo si encuentra tr0.

19.14.-Operaciones aritmticas
contador=$(($contador+1))

19.15.-For
for {set x 0} {$x<10} {incr x} { puts "x is $x" } for i in `seq 1 10`; do echo $i done Otro For: for vm in $(cat /etc/vmware/vm-list |grep config|awk '{print $2}') do .. done for eth in {eth1,eth2,eth3,eth4,eth5,eth6,eth7,eth8,eth9} do done

25/09/02

85

19.16.-While
while [ $i -lt 4 ] do xterm & i=$[$i+1] done El bucle while tiene un problema serio con las variables de entorno: todas las utilizadas dentro del bucle son locales al mismo, no conservan su valor fuera de l. Se debe a que se suele utilizar tras un pipe. Como este abre una subshell, sus variables de entorno no salen fuera. En este while no salen las variables fuera del bucle: cat fichero | while read linea do procesa_linea variable=valor done echo $variable --> != valor La solucin a lo anterior es no utilizar un pipe, sino redireccionar el fichero: while read linea do procesa_linea variable=valor done < fichero echo $variable --> = valor

19.17.-Menes
#!/bin/bash OPTIONS="Hello Quit" select opt in $OPTIONS; do if [ "$opt" = "Quit" ]; then echo done exit elif [ "$opt" = "Hello" ]; then echo Hello World else clear echo bad option fi done

19.18.-Toma de parmetros
Comprueba si tiene parmetros: if [ $# -eq 0 ] then echo "Uso: $0 grupo usuario_1 .. usuario_N " exit 1 fi # Toma los parametros grupo=$1 #shift 25/09/02 86

while [ $# -gt 0 ] do echo $# echo $2 shift done echo $grupo Si le descomento el primer shift, debo tomar $1, ya que shift va desplazando los parmetros a la izquierda restando uno del nmero de parmetros que quedan por tomar. Es decir, toma siempre el primer parmetro y lo borra de la lista (o el segundo, pasando del primero, y lo borra de la lista). Sumar dos columnas de un listado El listado est formado por nombre apellido numero1 numero2. Esto devuelve nombre apellido suma(numero1 + numero2): cat completo.txt|while read lin; do echo $lin|awk '{print $1" "$2" "($3 + $4)}'>> resultado.txt; done

19.19.-Listado de hexadecimales
La secuencia de nmeros decimales no es sencilla de seguir, especialmente si hay muchos nmeros. En la secuencia 0x0800 0x08FF hay, por ejemplo, 256 nmeros: 16 x 16. Esta secuencia es muy til, por ejemplo, para generar un listado de direcciones de disco que formatear en zVM: for i in $(seq 0x0800 0x08FF); do echo "obase=16; $i"|bc; done El for realiza la secuencia y el echo lo muestra en hexadecimal. Sin obase muestra en decimal.

20.-Creacin de RPMs
Se pueden crear RPMs a partir de cdigo fuente realizando todo el proceso de compilacin y tambin se pueden crear a partir de los archivos compilados (de un producto ya instalado, por ejemplo). Veamos un ejemplo con archivos compilados. Supongamos un producto, jf, instalado en /opt/jf. Es un producto que no se puede instalar de modo desasistido as que se nos ocurre instalarlo a partir de lo instalado en un servidor. Para ello podemos crear un tar de los archivos instalados y hacer un script que haga todo lo necesario para instalarlo en otro servidor o bien crear un RPM que lo haga todo. Para crear el RPM, creamos un directorio /root/temp y copiamos /opt/jf a l conservando el path. Es decir, copiamos a /root/temp/opt/jf. A continuacin creamos /usr/src/packages/SPECS/jf.spec con el siguiente contenido: Summary: JF Name: JF Version: 1.1 Release: 1 Copyright: yo Group: aplicaciones BuildRoot: /root/temp %description JF tal cual queda instalado en un servidor. 25/09/02 87

Se crea el RPM para poder instalarlo sin interaccin. %post ln -s /opt/jetform /usr/jf sed "/Node/s/S......./$(hostname)/" /opt/jf/jf.ini \ > /tmp/jf cp -f /tmp/jf /opt/jf/jf.ini rm -f /tmp/jf %postun rm -f /usr/jf %files /opt/jf %changelog * Wed Apr 09 2003 - Made RPM from installed JF. Puntos importantes de jf.spec: BuildRoot: /root/temp RPM. instalar el /root/temp/opt/jf se %post ejemplo, %postun por borrar un producto. %files copiarn desinstalar. El crear como borrarlo en post y --> Es el directorio en el cual estn los archivos que se van a incluir en el Se incluyen tal cual aparecen en el /root/temp, teniendo en cuenta que, al RPM, aparecern colgando no de BuildRoot sino de /. Es decir, instalar en /opt/jf. --> Se incluyen comandos o scripts que se ejecutarn tras instalar el RPM, por para configurar el producto. --> Se incluyen comandos o scripts que se ejecutarn tras desinstalar el RPM, ejemplo, para eliminar por completo el producto. En este caso se usa para enlace que se cre en la instalacin y que no viene en la lista de archivos del --> Lista de archivos del producto. Contiene todos los archivos (/opt/jf) que se al instalar (con el path completo, o sea, /opt/jf) y que sern borrados al enlace que se crea en %post y se borra en %postun se podra /root/temp/usr/jf y, al incluirse en %files, no hara falta crearlo ni postun.

Para crear el RPM se ejecuta, en /usr/src/packages/SPECS, como root: cd /usr/src/packages/SPECS rpmbuild -ba jf.spec Y queda creado en: /usr/src/packages/RPMS/i386/jf-1.1-1.rpm Para instalarlo: cd /usr/src/packages/RPMS/i386 ( o copiar a otro directorio el RPM) rpm -ivh jf-1.1-1.rpm

21.-Activar JAVA en Firefox


Hay que activar el plugin de Java para el navegador. Hay que activar el Java entrando en edit-preferences-advanced. Se arranca dos veces el navegador y se comprueba entrando en la pgina local: "about:plugins". En las ltimas versiones de Firefox (3.0.11, 2009) se almacenan los plugins dentro del directorio /usr/lib/mozilla/plugins. Algunos se copian directamente al directorio y otros aparecen como enlaces. Por ejemplo, el plugin de java: 25/09/02 88

libjavaplugin_oji.so -> /usr/java/jre1.5.0_14/plugin/i386/ns7/libjavaplugin_oji.so Hay que crear este enlace a mano y rearrancar Firefox.

22.-OpenOffice
22.1.-Plantilla
Se crea una plantilla y se aade desde mens: archivo - nuevo - plantillas y documentos.

22.2.-Creacin de grficos en un fichero de texto


Se crean en el documento con las utilidades grficas (panel vertical de la izquierda) o bien se crea el grfico en el OpenOffice draw y se importa como objeto ol.

23.-Control remoto de estaciones


Con la instalacin de Linux vienen: krfb krdc vncviewer -> servidor vnc. -> cliente vnc. -> cliente vnc.

Sus iconos estn en el men SuSE, submens: internet herramientas. Como paquete aparte, que bajar de Inet, est: xrfb. Todos utilizan el protocolo rfb. Tambin se puede utilizar VNC. Se arranca el servidor en el Linux. Desde un cliente VNC se arranca un servidor X, se le da permisos para acceso desde fuera (xhost +) y se arranca el cliente vnc. Comandos VNC desde un Linux:

Servidor: vncserver --> Devuelve el nmero de pantalla al que conectarse Cliente: vnc client --> Hay que darle la IP del servidor Linux y su nmero de pantalla. Gestor de ventanas: gnome-session --> arranca en el vnc cliente el gnome. /home/vicente/.vnc/xstartup

Para arrancar aplicaciones con VNC:

24.-Alta disponibilidad
Heartbeat, LVS (Piranha -Rhat- se basa en LVS), Ultra Monkey, kimberlite.

25.-Seguridad
25.1.-Encriptacin de claves
La funcin crypt toma como argumentos la password sin encriptar y una cadena de dos caracteres que se combinan con los otros dos para dar lugar a la clave encriptada. Los dos primeros caracteres de la clave encriptada son estos dos caracteres. Puedo tomar los dos primeros caracteres de un usuario en /etc/shadow y, usando la funcin crypt con ellos y la clave sin encriptar, comprobar que su salida encriptada es la misma. 25/09/02 89

La salida de crypt la puedo poner en /etc/shadow como clave encriptada de un usuario. Programa encriptar.c // // // // // Programa que devuelve claves encriptadas. Se compila: gcc -o encriptar encriptar.c -lcrypt La librera libcrypt.so est en /usr/lib. Se ejecuta: echo password_not_encrypted|./encriptar Devuelve: la password encriptada.

#include <unistd.h> #include <crypt.h> #include <stdlib.h> int main(void) { char *e,*p; p=malloc(50); scanf("%s",p); // e=crypt(p,"$1"); e=crypt(p,"P2"); printf("%s",e); free(p); return 0; };

26.-SSH
Se configura en /etc/ssh. Sshd.config configura el demonio servidor. Ssh.config el cliente ssh.

26.1.-Habilitar acceso ssh de root


Se edita /etc/ssh/sshd_config y se cambia: PermitRootLogin no ~~> yes

26.2.-Retardo en login
Para evitar un largo retardo en el login por ssh se cambia en /etc/sysconfig/ssh/sshd_config la lnea, si la hubiera: #UseDNS=yes por esta otra: UseDNS=no

26.3.-Login
ssh vicente@igan ssh -l vicente igan

26.4.-Copiar un archivo
scp ./kk vicente@servidor:/home/vicente/temp/kk2

26.5.-Copiar directorios tar


tar -cv / --exclude=/boot --exclude=/etc/lvm* ...... | ssh -p 3105 IPDESTINO "cd /; tar -xv" En vmware: cat /vmfs/dan/nt.dsk | ssh dest "vmkfstools -I remote:nt.dsk"

25/09/02

90

Si copio dentro del mismo servidor (clono de un sistema de archivos a otro): tar -cv / --exclude=/boot --exclude=/mnt | (cd /mnt/root ; tar -xv) Revisar; no va bien.

26.6.-Ejecutar un comando
ssh vicente@servidor df -h

26.7.-Conexin rechazada
En $HOME/.ssh/known_hosts estn las mquinas a las que se ha accedido va ssh. Si se rechaza una conexin puede ser debido a el contenido de este archivo. Si se borra desaparece el problema.

26.8.-Entrar a un conjunto de servidores sin que pida clave


Versin sencilla: En el servidor origen se ejecuta: ssh-keygen -t dsa ssh-copy-id -i /root/.ssh/id_dsa.pub root@servidor_destino Otra versin sencilla: En el servidor origen, como el usuario deseado, ejecutar: ssh-keygen pide password; le doy intro. Crea /home/usuario/.ssh con dos archivos: id_rsa id_rsa.pub En cada servidor destino: copiar id_rsa.pub en $HOME/.ssh cat id_rsa.pub >> authorized_keys vi authorized_keys Aadir al comienzo (de known_hosts?) la IP del servidor de origen (o hacer ssh al origen): from="10.210.48.114" ssh-dss xxxxxx (o el hostname) Y, para ejecutar, desde el servidor de origen: ssh servidor_destino o esto: scp backup* esx47:/home/scripts/tsm o esto, para ejecutar un comando en el remoto: ssh root@${servidor} "${directorio}/script.sh --parmetro" Para entrar en una serie de servidores desde otro sin que pida clave (versin compleja): En el servidor origen ssh-keygen -t dsa -b 1024 -f ./esx_key Se crean as dos archivos esx_key esx_key.pub 25/09/02 91

En cada servidor destino: copiar esx_key.pub en $HOME/.ssh cat esx_key.pub >> authorized_keys vi authorized_keys Aadir al comienzo (de known_hosts?) la IP del servidor de origen from="10.210.48.114" ssh-dss xxxxxx (o el hostname) Y, para ejecutar, desde el servidor de origen: ssh -i ./esx_key esx47 o esto: scp -i temp/esx_key backup* esx47:/home/scripts/tsm Para el resto de servidores destino, copiarles el archivo authorized_keys y la esx_key.pub.

27.-SFTP
sftp usuario@servidor Se utilizan los comandos get y put. Los comodines en ambos operan como mget/mput en ftp. Si el puerto es distinto al estndar, por ejemplo, 3105: sftp -o port=3105 ip_destino

28.-RSYNC
rsync comando similar a rcp pero que copia slo los archivos que no se han copiado anteriormente.

29.-SAMBA
29.1.-Configuracin del servidor
Primero se activa swat: yast2 inetd --> Activar swat dentro de inetd. Despus se entra en swat con un navegador: http:/localhost:901 Se configuran los shares y se les da un usuario de acceso. Este usuario hay que aadirlo a Samba ejecutando: smbpasswd -a usuario y debe estar creado en el servidor y tener permisos de acceso adecuados al share. La password aadida no es la del sistema. Despus se arranca smb desde swat o bien ejecutando: /etc/init.d/smb start Despus conviene desactivar swat volviendo a parar inetd.

29.2.-Configuracin del cliente


Se ha cambiado smb por CIFS. Los comandos pueden no funcionar segn se use smb o cifs. Comando nuevo para montar: 25/09/02 92

mount.cifs //IP_Servidor/Directorio_exportado /mnt/Punto_montaje -o user=Usuario Para montar un sistema de archivos:


smbmount //winserver/data /mnt/data -o username=usuario/dominio,password=xxx mount -t smbfs //winserver/data /mnt/data -o username=usuario/dominio,password=xxx Para montar como "nobody": mount -t smbfs //isoserv/iso /mnt/iso -o username=nobody,password=

En este caso se monta una comparticin windows sobre un linux utilizando los dos mtodos. Si se quiere que monte automticamente, se aade esta lnea al /etc/fstab: //winserver/data /mnt/data smbfs noauto,username=dominio\usuario,password=xxx 0 0 atencin al cambio de la barra, \ en vez de /. Se puede poner de la otra forma pero, entonces, ser usuario/dominio: //winserver/data /mnt/data smbfs noauto,username=usuario/dominio,password=xxx 0 0 Para evitar que se vea la clave se crea un fichero, .smbpasswd, se slo lectura para el usuario root en /home/usuario y se mete en l: username=usuario password=password-del-usuario y se aade, en /etc/fstab: //winserver/data /mnt/data smbfs credentials=/home/vicente/.smbpasswd 0 0

Para montar como un usuario se ejecuta smbmount desde root pero se aade: -o username=xxx,password=xxx,uid=usuario,gid=grupo

30.-XINETD
Sustituye a inetd. Se configura desde Yast para que arranque servicios o bien se ejecuta: chkconfig vncserver xinetd por ejemplo, para que configure un servidor vnc. Esto crea un archivo en /etc/xinetd.d/vnc con dicha configuracin. Luego se puede modificar para hacer cambios. Se arranca desde /etc/init.d/xinetd start /stop /restart /status.

31.-Nombres de producto
Esta seccin relaciona nombres de servicio/software estndar y sus nombres en Linux. Kopete Bind Xinetd AOL Instant Messenger, Lotus Sametime, Microsoft Messenger. DNS server inetd

32.-hyperthreading
Tecnologa de Intel, slo en Pentium IV, se activa en la BIOS y hace que un mico se vea como dos. Incrementa el rendimiento en un 30% como mximo.

33.-Unidades de cinta SCSI


33.1.-Ultrium
El cliente utiliza RedHat 8 con el ncleo cambiado a 2.4.20 SMP (aunque tiene servidores con 1 y 2 micros, al ser SMP se activa el hyperthreading y aparecen dos) y los mdulos desactivados por motivos de seguridad. En este ncleo ha compilado todos los drivers necesitados. Ha incluido los de las cintas IBM y quieren probar si las HP funcionan bien. Comprobamos que funcionan y que se puede pasar los backups desde una HP a una IBM y ambas leen y escriben bien con la configuracin actual (Ultrium es fruto de la colaboracin IBM-HP). Estas unidades de cinta funcionan con el driver de Linux pero tambin tienen un driver de IBM: IBMtapexxx.rpm.Este se carga como mdulo, con lo que no se puede usar en este cliente. 25/09/02 93

Sin embargo, se da un error de lectura y escritura cuando la unidad alcanza el final de la cinta. Este error est documentado en Internet como del ncleo 2.4.20 de Linux. Se puede reproducir con: mt -f /dev/nst0 rewind --> tar -cvf /dev/nst0 /etc/hosts Rebobina de nuevo. Tar -tvf /dev/nst0 --> Tar -tvf /dev/nst0 --> Tar -tvf /dev/nst0 --> tar -tvf /dev/nst0 --> rebobina Lee sin rebobinar y devuelve vaco Lee sin rebobinar y devuelve archivo hosts Lee sin rebobinar y devuelve vaco devuelve error.

Si se rebobina se repite el ciclo. Con varios archivos va dejando un hueco entre ellos. Datos de la unidad: Unidad de cintas: IBM Ultrium SCSI tapes 100/200 Gb LTO internal tape drive. P/N 00N8016. FRU: 59P685. Modelo: 3580. Notas sobre el driver: La Ultrium se puede configurar utilizando los drivers SCSI del Linux o bien los de IBMtape. Si se usan los primeros hay que crear un fichero /etc/stinit.def y ejecutar stinit para que la configure. Stinit ejecuta comandos ioctl con los parmetros del stinit.def. Ejemplo de stinit.def: manufacturer="HP" model ="Ultrium"{ scsi2logical=1 can-bsr can-partitions auto-lock mode1 blocksize=0 compression=1 mode2 blocksize=1024 compression=0 } Cada apartado entre llaves configura una unidad. La unidad aparece definida como /dev/st0 aunque el cliente utiliza /dev/nst0 para que no rebobine tras cada lectura. Para ver manufacturer y model se hace cat /proc/scsi/scsi y se buscan vendor y model. El cliente ha resuelto el problema del error con el mt -f /dev/nst0 eod: Basta con aadir el siguiente parmetro al stinit.def (kernel 2.4.20) fast-mteom=1 Y ejecutar stinit Ahora al ejecutar el mt -f /dev/nst0 eod no da salida de error en el kernel. Hay que aadir una stanza al archivo /etc/rc.local para que cargue la configuracin al arrancar: if [ -f /sbin/stinit -a -f /etc/stinit.def ]; then echo "Inicializando la unidad de cinta SCSI ..." /sbin/stinit -f /etc/stinit.def fi

34.-CDRECORD
/usr/bin/cdrecord -v gracetime=2 dev=0,0,0 speed=1 -dao driveropts=burnfree -eject Ejemplo de lo que lanza k3b, con cdrdao: /usr/bin/cdrdao write --device /dev/hdc --driver generic-mmc:0x00000010 --speed 4 -n -v 2 --eject --remote 19 /tmp/kde-vicente/k3bq90ifbto Para saber dev: cdrdao scanbus cdrecord scanbus Cdrecord acepta dev=/dev/cdrecorder.

25/09/02

94

35.-Paso de CD,s a MP3


Puedo utilizar GRIP, que se instala por defecto en Suse9. Este llama a otras aplicaciones por debajo, como lame, que la puedo bajar y compilar desde sourceforge.net. Si no va Grip, lo uso slo para extraer y luego lame, en modo texto, para codificar en MP3: lame -h fichero.wav. Por ejemplo, para extraer un CDROM y luego pasarlo a mp3 ejecuto: #/temporal/CD9$ cdda2wav --alltracks #/temporal/CD9$ ls |while read lin; do lame -h $lin; done #/temporal/CD9$ #/temporal/CD9$ #/temporal/CD9$ #/temporal/CD9$ mkdir mp3 mv *mp3 mp3 rm * ; mv mp3/* . rmdir mp3 --> Extrae las pistas --> Codifica en mp3

Me deja un directorio CD9 con el contenido del CD en mp3.

36.-Emulador de terminal por puerto serie: minicom


Desde W2k usamos hyperterminal; desde Linux minicom. Se conecta un cable serial null modem cable entre el puerto serie del linux y el del servidor Aix o el Port A en un FastT, con los parmetros: /dev/ttyS1, 9600 bps, 8N1 (data parity stop bits), Hardware Flow Control: Yes, Sw Flow Control: No. Se pulsa Ctrl-A para enviar un break (si hyperterminal pulso Ctrl-Break cada 5 sgs. Hasta que se pueda leer). Esc para entrar en la shell de la FastT y entro usuario y passwd (infiniti por defecto).

37.-FTP cliente
Ftp://usuario:password@servidor_ftp/path_del_archivo. Ejemplo: ftp://ecs8545:jxOTAyPs@ftp.ecomstation.com/SVISTA/SVista-1.0.0.tgz

38.-Instalacin en modo texto


Iniciar la instalacin pasndole al ncleo: textmode?=1.

39.-Balanceo de carga entre dos linux


LVS: Linux virtual server.

40.-CP
Copia de un directorio completo, incluidos los enlaces tal cual y conservando pertenencia y permisos: cp -dpR ficheros destino

25/09/02

95

41.-Captura de pantallas en tiempo de instalacin


Usar screen o un comando similar. Investigar esto.

42.-SMTP
Pararlo: postfix stop De forma permanente: yast2 - network - MTA Configurar como sin conexin.

43.-Usuario no root con permisos de root


useradd -o -u 0 username

44.-VI
44.1.-Sustitucin de cadenas
:%s/cadena1/cadena2 :s/cadena1/cadena2 --> Sustituye todas las ocurrencias. --> dem en esta lnea.

45.-Rendimiento
Herramientas para medir el rendimiento de un sistema Linux.

45.1.-Top, vmstat, free


Sin comentarios.

45.2.-Sysstat
Es un rpm llamado as: sysstat.rpm. Contiene las siguientes herramientas: /usr/bin/iostat /usr/bin/mpstat /usr/bin/sar

45.3.-Nmon
Herramienta libre de IBM, en toda plataforma Linux ms Aix y otros. Puede dejar como salida tablas Excel que luego se interpreten con herramientas grficas.

45.4.-Nagios
Estudia el rendimiento de los servidores en red. Recoge info por SMTP.

25/09/02

96

45.5.-RRDTool
Base de datos de medidas de rendimiento.

45.6.-Otras
MRTG para dispositivos de red. Webalizer para servidore web.

46.-Dimensionamiento de servidores
Herramienta de IBM para, dada una carga, recomendar un tamao y servidor concretos: http://www.developer.ibm.com/servers/sizing/portal/search.jsp?mvcid=main&packageid=3002 Lo mismo, pero de HP: http://h71028.www7.hp.com/ActiveAnswers/cache/71114-0-0-225-121.html Y la versin de DELL: http://www.dell.com/content/topics/global.aspx/power/en/ps3q01_graham?c=us&cs=555&l=en&s=biz

47.-Problemas de arranque con el USB


En HS20 con RHAS 2.1. Poner usb-handsoff en boot:.

48.-Instalacin automatizada
Desde httpd y ftp. La configuracin del Apache o del vsftp (o servidor ftp cualquiera) vara con el tiempo; se muestran configuraciones ejemplo.

48.1.-RHEL 4
Para instalar desde un http, NFS FTP: boot: linux askmethod Se selecciona instalar por http ( NFS/FTP) y pide a continuacin direccin IP del RH que instalar y direccin IP de la fuente de instalacin. Para instalar un xSeries o blade server desde disquetera USB con un ks.cfg: boot: esx ks=hd:sdb/ks.cfg sdb es como detecta la disquetera, ya sea la del blade center o una externa en un xSeries. Me pregunta por qu adaptador quiero instalar; selecciono el primero. Por cable normal desde el porttil. El servidor web es el porttil, en /var/www/html/rhel4u4. El ks.cfg est configurado para ello y el httpd.conf est configurado para: DocumentRoot=/var/www/html Listen IP_del_porttil:80 Requiere: servidor web con Redhat copiado (cp -Rp de todos los CD,s) en $DocumentRoot/rhel4u4. Para servir archivos por httpd para una instalacin hay que comentar el contenido de /etc/httpd/conf.d/ welcome.conf. HTTPD corre como usuario apache. Si no se consigue permiso para entrar, hay que crear 25/09/02 97

un directorio en DocumentRoot con permiso del usuario y colgar de l los paquetes de instalacin de RHEL. Con el paquete system-config-kickstart se puede crear desde cero el ks.cfg para instalar desde http, pero va bastante mal con un archivo creado. Si el ks.cfg tiene un error de sintaxis el proceso de instalacin pasa de l. Al instalar un RH se crea un archivo en /root/ llamado anaconda_ks.cfg. Este es un kickstart que se puede modificar y usar para otros RH. La lnea clave con el origen de instalacin es esta: url --url http://192.168.70.124/rhas4u4

48.2.-SLES 10 SP1
On all SUSE Linux versions, the automatic installation gets invoked by adding autoyast= <PATH_TO_ PROFILE> to the kernel parameter list. So for example adding: autoyast=http://myserver/myconfig.xml will start an automatic installation where the profile with the autoyast configuration gets fetched from the webserver myserver. Para instalar desde una consola VNC: boot: vnc=1 vncpassword=xx hostip=192.168.1.122 netmask=255.255.255.0 Entre las opciones del Grub hay teclas de funcin que permiten seleccionar el origen del software. Se puede seleccionar un servidor web. Ejemplo: boot: install=http://ip/ vnc=1 vncpassword=xx hostip=192.168.1.122 netmask=255.255.255.0 Otros parmetros: nameserver= gateway= Tras la primera instalacin, usar autoyast: autoyast=http://server/path

49.-Instalacin automatizada por PXE: xcat


Se configura un servidor con lo siguiente: pxe dhcp tftp ftp arranca el cliente asigna IP al cliente, filtrando por MAC,s enva la imagen de arranque enva los paquetes de instalacin

Esto viene integrado en un producto: xcat.

50.-Instalacin con disquete de drivers


boot: linux dd

25/09/02

98

51.-Bios del sistema


dmidecode | grep -i bios

52.-Sysreport, recoger informacin del sistema (RH)


sysreport Se ha cambiado por sosreport en la versin 6.

53.-Hexadecimal
Dos comandos para mostrar el contenido de un archivo hexadecimal:

xxd hexdump

Muestro dos ejemplos sobre un archivo con el sector de arranque del disco: (igan) /home/vicente# hexdump kk 0000000 48eb 8e90 8ed8 bec0 7c00 00bf b906 0100 0000010 a5f3 2eea 0006 4700 4741 203a 0090 0010 0000020 0001 7c00 0000 0000 0000 0000 0000 17bf etc (igan) /home/vicente# xxd kk 0000000: eb48 908e d88e c0be 007c bf00 06b9 0001 .H.......|...... 0000010: f3a5 ea2e 0600 0047 4147 3a20 9000 1000 .......GAG: .... 0000020: 0100 007c 0000 0000 0000 0000 0000 bf17 ...|............ etc

54.-Cambios de filtro LVM


Tras reinstalar los drivers de fibra en un blade server se ven primero los discos de fibra y luego el SCSI interno . Esto hace que el disco /dev/sda se llame ahora como el ltimo disco, es decir, /dev/sdak o similar, dependiendo del nmero de discos de fibra disponibles. /dev/sda es, ahora, el primer disco de fibra. Para que el servidor funcione se ha cambiado el lvm.conf de initrd para que no tenga filtro, es decir, para que en tiempo de arranque vea todos los discos, entre ellos el que sea de sistema y monte vg_sistema. Este initrd se genera al instalar el rpm de lpfc; en el momento de instalarlo hay que dejar lvm.conf sin filtro, instalarlo y, luego, cambiar el filtro si necesario. Cualquier recreacin del initrd habr de tener esto en cuenta o fallar el arranque del sistema. Una vez arranca Linux LVM escanea de nuevo, ya desde el sistema operativo; al no tener filtro, ve los PV,s a travs de los vpath y los sdx y esto provoca errores ya que, si toma un PV como /dev/sdx, el 25/09/02 99

multipath fallar. Ha de tormar los PV,s como vpathx solamente. Para que LVM funcione bien se ha creado un script /sbin/filtra.sh y se ha aadido a /etc/rc.local para que se ejecute al final del arranque. Este script aade al lvm.conf el filtro que se necesita para el funcionamiento normal del sistema. Si se dejara un filtro para slo vpathx el vg_sistema estara montado y funcionando bien pero vgdisplay no lo mostrara. Script /sbin/filtra.sh: #!/bin/sh disco=$(mount|grep /boot|grep /dev|awk '{print $1}'|cut -d1 -f1|cut -d2 -f1) ed /etc/lvm/lvm.conf << EOF >/dev/null 2>&1 /filter =/ c filter = [ "a|$disco[1-9]|","a/vpath[a-z]*/","r/.*/" ] . w q EOF

/etc/rc.local: /sbin/filtra.sh >/dev/null 2>&1 /sbin/vgscan >/dev/null 2>&1

54.1.-Filtro LVM para discos powerpath


Suponemos un disco /dev/sda con un VG y varios discos de datos powerpath (EMC symmetrix) llamados /dev/emcpowera, emcpowera3, emcpowerb1 El filtro que hay que poner en el /etc/lvm/lvm.conf es este: filter = [ "a/sda/", "a/emcpower/", "r/.*/" ] Si se desordenan los discos, en lugar de sda hay que darle el identificador del disco local, que se encuentra en /dev/disk/by-id: filter = [ "a/dev/.*/by-id/edd-int13_dev80/", "a/emcpower/", "r/.*/" ]

55.-Configuracin del porttil para acceso va eSNI


Los servidores de Enags que vayan a ser accedidos desde eSNI necesitan una ruta contra la red eSNI: 129.39.0.0 mscara 255.255.0.0 Esta ruta se consigue a travs del gateway por defecto salvo en los servidores MOL18701 y MOL18703 (ambos en la DMZ) que la configuran en: MOL18701: /etc/sysconfig/static-routes: any net 129.39.0.0 netmask 255.255.0.0 gw 172.16.4.70 25/09/02 100

MOL18703: /etc/sysconfig/network-scripts/route-eth0: 129.39.0.0/16 via 172.16.4.70

55.1.-Ubuntu
Parto de un Ubuntu configurado como c4eb. Pido usuario eSNI. Instalo TACACS en Ubuntu y lo configuro contra el servidor: 129.39.136.163:950 con mi usuario y password. Instalo tsocks y lo configuro para acceder a Enags. Para conectarme desde la red de IBM, lanzo Tacacs y, a continuacin, la aplicacin necesaria siempre con tsocks delante. Es decir:

Conexin SSH: Conexin web: Conexin Terminal Services:

tsocks ssh ibmadmin@servidor tsocks firefox tsocks tsclient

55.2.-Windows XP
Instalo Hummingbird socks. Lo configuro creando un socks.cnf en: C:\WINDOWS\system32\Hummingbird\Connectivity\7.00\Socks Conecto a la red de IBM (desde un edificio IBM, ADSL, Wireless, mdem USB HSDAP + ATT Nw Client). ATT borra el fichero de configuracin de socks. Lo restauro desde: C:\Program Files\Hummingbird ESD\Socks\System32\Hummingbird\Connectivity\7.00\Socks a su sitio: C:\WINDOWS\system32\Hummingbird\Connectivity\7.00\Socks Me conecto a la eSNI conectando con usuario y password a: https://129.39.136.163:950/ Y ya puedo abrir sesiones con putty y web.

55.3.-Acceso va mdem USB 55.3.1.-Desde Windows XP


Conecto con el mdem a Internet. Conecto con ATT a IBM. Restauro el el fichero socks.cnf que ATT me borra. Conecto con Putty a los servidores. 25/09/02 101

55.3.2.-Desde Ubuntu
Necesito instalar gnome-ppp y usb_modeswitch: http://www.draisberghof.de/usb_modeswitch/ Este ltimo se descomprime y se ejecuta make install (para ejecucin manual). El mdem lleva un disco interno que Ubuntu monta como cdrom en /media/Modem. Hay que desmontarlo y hacer que el sistema lo reconozca como mdem. Para ello: Se inserta el mdem USB lsusb lo muestra: vendor 0x1c9e product 0xf000 Ejecuto: usb_modeswitch Que contiene, en /etc/usb_modeswitch.conf, la configuracin para mi mdem: # ST Mobile Connect HSUPA USB Modem # Longcheer WM66, Vicente Romero. DefaultVendor= 0x1c9e DefaultProduct= 0xf000 TargetVendor= 0x1c9e TargetProduct= 0x9063 MessageContent="55534243123456788000000080000606f50402527000000000000000000000" Una vez reconocido y cambiado su identificador, lo veo en lsusb: vendor 0x1c9e product 0x9063 Ahora hay que crear el dispositivo. Para ello he aadido una regla en /etc/udev/rules.d que aade automticamente /dev/ttyUSBx al descubrir el mdem. El mdem lo descubre tras ejecutar usb_modeswitch, y automticamente crea el dispositivo: root@igan:/etc/udev/rules.d# cat 15-wm66.rules ACTION!="add", GOTO="ZTE_End" # Is this the ZeroCD device? SUBSYSTEM=="usb", SYSFS{idProduct}=="f000", SYSFS{idVendor}=="1c9e", GOTO="ZTE_ZeroCD" # Is this the actual modem? SUBSYSTEM=="usb", SYSFS{idProduct}=="9603", SYSFS{idVendor}=="1c9e", GOTO="ZTE_Modem" LABEL="ZTE_ZeroCD" # This is the ZeroCD part of the card, remove # the usb_storage kernel module so # it does not get treated like a storage device RUN+="/sbin/rmmod usb_storage" LABEL="ZTE_Modem" # This is the Modem part of the card, let's # load usbserial with the correct vendor # and product ID's so we get our usb serial devices RUN+="/sbin/modprobe usbserial vendor=0x1c9e product=0x9603", # Make users belonging to the dialout group 25/09/02 102

# able to use the usb serial devices. MODE="660", GROUP="dialout" LABEL="ZTE_End"

Atencin: para poder montar un disco USB tengo que mover este script fuera del directorio. Para poder montar un disco USB con el mdem conectado, mejor no creo la regla de udev sino un script:
root@igan:~# cat /usr/sbin/initmodem.sh #!/bin/sh usb_modeswitch sleep 10 modprobe usbserial vendor=0x1c9e product=0x9603 No debo arrancar el porttil con el mdem conectado pues entonces lo ve como mdem. Lo conecto tras arrancar y ejecuto initmodem.sh. Por ltimo, hay que marcar para conectar. Esto lo hace wvdial siguiendo su configuracin en /etc/wvdial.conf; lo he intentado sin conseguirlo. As que he instalado gnome-ppp. Este ltimo crea una configuracin en el directorio del usuario con el que arranca, /home/vicente/.wvdial.conf. Lo he retocado a mano para que no utilice usuario y para que use el modo estpido; tambin he aadido el apartado para insertar mi PIN (nnnn): Init2 = AT+CPIN=nnnn meter USB. Lo dejo sin PIN as: vicente@igan:~$ cat .wvdial.conf [Dialer Defaults] Modem = /dev/ttyUSB2 ISDN = off Modem Type = USB Modem Baud = 460800 Init = ATZ Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 Init3 = AT+CGDCONT=1,"IP","gprs-service.com" Init4 = Init5 = Init6 = Init7 = Init8 = Init9 = Phone = *99# Phone1 = *99# Phone2 = Phone3 = Phone4 = Dial Prefix = Dial Attempts = 1 Dial Command = ATM1L3DT Ask Password = off Password = . Username = . 25/09/02 103 pongo mi PIN . Conecta una sola vez, la siguiente ya no pide pin: sacar y

Auto Reconnect = off Abort on Busy = off Carrier Check = on Check Def Route = on Abort on No Dialtone = on Stupid Mode = on Idle Seconds = 0 Auto DNS = on ;Minimize = off ;Dock = on # Do NOT edit this file by hand! Hago chown de /etc/ppp/pap-secrets y chap-secrets a vicente:vicente para que gnome-ppp pueda modificarlos. En pap-secrets y chap-secrets debe aparecer, al final, la lnea: \. * \. correspondientes a login-name y password. Esto se crea entrando un punto en usuario y password de gnome-ppp. Es necesario aadir al grupo dip el usuario con el que nos conectamos y cambiar los permisos de /usr/sbin/pppd para que sean: -rwsr-xr-Si no conecta, hay que desactivar o desinstalar modemmanager. Tambin, quitar apparmor: /etc/init.d/apparmor stop update-rc.d -f apparmor remove aptitude remove apparmor apparmor-utils Para pruebas sin arrancar gnome-ppp: wvdial -C .wvdial.conf

Ver cmo aadir la segunda conexin tras dar de alta la tarjeta de MASmovil. APN: Internetmas Fono: *99***1#

56.-Ubuntu
56.1.-/etc/network/interfaces de un plumazo
IP esttica Revisa el archivo /etc/network/interfaces 25/09/02 104

$ more /etc/network/interfaces Este debera decir algo as, # The loopback network interfaceauto loiface lo inet loopback # The primary network interfaceauto eth0 auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.1.40 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1 iface eth1 inet static address 192.168.1.41 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1 La primera interfase loopback (lo) es una interfase especial que permite hacer conexiones internas. Esta no debera modificarse bajo ningn motivo. La segunda interfase definida es eth0, que corresponde a la primera interfase Ethernet. Revisa si los parmetros estn correctos. La entrada address corresponde al nmero IP del computador y debera ser nico. La entrada netmask corresponde a la mscara de red y es la que define el rango de nmeros IP de la red local. Para una red de clase C esta debera tener el valor 255.255.255.0 lo que define el rango de 0 a 255 en el ltimo dgito de los nmeros IP de la red local. Las entradas network y broadcast casi siempre corresponden al primer y ltimo nmero del rango de nmeros IP. La entrada gateway define el nmero IP del computador que funciona como ruteador (pasarela) de la red local y es quizs el parmetro ms importante despus del nmero IP del computador. Consulta con el administrador de la red sobre los valores pertinentes a la red local. Si necesitas cambiar alguno de estos valores usa el editor nano seguido del nombre del archivo a editar con su ruta completa, # vim /etc/network/interfaces y luego reinicia la red con el comando /etc/init.d/networking restart. Prueba nuevamente conexiones externas con ping. Revisa si la definicin del servidor de nombres de dominio (DNS) est correcta. Esta se encuentra en el archivo /etc/resolv.conf y debera decir algo as, search blog.solusan.com 202.89.70.31 nameserver 4.2.2.2 en dnde el valor de search debera ser el dominio de la red local. La entrada nameserver define el nmero IP del DNS. Este valor debe ser suministrado por el administrador de la red. Si haces modificaciones a estos valores reinicia la red con /etc/init.d/networking restart. IP dinmica (DHCP) Si la red est detrs de un servidor DHCP, que asigna los parmetros de la red a requerimiento, la entrada en /etc/network/interfaces dir, # The primary network interfaceauto eth0 iface eth0 inet dhcp Revisa con ifconfig eth0 si tiene nmero IP asignado. Si no hay nmero IP asignado, revisa que el paquete dhcp3-client est instalado. Si no, instlalo con, # apt-get install dhcp3-client Instala tambin el paquete resolvconf, # apt-get install resolvconf Este configura automticamente los servidores DNS presentes en la red, reescribiendo la informacin 25/09/02 105

en /etc/resolv.conf. Reinicia la red con /etc/init.d/networking restart. Tambin puedes forzar el contacto con el servidor DHCP corriendo dhclient eth0, # dhclient eth0 Internet Systems Consortium DHCP Client V3.0.4 Copyright 2004-2006 Internet Systems Consortium. All rights reserved. For info, please visit http://www.isc.org/sw/dhcp/Listening on LPF/eth0/00:13:ce:de:2f:72 Sending on LPF/eth0/00:13:ce:de:2f:72 Sending on Socket/fallback DHCPDISCOVER on eth1 to 255.255.255.255 port 67 interval 8 DHCPOFFER from 192.168.0.1 DHCPREQUEST on eth1 to 255.255.255.255 port 67 DHCPACK from 192.168.0.1 bound to 192.168.0.118 renewal in 42300 seconds.

56.2.-Servicios en Ubuntu
root@igan:~# update-rc.d --help usage: update-rc.d [-n] [-f] <basename> remove update-rc.d [-n] <basename> defaults [NN | SS KK] update-rc.d [-n] <basename> start|stop NN runlvl [runlvl] [...] . update-rc.d [-n] <basename> disable|enable [S|2|3|4|5] -n: not really -f: force

56.3.-Nivel de ejecucin
Inittab: /etc/event.d/rc-default se cambia telinit S por telinit 3.

56.4.-Plugin Java
root@igan:/usr/lib/firefox-3.5.7/plugins# ln -s /usr/lib/j2re1.5-ibm/jre/bin/libjavaplugin_ojigtk2.so ./libjavaplugin_oji.so

56.5.-Paquetes
Instalacin de paquetes: synaptic, grfico.

56.6.-Instalacin de Java
Se instala, el de IBM, desde ibm-java-installer. Si quiero meter un java nuevo puedo desinstalarlo e instalarlo de nuevo, o bien: dpkg-reconfigure ibm-java-installer.

25/09/02

106

56.7.-Fuentes M$
apt-get install msttcorefonts.

25/09/02

107

S-ar putea să vă placă și