lunes, 3 de enero de 2011

comandos LINUX más usados.

A

addgroup
Se utiliza para crear un grupo nuevo.
Sintaxis: addgroup nom_grupo

adduser
Se utiliza para añadir un usuario. En ese momento, no solo se creará la cuenta del usuario sino también su directorio de trabajo, un nuevo grupo de trabajo que se llamará igual que el usuario y añadirá una serie de ficheros de configuración al directorio de trabajo del nuevo usuario.
Sintaxis: adduser nom_usuario [nom_grupo]

alias
En ciertas ocasiones se suelen utilizar comandos que son difíciles de recordar o que son demasiado extensos, pero en UNIX existe la posibilidad de dar un nombre alternativo a un comando con el fin de que cada vez que se quiera ejecutar, sólo se use el nombre alternativo.
Sintaxis: alias nom_alias=’comando’

apt-cache search (texto)
Muestra una lista de todos los paquetes y una breve descripción relacionado con el texto que hemos buscado.

apt-get dist-upgrade
Función adicional de la opción anterior que modifica las dependencias por la de las nuevas versiones de los paquetes.

apt-get install (paquetes)
Instala paquetes.

apt-get remove (paquete)
Borra paquetes. Con la opción –purge borramos tambien la configuración de los paquetes instalados.

apt-get update
Actualiza la lista de paquetes disponibles para instalar.

apt-get upgrade
Instala las nuevas versiones de los diferentes paquetes disponibles.

at
Realiza un tarea programada una sola vez.
Sintaxis: at [-lr] hora [fecha].

B

bash, sh
Existen varias shells para Unix, Korn-Shell (ksh), Bourne-Shell (sh), C-Shell (csh),bash.
Sintaxis: bash / sh / ksh / csh.

bg
Manda un proceso a segundo plano.
Sintaxis: bg PID.

C

cal
Muestra el calendario.
Sintaxis: cal [[mes] año].

cat
Muestra el contenido del archivo en pantalla en forma continua, el prompt retornará una vez mostrado el contenido de todo el archivo. Permite concatenar uno o mas archivos de texto.
Sintaxis: cat nom_archivo.

cd
Cambia de directorio.
Sintaxis: cd nom_directorio.

chattr
Cambiar atributos de un fichero.
Sintaxis: chattr atributos nom_archivo.

chgrp
Cambia el grupo al que pertenece el archivo.
Sintaxis: chgrp nom_grupo nom_archivo.

chmod
Utilizado para cambiar la proteción o permisos de accesos a los archivos.
r:lectura w:escritura x:ejecución
+: añade permisos -:quita permisos
u:usuario g:grupo del usuario o:otros
Sintaxis: chmod permisos nom_archivo

chown
Cambia el propietario de un archivo.
Sintaxis: chown nom_propietario nom_archivo.

chroot
Nos permite cambiar el directorio raiz.
Sintaxis: chroot nom_directorio_raiz.

clear
Limpia la pantalla, y coloca el prompt al principio de la misma.
Sintaxis: clear.

cmp, diff
Permite la comparación de dos archivos, línea por línea. Es utilizado para compara archivos de datos.
Sintaxis: diff nom_archivo1 nom_archivo2 / cmp nom_archivo1 nom_archivo2.

cp
Copia archivos en el directorio indicado.
Sintaxis: cp nom_archivo nom_directorio.

crontab
Realizar una tarea programada de forma regular.
Sintaxis: minuto(0-59) hora(0-23) dia_mes(1-31) mes(1-12) dia_semana(0-6) comando.

cut
Ttiene como uso principal mostrar una columna de una salida determinada. La opción -d va seguida del delimitador de los campos y la opción -f va seguida del número de campo a mostrar. El “delimitador” por defecto es el tabulador, nosotros lo cambiamos con la opción -d. Tiene algunas otras opciones útiles.
Sintaxis: cut [opciones] nom_archivo.

D

date
Retorna el día, fecha, hora (con minutos y segundos) y año.
Sintaxis: date.

delgroup
Se utiliza para eliminar un grupo.
Sintaxis: delgroup nom_grupo.

deluser
Elimina una cuenta de usuario. La pega de este comando es que no elimina automáticamente el directorio de trabajo del usuario.
Sintaxis: deluser nom_usuario.

df
Muestra los sistemas de ficheros montados.
Sintaxis:df

dmesg
Muestra los mensajes del kernel durante el inicio del sistema.
Sintaxis: dmesg.

Dpkg -reconfigure (paquetes)
Volver a reconfigurar un paquete ya instalado.

du
Sirve para ver lo que me ocupa cada directorio dentro del directorio en el que me encuentro y el tamaño total.
Sintaxis: du

E

echo
Muestra un mensaje por pantalla.
Sintaxis: echo “Cadena”.

eject
Mediante la utilización de este comando se conseguirá la expulsión de la unidad de CD, siempre y cuando esta no esté en uso.
Sintaxis: eject.

env
Para ver las variables globales.
Sintaxis: env.

exit
Cierra las ventanas o las conexiones remotas establecidas o las conchas abiertas. Antes de salir es recomendable eliminar todos los trabajos o procesos de la estación de trabajo.
Sintaxis: exit.

F

fg
Manda un proceso a primer plano.
Sintaxis: fg PID.

file
Determina el tipo del o los archivo(s) indicado(s).
Sintaxis: file nom_archivo.

find
Busca los archivos que satisfacen la condición en el directorio indicado.
Sintaxis: find nom_directorio o nom_archivo condición.

finger
Permite encontrar información acerca de un usuario.
Sintaxis: finger / finger usuario.

free
Muestra información sobre el estado de la memoria del sistema, tanto la swap como la memoria física.Tambien muestra el buffer utilizado por el kernel.
Sintaxis: free.

fsck
Para chequear si hay errores en nuestro disco duro.
Sintaxis: fsck ­t fs_typo dispositivo.

ftp
Protocolo de Transferencia de Archivos, permite transferir archivos de y para computadores remotos.
Sintaxis: ftp maquina_remota.

G

grep
Su funcionalidad es la de escribir en salida estándar aquellas líneas que concuerden con un patrón. Busca patrones en archivos.
Sintaxis: grep [-cilnv] expr nom_archivos.

gzip
Comprime solo archivo utilizando la extensión .gz.
Sintaxis: gzip nom_archivo.

H

head
Muestra las primeras lineas de un fichero.
Sintaxis: head -count nom_archivo.

history
Lista los más recientes comandos que se han introducido en la ventana. Es utilizado para repetir comandos ya tipeados, con el comando !.
Sintaxis: history

I

id
Numero id de un usuario.
Sintaxis: id

ifconfig
Obtener información de la configuración de red.
Sintaxis: ifconfig.

insmod
Carga en memoria un módulo.
Sintaxis: insmod

J

job
Lista los procesos que se están ejecutando en segundo plano.
Sintaxis: jobs

K

kill
Permite interactuar con cualquier proceso mandando señales.Kill (pid) termina un proceso y Kill -9 (pid) fuerza a terminar un proceso en caso de que la anterior opción falle.
Sintaxis: kill [opciones] PID.

L

last
Este comando permite ver las últimas conexiones que han tenido lugar.
Sintaxis: last.

less
Muestra el archivo de la misma forma que more, pero puedes regresar a la página anterior presionando las teclas “u” o “b”.
Sintaxis: less nom_archivo

ln
Sirve para crear enlaces a archivos, es decir, crear un fichero que apunta a otro. Puede ser simbólico si usamos -s o enlace duro.
Sintaxis: ln [-s] nom_archivo nom_acceso.

logout
Las sesiones terminan con el comando logout.
Sintaxis: logout.

lpr
Imprime un archivo en la impresora predeterminada.
Sintaxis: lpr -[lista de requerimientos]/ lpr -P nombre_archivo.

ls
Lista los archivos y directorios dentro del directorio de trabajo.
Sintaxis: ls.

lsattr
Ver atributos de un fichero.
Sintaxis: lsattr nom_archivo.

lsmod
Muestra los módulos cargados en memoria.
Sintaxis: lsmod.

M

mail
Para enviar/recibir correo a/de otros usuarios de la red, o dentro de nuestro ordenador.
Sintaxis: mail.

make
Es una herramienta que controla la creación de ejecutables y otros archivos de un programa a partir de los archivos fuente.
Sintaxis: make.

man
Ofrece información acerca de los comandos o tópicos del sistema UNIX, así como de los programas y librerías existentes.
Sintaxis: man comando.

mkdir
Crea un nuevo directorio.
Sintaxis: mkdir nom_directorio.

mv
Este comando sirve para renombrar un conjunto.
Sintaxis: mmv nom_archivos1 nom_archivos2.

more
Muestra el archivo en pantalla. Presionando enter, se visualiza linea por linea. Presinando la barra espaciadora, pantalla por pantalla. Si desea salir, presiona q.
Sintaxis: more nom_archivo.

mount
En Linux no existen las unidades A: ni C: sino que todos los dispositivos “cuelgan” del directorio raíz /. Para acceder a un disco es necesario primero montarlo, esto es asignarle un lugar dentro del árbol de directorios del sistema.
Sintaxis: mount -t sistema_de_archivo dispositivo nom_directorio.

mv
Mueve archivos o subdirectorios de un directorio a otro, o cambiar el nombre del archivo o directorio.
Sintaxis: mv nom_archivo1 …nom_archivoN nom_directorio.

N

netstat
Muestra las conexiones y puertos abiertos por los que se establecen las comunicaciones.
Sintaxis: netstat.

nice
Permite cambiar la prioridad de un proceso en nuestro sistema.
Sintaxis: nice -n prioridad PID.

O

Aun no se ha dado de alta ningún comando que comience con esta letra

P

passwd
Se utiliza para establecer la contraseña a un usuario.
Sintaxis: passwd nom_usuario.

ping
El comando ping se utiliza generalmente para testear aspectos de la red, como comprobar que un sistema está encendido y conectado; esto se consigue enviando a dicha máquina paquetes ICMP. El ping es útil para verificar instalaciones TCP/IP. Este programa nos indica el tiempo exacto que tardan los paquetes de datos en ir y volver a través de la red desde nuestro PC a un determinado servidor remoto.
Sintaxis: ping (maquina).

poweroff
Apagar el ordenador.
Sintaxis: poweroff.

ps
Muestra información acerca de los procesos activos. Sin opciones, muestra el número del proceso, terminal, tiempo acumulado de ejecución y el nombre del comando.
Sintaxis: ps.

pstree
Muestra un árbol de procesos.
Sintaxis: pstree.

pwd
Muestra el directorio actual de trabajo.
Sintaxis: pwd.

Q

Aun no se ha dado de alta nigún comando que comience con esta letra

R

reset
Si observamos que escribimos en pantalla y no aparece el texto pero al pulsar enter realmente se está escribiendo, o que los colores o los textos de la consola se corrompen, puede ser que alguna aplicación en modo texto haya finalizado bruscamente no restaurando los valores estándar de la consola al salir. Con esto forzamos unos valores por defecto, regenerando la pantalla.
Sintaxis: reset.

rlogin
Conectan un host local con un host remoto.
Sintaxis: rlogin maquina_remota.

rm
Remueve o elimina un archivo.
Sintaxis: rm nom_archivo.

rmdir
Elimina el directorio indicado, el cual debe estar vacío.
Sintaxis: rmdir nom_directorio.

rmmod
Descarga de memoria un módulo, pero sólo si no está siendo usado.
Sintaxis: rmmod.

route
El comando route se utiliza para visualizar y modificar la tabla de enrutamiento.
Sintaxis: route (muestra información del comando route).

S

scp
Sirve para hacer una copia segura entre dos ordenadores. La información viaja encriptada.
Sintaxis: scp usuario@servidor:directorio_servidor directorio_local.

set
Para ver las variables de entorno.
Sintaxis: set.

sftp
Protocolo de Transferencia de Archivos, permite transferir archivos de y para computadores remotos. La información viaja encriptada.
Sintaxis: sftp maquina_remota.

sort
Muestra el contenido de un fichero, pero mostrando sus líneas en orden alfabético.
Sintaxis: Sort [opciones] nom_archivo.

ssh (Secure Shell Client)
Es un programa para conectarse en una máquina remota y ejecutar programas en ella. Utilizado para reemplazar el rlogin y rsh, además provee mayor seguridad en la comunicación entre dos hosts. El ssh se conecta al host indicado, donde el usuario de ingresar su identificación (login y password) en la máquina remota, la cual realiza una autentificación del usuario.
Sintaxis: ssh maquina_remota.

startx
Inicia el entorno gráfico(servidor X).
Sintaxis: startx.

su
Con este comando accedemos al sistema como root.
Sintaxis: su.

T

tail
Este comando es utilizado para examinar las últimas líneas de un fichero.
Sintaxis: tail -count nom_archivo.

tar
Comprime archivos y directorios utilizando la extensión .tar.
Sintaxis: tar -[arg] nom_archivo.tar nom_archivo.

telnet
Conecta el host local con un host remoto, usando la interfaz TELNET.
Sintaxis: telnet maquina_remota

top
Muestra los procesos que se ejecutan en ese momento, sabiendo los recursos que se están consumiendo(Memoria,CPU,…).Es una mezcla del comando uptime,free y ps.
Sintaxis: top.

touch
Crea un archivo vacio.
Sintaxis: touch nom_archivo.

traceroute
Permite determinar la ruta tomada por un paquete para alcanzar su destino en Internet.
Sintaxis: traceroute [opciones] host [tamaño del paquete].

U

umask
Establece la máscara de permisos. Los permisos con los que se crean los directorios y los archivos por defecto.
Sintaxis: umask a-rwx,u+rw,g+r.

umount
Establece la máscara de permisos. Los permisos con los que se crean los directorios y los archivos por defecto.
Sintaxis: umask a-rwx,u+rw,g+r.

unalias
Borra un alias.
Sintaxis: unalias nom_alias.

uniq
Este comando lee un archivo de entrada y compara las líneas adyacentes escribiendo solo una copia de las líneas a la salida. La segunda y subsecuentes copias de las líneas de entrada adyacentes repetidas no serán escritas. Las líneas repetidas no se detectarán a menos que sean adyacentes. Si no se especifica algún archivo de entrada se asume la entrada estándar.
Sintaxis: uniq [opciones] nom_archivo_entrada nom_archivo_salida.

uptime
Nos indica el tiempo que ha estado corriendo la máquina.
Sintaxis: uptime.

V

vi
Permite editar un archivo en el directorio actual de trabajo. Es uno de los editores de texto más usado en UNIX.
Sintaxis: vi nom_archivo.

view
Es similar al vi, solo que no permite guardar modificaciones en el archivo, es para leer el contenido del archivo.
Sintaxis: view nom_archivo.

W

wc
Cuenta los caráteres, palabras y líneas del archivo de texto.
Sintaxis: wc nom_archivo.

whereis
Devuelve la ubicación del archivo especificado, si existe.
Sintaxis: whereis nomb_archivo.

who, w
Lista quienes están conectado al servidor, con nombre de usuario, tiempo de conexión y el computador remoto desde donde se conecta.
Sintaxis: who / w.

whoami
Escribe su nombre de usuario en pantalla.
Sintaxis: whoami.

X

xmessage
Enviar un mensaje al display de otro usuario o al nuestro propio.
Sintaxis: xmessage (mensaje) / export DISPLAY=157.92.49.211:0 xmessage Hola!!.

Y

yes
Escribe “y” continuamente.
Sintaxis: yes.

Z

Aun no se ha dado de alta nigún comando que comience con esta letra

Varios

&
Añadiendo un & al final del comando haremos que se comando ese ejecute en segundo plano.
Sintaxis: nom_comando&.

!
Repite el último comando colocando la letra con la que comienza el comando o su número de history.
Sintaxis: !.

jueves, 30 de diciembre de 2010

Buscar archivos que contengan un texto en Linux

Para buscar archivos que contengan un cierto texto en Linux podemos utilizar el comando grep.

Su uso es muy sencillo. Basta con pasar como argumentos una cadena de texto a buscar (o una expresión regular) y el archivo o archivos en los que buscar.

grep “TODO” /home/zootropo/codigo/*.py

También podemos hacer que busque en todos los archivos contenidos en un cierto directorio, de forma recursiva, utilizando el flag -r:

grep -r “TODO” /home/zootropo/codigo/

viernes, 1 de octubre de 2010

Advertencia! - Fallo al mover el archivo joomla

Este error lo solucione en mi caso de la siguiente manera:

el archivo configuration.php,

var $log_path = '/var/www/Joomla15X/logs';
var $tmp_path = '/var/www/Joomla15X/tmp';

Esas variables contienen la ruta, puede ser la misma carpeta o diferentes, lo importante es que este la cartepa a la que hace referencia y aquí mi problema, !que tengan permiso de escritura!

si aun no saben como les doy los comandos, busquen en google
chmod
chgrp
chown

o manden un mail.

martes, 28 de septiembre de 2010

SERVICIOS

SERVICIOS

Copyright 2005-2010 Sergio González Durán
Se concede permiso para copiar, distribuir y/o modificar este documento siempre y cuando se cite al autor y la fuente de linuxtotal.com.mx y según los términos de la GNU Free Documentation License, Versión 1.2 o cualquiera posterior publicada por la Free Software Foundation.

autor: sergio.gonzalez.duran@gmail.com


Linux ofrece multitud de servicios o servidores, estos pueden iniciar o arrancar junto con la carga del sistema o pueden después ser puestos a funcionar cuando se requieran (es lo mejor). Parte esencial de la administración de sistemas Linux es continuamente trabajar con los servicios que este proporciona, cosa que es bastante sencilla. En este tutorial aprenderás todo lo necesario sobre como inicar/detener/reinicar etc. los servicios de tu equipo GNU/Linux.


Iniciando servicios manualmente, directorio init.d

Dentro de esta carpeta ubicada en /etc o en /etc/rc.d dependiendo de la distribucción, se encuntran una serie de scripts que permiten inicar/detener la gran mayoría de los servicios/servidores que estén instalados en el equipo. Estos scripts están programados de tal manera que la mayoría reconoce los siguientes argumentos:

  • start
  • stop
  • restart
  • status

Los argumentos son autodescriptivos, y tienen permisos de ejecucción, entonces siendo root es posible iniciar un servicio de la siguiente manera, por ejemplo samba:

#> /etc/rc.d/init.d/smb start Starting Samba SMB daemon           [OK] 

Solo que hay que cambiar start por stop | restart | status para detenerlo, reiniciarlo (releer archivos de configuración) o checar su estatus. Ahora bien si estás parado dentro del directorio puedes hacerlo asi.

#> pwd /etc/rc.d/init.d #> ./smb stop Shutting down Samba SMB daemon     [OK]

Se trata de tan solo un script asi que con el permiso de ejecucción (x) puedes ejecutarlo con ./ seguido del nombre del servicio, sin espacios y después el argumento que necesites, inicarlo, detenerlo etc.


El comando service

En varias distros, como Fedora o RedHat, existe el comando service, este comando permite también iniciar y/o detener servicios, de hecho funciona exactamente igual a como si escribieramos la ruta completa hacía el directorio init.d, con service se indica de la siguiente manera:

#> service mysql status Checking for service MySQL: stopped

Si se desea iniciarlo:

#> service mysql start Starting service MySQL                               [OK]

Iniciando servicios desde el arranque del sistema

En muchos casos es conveniente que un servidor o servicio inicien junto con el arranque del equipo en si, por ejemplo el servidor web Apache o alguna base de datos, esto es para que estén disponibles todo el tiempo y no se requiera de intervención del administrador para iniciarlos.

En Linux, a diferencia de otros sistemas operativos, es posible configurarlo en base a niveles de ejecucción (run levels), cada nivel de ejecucción (en la mayoría de las distros son 7), inicia o detiene (Start o Kill) ciertos servicios. Estos niveles son los siguientes:

  • 0 Detener o apagar el sistema
  • 1 Modo monousuario, generalmente utilizado para mantenimiento del sistema
  • 2 Modo multiusuario, pero sin soporte de red
  • 3 Modo multiusuario completo, con servicios de red
  • 4 No se usa, puede usarse para un inicio personalizado
  • 5 Modo multiusuario completo con inicio gráfico ( X Window)
  • 6 Modo de reinicio (reset)

Por ejemplo el nivel 0, que apaga el equipo, mata o detiene a todos los procesos del sistema, todos los servicios, lo mismo hace el 6 con la diferencia que después inicia un script que permite reiniciar el sistema. El nivel por omisión o por default del sistema esta definifo en /etc/inittab, en la línea initdefault:

$> grep initdefault /etc/inittab id:5:initdefault:
# runlevel 0 is System halt (Do not use this for initdefault!)
# runlevel 6 is System reboot
(Do not use this for initdefault!)

La salida es de una distro OpenSuse 10. Como se puede apreciar existe una línea que comienza con id, seguido por 5 que indicaría entonces el nivel por default del sistema, basta con cambiar este valor con cualquier editor, reiniciar el equipo y se entraría a otro nivel, por ejemplo el 3 que tiene una funcionalidad completa pero sin sistema de ventanas X Window (ideal para equipos obsoletos o con pocos recursos de hardware). Nótese que en el listado previo aparecen dos líneas de comentarios, las que empiezan con #, que hacen la advertencia de no usar nunca los niveles 0 y 6 de initdefault, ya que jamás arrancaría el equipo. Se tendría que usar un método de rescate. (He aqui la importancia de jamás dejar una terminal abandonada con una sesión de root abierta ya que podría llegar un bromista y rápidamente cambiar la línea initdefault a 6 por ejemplo, y después estaría muy divertido viendo a un pobre administrador novato trátandose de explicar porque diablos el equipó se resetea hasta el infinito sin nunca entrar a una pantalla de login).

El nivel de ejecucción actual del sistema puede ser consultado con who -r y con el comando runlevel, este último muestra dos números el primero es el nivel previo en que se estaba y el segundo el nivel actual, si no se ha cambiado de nivel aparece una N.


Comando init

Este comando te permite cambiar el nivel de ejecucción actual por otro, es decir puedes estar en el nivel 3 y en cualquier momento pasar al 5 o viceversa, o entrar a un modo monousuario para tareas de mantenimiento como utilizar fsck. Esto sin necesidad de cambiar la línea initdefault en /etc/inittab, simplemente usando el comando init:

#> init 3

Puedes reiniciar el equipo con init 6 o incluso apagarlo con init 0, de hecho shutdown y otros comandos como halt, lo que hacen es invocar a init para apagar el equipo mas otras tareas como sincronizar buffers, etc. Si estás en una máquina que tenga particiones con sistemas de archivos ext2 o de windows como FAT, si invocas init 0 o init 6 tal cual, corres el riesgo de perder datos que no estén guardados en disco todavía, para esto combina init 0 con el comando sync que escribe lo que este en buffers de memoria a disco:

#> sync; sync; init 0     

Con un doble sync nos aseguramos que todo se escriba en disco antes de comenzar a apagar.


Los directorios rc

Debajo de /etc se encuentra el directorio rc.d que a la vez contiene un directorio para cada nivel de ejecucción, asi tenemos rc0.d, rc1.d, rc2.d, rc3.d, etc. Hay algunas distros que estos directorios están ubicados directamente en /etc. Como ya te imaginaras, cada uno de estos directorios contiene scripts (o mas bien enlaces a scripts) que apuntan al directorio init.d, entonces el comando init (ya sea ejecutado manualmente o cuando se inicia el sistema), dependiendo del nivel indicado leera cada uno de los enlaces o accesos directos del directorio respectivo.

Ahora bien, un ejemplo (parcial) típico de estos directorios puede ser el siguiente, tomado de rc3.d

lrwxrwxrwx   1 root root    7 Oct 20 20:05 K22dbus -> ../init.d/dbus lrwxrwxrwx  
1 root root 9 Oct 20 20:05 K22resmgr -> ../init.d/resmgr lrwxrwxrwx
1 root root 8 Oct 20 20:05 K24fbset -> ../init.d/fbset lrwxrwxrwx
1 root root 9 Oct 20 20:05 K24random -> ../init.d/random lrwxrwxrwx
1 root root 8 Oct 20 18:23 S01fbset -> ../init.d/fbset lrwxrwxrwx
1 root root 9 Oct 20 18:22 S01random -> ../init.d/random lrwxrwxrwx
1 root root 7 Oct 20 18:29 S03dbus -> ../init.d/dbus lrwxrwxrwx
1 root root 9 Oct 20 18:23 S03resmgr -> ../init.d/resmgr lrwxrwxrwx
1 root root 12 Oct 20 18:24 S04boot.udev -> ../init.d/boot.udev lrwxrwxrwx
1 root root 10 Oct 20 21:16 S05network -> ../init.d/network lrwxrwxrwx
1 root root 9 Oct 20 18:23 S06syslog -> ../init.d/syslog

Nótese que todos son enlaces al directorio init.d que como ya se vió previamente es donde realmente están ubicados los scripts de arranque de los servicios o servidores. También, todos los enlaces comienzan con K (kill) o con S (start), es pues fácil deducir que los que comienzan con K son scripts que recibirán el argumento stop y los que comienzan con S el de start, es decir, se inician. Esta gran simplicidad ofrece una enorme potencia al momento de configurar servicios ya que basta con agregar o quitar enlaces con el formato indicado para personalizar los niveles de ejecucción a nuestro gusto.

Después de la K o S sigue un número consecutivo, seguido generalmente del nombre del servicio que afectan, el número secuencial es simplemente el orden en que se leeran los scripts, primero los K comenzando con el 01 y hacía adelante y después los S. Entonces si por ejemplo no queremos que se inicie el samba en el nivel 3 bastaría con borrar su enlace en este directorio:

#> pwd /etc/rc.d/rc3.d #> rm S54smb

Y listo, el servidor samba ya no arrancaría cuando entremos en este nivel de ejecucción. Si por lo contrario lo que deseamos es iniciar (o apagar) un servicio, basta con crear su enlace en el directorio respectivo:

#> pwd /etc/rc.d/rc5.d #> ln -s /etc/rc.d/init.d/mysql S90mysql
#> ls -l S90mysql lrwxrwxrwx 1 root root 9 Oct 20 18:23 S90mysql -> ../init.d/mysql

Con esto la siguiente vez que iniciemos el equipo o cambiemos a nivel 5 con init, también se iniciará el servidor de la base de datos MySQL. El número 90 es escogido al azar entre 01 y 99 es simplemente el orden en que serán iniciados o detenidos los servicios.


Comando chkconfig

Lo anterior puede resultar engorroso para más de alguno pero es la única manera si no se tienen herramientas gráficas o de línea de comandos para configurar los servicios mas agilmente, y precisamente una de estas herramientas de línea de comandos es chkconfig que permite configurar que servicios arrancan/detenien en cada nivel de ejecucción. Aclaración: chkconfig no inicia ni detiene servicios al momento (excepto aquellos bajo xinetd), tan solo crea o elimina precisamente los enlaces de los que se habló en el punto anterior de una manera mas amigable. Si lo que se quiere es iniciar o detener el servicio en tiempo real o manualmente hay que usar service o directamente el script con su argumento conveniente tal como se explicó anteriormente.
Veamos ejemplos que muestran como trabajar con chkconfig.

Con la opción --list nos da una lista completa de todos los servicios instalados y para cada nivel si arrancará (on) al entrar a ese nivel o se detendrá (off) o simplemente no se iniciara. Nótese que al final de la lista vienen los servicios que dependen del superservidor xinetd.

#> chkconfig --list apache2                  
0:off 1:off 2:off 3:off 4:off 5:off 6:off bluetooth
0:off 1:off 2:off 3:off 4:off 5:off 6:off cron
0:off 1:off 2:on 3:on 4:off 5:on 6:off cups
0:off 1:off 2:on 3:on 4:off 5:on 6:off dhcpd
0:off 1:off 2:off 3:off 4:off 5:off 6:off ldap
0:off 1:off 2:off 3:off 4:off 5:off 6:off mysql
0:off 1:off 2:off 3:off 4:off 5:off 6:off named
0:off 1:off 2:off 3:off 4:off 5:off 6:off network
0:off 1:off 2:on 3:on 4:off 5:on 6:off nfs
0:off 1:off 2:off 3:on 4:off 5:on 6:off quotad
0:off 1:off 2:off 3:off 4:off 5:off 6:off smb
0:off 1:off 2:off 3:on 4:off 5:on 6:off vmware
0:off 1:off 2:on 3:on 4:off 5:on 6:off xinetd
0:off 1:off 2:off 3:on 4:off 5:on 6:off zebra
0:off 1:off 2:off 3:off 4:off 5:off 6:off xinetd based services:
rsync: off sane-port: off servers:
off services: off swat: on
systat: off tftp: off time:
off time-udp: off vnc: off
vsftpd: off

Si se indica como argumento el nombre de algún servicio nos regresará su estatus:

#> chkconfig smb smb   on

Sin ningún argumento nos dará una lista con el status de todos los servicios:

#> chkconfig httpd  off mysql  on smb    on

Se desea que el servidor web apache (httpd) inicie cuando se entra en el nivel 5, entonces usamos la opción --level:

#> chkconfig --level 5 httpd on

La base de datos MySQL no se desea que inicie en los niveles 3 y 5, solo hasta que el administrador decida arrancarla:

#> chkconfig --level 35 mysql off

Ambientes gráficos

En todas las distribucciones actuales en sus ambientes gráficos X Window incluyen herramientas de configuración se servicios que facilitan mucho la administración de servidores. En una misma pantalla podemos cambiar niveles de ejecucción, con un click indicar si el servicio arranca o se detiene, incluso iniciarlos o detenerlos en ese momento, todo vía gráfica. Lo mejor es aprenderlo a realizarlo desde la línea de comandos ya que esta será muy similar en casi todas las distros o puede ser que el linux que se esté utilizando no tenga servicios gráficos, aun asi, ya familiarizados con una distribucción es muy sencillo e intuitivo utilizar estas herramientas gráficas por lo que no entraremos en detalles, solo diremos que por ejemplo en SuSE con yast o yast2 es posible no solo controlar servicios sino multitud de cosas mas, en redhat tenemos redhat-config-services y en fedora e incluso versiones enterprise de redhat es system-config-services, mandrake, ubuntu, etc. Todas tienen una interfaz gráfica, es solo cuestión de buscarla.

Por otro lado tenemos interfaces web como la excelente herramienta webmin, que también permite un control total sobre el manejo de servidores, sumamente eficaz cuando se controlan servidores via remota por la web.

lunes, 27 de septiembre de 2010

recuperar el grub2 en ubuntu

Consiste en usar una distribución en modo LiveCD para instalar nuevamente el GRUB. Usaremos el LiveCD de Ubuntu 9.10 o superior (debe ser la versión Live o Desktop), aunque puede ser cualquier otra distribución que use GRUB2 como gestor de arranque y no LILO ni Grub 1.

Lo primero que debemos hacer es arrancar el live-cd y abrir una terminal. Despues escribimos los siguiente para ver las particiones de los distintos discos duros:

$ sudo fdisk -l

Después vemos cual es la partición donde tenemos Ubuntu y la montamos en /mnt (en la mayoría de los casos esta partición será sda1, el ejemplo lo haré con esa partición pero mira cual es tu partición con el comando fdisk):

$ sudo mount /dev/sda1 /mnt

Ahora, monta el resto de los dispositivos:

$ sudo mount --bind /dev /mnt/dev
$ sudo mount --bind /proc /mnt/proc

Y ejecuta el comando chroot de forma que accedemos como root al sistema de archivos de nuestro antiguo Ubuntu:

$ sudo chroot /mnt

Por último cargamos el Grub en el MBR ejecutando el siguiente comando:

# grub-install --recheck /dev/sda 

(sda lo debemos substituir por el disco duro que utilizamos para arrancar los sistemas operativos, casi siempre es sda. Ojo!! no poner el número de partición, solo sda).

Reiniciamos y cuando vuelva a arrancar ubuntu (no el del LiveCD), podemos ajustar en el menú del GRUB manualmente para que aparezca en el menú de arranque el nuevo sistema operativo que nos borró el MBR, o dejar que lo haga el automáticamente con el siguiente comando:

$ sudo update-grub2

Si el comando no te funciona, quizás necesites instalar el paquete grub2:

$ sudo aptitude install grub2

si no reconoce el windows puedes hacer lo siguiente

--->> root@christian-laptop:/home/christian# os-prober
--->> /dev/sda1:Windows 7 (loader):Windows:chain
root@christian-laptop:/home/christian# update-grub
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.32-24-generic
Found initrd image: /boot/initrd.img-2.6.32-24-generic
Found linux image: /boot/vmlinuz-2.6.32-23-generic
Found initrd image: /boot/initrd.img-2.6.32-23-generic
Found linux image: /boot/vmlinuz-2.6.32-21-generic
Found initrd image: /boot/initrd.img-2.6.32-21-generic
Found memtest86+ image: /boot/memtest86+.bin
Found Windows 7 (loader) on /dev/sda1
done

martes, 14 de septiembre de 2010

Oracle Database 11gR2

fuente: http://cotosilva.blogspot.com/2010/08/como-instalar-oracle-database-11gr2-en.html

Como instalar Oracle Database 11gR2 en Oracle Enterprise Linux 5

Para instalar y configurar Oracle 11gR2 se ha considerado Oracle Enterprise Linux 5 de 64bit como sistema operativo base para la instalación.

Paso 1: Preparación de Sistema Operativo

Seleccionar los siguientes paquetes de sistema operativo para instalar nuestro servidor Linux:

.- GNOME Desktop Environment
.- Editors
.- Graphical Internet
.- Text-based Internet
.- Development Libraries
.- Development Tools
.- Server Configuration Tools
.- Administration Tools
.- Base
.- System Tools
.- X Window System

Paso 1.5 Configurar el repositorio Oracle Public Yum

En un post anterior, comente la configuración paso a paso del repositorio publico Yum de Oracle para RHEL5,OEL5, RHEL4, EOL4. Este paso es opcional; pero la verdad que simplifica demasiado las tareas de búsqueda e instalación de los paquetes RPM necesarios para correr runinstaller

Ingresa al siguiente Link para ver completo el post.

Como configurar el repositorio Oracle Public Yum

Paso 2: Bajar el software de Oracle desde OTN.

Oracle Database 11g Release 2 (11.2.0.1.0) para Linux x86-64

linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip

Paso 3: Generar un Stage Area

El Stage Area es un concepto utilizado para indicar donde se almacena el software que necesitamos para una instalación. En este caso los siguientes archivos deben ser desempaquetados mediante el utilitario unzip.

Ejemplo:

cd /StageArea

unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip

Paso 4: Configurar archivo de hosts

Acceder al directorio /etc y editar el archivo hosts. Se debe agregar la IP, el nombre completo del host con su dominio y el nombre abreviado o el nombre de la máquina. en el siguiente formato:

192.168.xx.xx test.andoria.cl test

Paso 5: Parámetros de Kernel

Desde la versión Oracle 10g el instalador valida los parámetros de Kernel configurados en el sistema operativo. En la versión de Oracle 11gR2 es posible observar todos los parámetros que tienen problemas y poder corregir el error mediante un script generado automáticamente, de tal manera que al ejecutarlo con el usuario root, es posible modificar dinámicamente dichos parámetros y volver a chequear los prerrequisitos para continuar con la instalación y no tener que ejecutarlo nuevamente.



Paso 6: Configurando el archivo limits.conf

Para configurar el archivo limits.conf es necesario acceder al directorio /etc/security y editar el archivo de la siguiente manera:

vi /etc/security/limits.conf

Una vez editado se deben agregar las siguientes líneas:

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

Paso 7: Configurando el archivo login:

acceder al directorio /etc/pam.d y editar el archivo login de la siguiente manera:

vi /etc/pam.d/login

Una vez editado se debe agregar la siguiente línea. En el caso que no exista se debe crear el archivo login.

session required pam_limits.so

Paso 9: Deshabilitando la seguridad en Linux

Es necesario deshabilitar la seguridad configurando el archivo config de la siguiente manera:

vi /etc/selinux/config

Una vez editado se debe configurar el parámetro SELINUX=disabled

Paso 8: Revisión de paquetes rpm

En un posteo anterior explique en detalle la configuración del repositorio Oracle yum install. Para revisar el procedimiento revisar el siguiente link

Como se puede observar de igual manera que los parámetros de kernel, el instalador indica cuales son los paquetes que faltarían instalar para continuar con el proceso de instalación.

NOTA: Estas librerías no están incluidas en la validación del paquete de 64bit correspondiente a esta versión de Oracle Enterprise Linux 5. Se deben instalar ya que son un prerrequisito necesario para continuar.



Una vez corregidos todos los problemas, se debe ejecutar nuevamente el botón "Check Again". Solo en este paso es posible presionar el botón "Next" para continuar con la instalación.

Paso 10: Creación de Grupos y usuarios

Grupos:

Con el usuario root ejecutar los siguientes comandos para crear los grupos:

groupadd oinstall
groupadd dba
groupadd oper

Usuarios:

Con el usuario root ejecutar los siguientes comandos para crear los usuarios:

useradd -g oinstall -G dba,oper, oracle
passwd oracle





Lo más cómodo para arrancar el instalador, es necesario abrir un terminal con el usuario root y ejecutar la siguiente línea en el terminal. Esto entrega los permisos necesarios para que cualquier usuario pueda ejecutar la interfaz grafica ‘X’.

[root@vmdali ~]# xhost +
access control disabled, clients can connect from any host

Luego cambiarse al usuario Oracle y ejecutar lo siguiente:

[root@vmdali ~]# su - oracle

[oracle@vmdali]$ export DISPLAY=:0.0
[oracle@vmdali]$ /Stage/database/runInstaller



La primera ventana de diálogo nos indica si queremos agregar nuestro mail y si además necesitamos que Oracle Support tenga nuestra configuración en sus sistemas. La verdad que para este caso no lo he seleccionado. Para continuar seleccionar el botón "NO" y presionar el botón "Next" para avanzar a la siguiente pantalla.



Seleccionar la opción "Install Database Software Only". Esta opción instala solamente el motor Oracle sin crear una base de datos. Para continuar presionar el botón "Next".



Seleccionar la opción "Single Instance Database Installation". La otra opción es para configurar Real Application Cluster. Para continuar presionar el botón "Next".



En esta pantalla el instalador nos entrega la posibilidad de elegir el soporte de idiomas para nuestra instalación. En este caso se eligió el idioma Inglés. Para continuar presionar el botón "Next".



Ahora, podemos elegir cual es la característica de componentes y licenciamiento que tendrá nuestro motor de base de datos. La Enterprise Edition tiene todas las funcionalidades necesarias para armar temas de Alta disponibilidad y Oracle Data Guard. También es importante por costos ofrecer un licencia más barata como lo es Oracle Standard Edition ONE, permitiendo configurar un RAC con dos nodos, lo cual es mucho más barato, si no utilizas funcionalidades como índices particionados, partitioning entre otras. Esto permite tener menor costo en licenciamiento. Presionar el botón "Next" para continuar.



Seleccionar cualquiera de las características del motor Oracle necesarias para la instalación. Es importante considerar el tipo de licencia que posee el negocio. Presionar continuar presionar el botón "Next".

Para más información consultar las siguientes notas en Metalink:

NOTA:271886.1 - Differences Between Different Editions of Oracle Database 10G

NOTA:1084132.1 - Differences Between Enterprise, Standard and Personal Editions on Oracle 11.2





Definiendo el Oracle Base Directory:

Dentro de las buenas prácticas de Oracle para mantener un orden general de todas las versiones y software existentes. Se define un directorio para almacenar todas las instalaciones de Oracle. Esto se conoce como ORACLE_BASE. El directorio base definido para la instalación del motor seria la siguiente:

/u01/app/oracle

Definiendo el Oracle Home Directory:

Se define al ORACLE_HOME como el directorio donde se almacenan los binarios del Motor Oracle.

/u01/app/oracle/product/11.2.0/db_1



Definiendo el Oracle Inventory:

Este directorio almacena todo el inventario de los productos Oracle que son instalados, como por ejemplo las versiones de cada componente. También es necesario colocar el grupo dueño del software Oracle. Para este caso el usuario oracle pertenece a dos grupos como el oinstall y dba. Por lo general uno administra el software del oracle y el dba para la instancia y los archivos que componen la base de datos física. Para continuar presionar el botón "Next".



Para efectos de esta instalación solamente asigne al grupo oinstall como el administrador de la base de datos y también operador. En este caso los privilegios de OSDBA podrán otorgar privilegios de SYSDBA y el OSOPER podrá otorgar privilegios de SYSOPER; pero debe ser miembro del grupo oinstall.




El instalador permite una revisión automática de todos los prerrequisitos mínimos necesarios para completar una instalación exitosa.




Luego de realizar el análisis completo de nuestro sistema, el instalador es capaz de entregar los parámetros con problemas o si faltan paquetes de sistema y un posible valor mínimo para cumplir con los prerrequisitos de instalación. Para corregir el problema es necesario presionar el botón "Fix & Check Again".



Entonces....voilà!!!! , el instalador genera un script, el cual trae la corrección del problema. En este caso debemos ingresar al directorio: /tmp/CVU_11.2.0.1.0_oracle. Acá se encuentra el script llamado runfixup.sh

La ejecución del script debe ser realizada por el usuario root

./runfixup.sh

Una vez ejecutado nuevamente ejecute el botón "Fix & Check Again" y continúe la instalación.




La barra de progreso indica el estado de avance de la instalación. A su vez, en la pantalla de "status" despliega el estado general de cada tarea y su avance.



Una vez, terminada esta gran travesía...podemos decir que el motor Oracle fue instalado exitosamente.



Saludos,
Alberto Silva Gallardo.

miércoles, 1 de septiembre de 2010

YUM

yum install paqueteInstala la última versión del paquete indicado. Pide por confirmación.
yum -y install paqueteInstala la última versión del paquete indicado. Instala sin pedir confirmación.
yum -y install paquete1 paquete2Instala la última versión de los paquetes indicados, no hay límite de cuantos paquetes se pueden indicar. Instala sin pedir confirmación.
yum -y install paquete.archInstala la última versión del paquete indicado con la arquitectura indicada, por ejemplo: yum install mysql.i386.
yum -y updateActualiza todos los paquetes en el sistema.
yum -y update --exclude=sendmailActualiza todos los paquetes del sistema, excepto sendmail.
yum -y update httpdActualiza solo el paquete indicado, en este caso el servidor Web Apache.
yum -y update opera firefoxActualiza los paquetes indicados.
yum -y update --enablerepo=centosplusAdemás de los repositorios que se tengan se habilta otro, en este caso 'centosplus', esta opción también aplica para 'install'.
yum -y upgradeActualiza los paquetes indicados, pero tomando en cuenta paquetes obsoletos en el cálculo de la actualización. Esta opción es idéntica a yum -y --obsoletes update y solo es realmente útil cuando se actualizan paquetes a través de distintas versiones de la distrubición, por ejemplo de centos4 a centos5.
yum check-updateMuestra una lista de paquetes que necesitan ser actualizados sin instalarlos.
yum info paqueteDescripción completa del paquete indicado. Ejemplo:yum info samba
yum info recentMuestra información resumida de los últimos paquetes instalados o actualizados.
yum info availableMuestra información resumida de los paquetes disponibles a actualizarse.
yum listLista de todos los paquetes disponibles para instalación, actualización o ya instalados.
yum list | grep mysqlMuestra solo los paquetes disponibles o ya instalados de mysql.
yum list installedLista de todos los paquetes instalados en el sistema.
yum list availableLista de todos los paquetes disponibles para ser instalados.
yum list updatesLista de todos los paquetes disponibles para ser actualizados.
yum remove telnetRemueve el paquete indicado.
yum -y remove telnet vncserverRemueve los paquetes indicados sin pedir confirmación.
yum search paqueteBusca el 'paquete' en la base de datos de paquetes instalados o para instalar. 'paquete' puede ser una palabra parcial del paquete a buscar.
yum clean headersElimina todos los achivos de encabezados que yum utiliza para resolver dependencias.
yum clean packagesCuando utilizas la opción 'update' o 'install' el paquete que se desacrga e instala o actualiza no se elimina del sistema, ocupando espacio, con esta opción eliminas esos paquetes.
yum clean allLimpia tanto archivos de encabezados como paquetes, como utilizar las dos opciones previas, pero al mismo tiempo.
yum repolistLista los repositorios que se tengan de yum.