Compartir archivos vía NFS en Linux

Con NFS (Network File Sistem o Sistema de Ficheros de Red) podemos montar una partición de otro servidor en un directorio de otro servidor remoto como si fuera una partición local

Necesitamos tener instalado nfs-common y portmap si queremos utilizar los recursos NFS compartidos de otro servidor o para poder compratir y acceder, instalar : nfs-kernel-server y portmap

comprobar que está inciado el servicio :

# ps aux | grep portmap

Para compartir un directorio del servidor, hay que editar fichero /etc/exports y añadir como ejemplo :

/var/ejemplo *(rw,no_root_squash,snyc)

Sigue la forma : directorioacompartir maquinasconlasquecompartir(opcionesdeexportación). Con ‘*’ indicamos que se puede acceder de cualquier ip, y si pones ‘ro’ solo se permite acceso de lectura.

Utilizamos los fichero /etc/hosts.allow/etc/hosts.deny para configurar acceso y seguridad :

/etc/hosts.deny
portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL

Para que tengan efectos los cambios : # exportfs -ra , y tenemos el servidor NFS funcionando

Ahora toca conectarse a esa máquina, para ello montamos en nuestro equipo el recurso compartido en un direcotorio local :

Podemos ver que contenido comparte una máquina : # showmount -e IPSERVIDOR

Usamos el comando mount para acceder:

# mount IPServidorNFS:/DirectorioCompartido PuntodeMontaje

# mount 192.168.1.59:/var/backup /mnt/temporal_nfs

Para mantener este recurso cuando se reinicie la máquina hay que añadir línea al fichero /etc/fstab :

192.168.1.59:/copias /home/copias  nfs rw,hard,intr 0 0

Compartir:
  • BarraPunto
  • del.icio.us
  • Facebook
  • Digg
  • Bitacoras.com
  • Twitter
  • Meneame
  • email

Ejecución de un comando en segundo plano o abandonando la shell

Si necesitamos que un proceso se ejecute en segundo plano en nuestra shell activa o para evitar que se interrumpa si salimos de la shell (por ejemplo cuando estamos conectado con Putty al servidor y se desconecta el terminal)

# nohup  proceso  &

nohup : mantiene activo el proceso o el script que hemos iniciado aunque cierres la sesión de shell
& : hace que el proceso se ejecute en segundo plano hasta que termine

Para retornar al programa o proceso utilizamos:  ‘fg’‘exit’

La salida del programa que lanzamos con ‘nohup’, que normalmente se muestra en la terminal, se guarda en un fichero ‘nohup.out’ que se guarda en la ruta desde donde hemos lanzado nohup.

Compartir:
  • BarraPunto
  • del.icio.us
  • Facebook
  • Digg
  • Bitacoras.com
  • Twitter
  • Meneame
  • email

Limitar uso de CPU por aplicación o proceso en Debian, Ubuntu

A veces necesitamos una solución para poder limitar el uso de CPU que hace una aplicación o proceso en nuestro sistema Linux. Hay aplicaciones devoradoras de tiempo de proceso. Aunque tenemos la posibilidad de configurar /etc/security/limits.conf para indicar ‘tiempo’ de uso de CPU, si queremos indicar valores en porcentajes, tenemos la utilidad ‘cpulimits’. Para instalarlo en sistemas Debian, Ubuntu:

Tenemos el programa en http://cpulimit.sourceforge.net

# tar zxf cpulimit-xxx.tar.gz
# cd cpulimit-xxx
# make

Con esto tenemos la aplicación cpulimit, que podemos copiar a /usr/bin

Algunos ejemplo de uso; por ejemplo para limitar por aplicación y que no utilice más del 60% de CPU:

# cpulimit -e  firefox  -l 60

Si queremos indicar el proceso :

# cpulimit -p 1420 -l 30

Podemos buscar el PID de la aplicación :

# ps aux | grep firefox

Compartir:
  • BarraPunto
  • del.icio.us
  • Facebook
  • Digg
  • Bitacoras.com
  • Twitter
  • Meneame
  • email

Desactivar cuenta usuario Linux

A veces necesitamos desactivar una cuenta de usuario en un servidor Linux, para que no se apueda acceder con ese usuario temporalmente. Hablamos de desactivar la cuenta, no de borrar usando el comando ‘userdel‘, que en ese caso elimina la cuenta del sistema, borrando del archivo :’/etc/passwd’  la configuración del usuario, y la contraseña cifrada en el archivo ‘/etc/shadow’. Además de eliminar los datos del usuario en : ‘/home/usuario’

Para desactivar de manera temporal un usuario en un sistema GNU/Linux, podemos usar el comando :

# passwd -l usuario

Que lo que hace es bloquear la cuenta que indicamos, por medio de poner el signo (!) delante de la contraseña cifrada, e impedir acceso con esa cuenta al sistema. Podemos también hacer lo mismo para bloquear un usuario,  editando manualmente el archivo : ‘/etc/shadow’ , donde localizamos el nombre de usuario y en el segundo campo de datos, que es la contraseña cifrada insertamos el signo ‘*’. Con esto el usuario no puede tener acceso en el sistema

Para activar la cuenta de usuario que hemos bloqueado con el comando anterior usamos:

# passwd -u  usuario

O en sus caso, eliminar el signo ‘*’ del fichero ‘/etc/shadow’ si lo editamos manualmente para bloquear al usuario o cuenta.

Compartir:
  • BarraPunto
  • del.icio.us
  • Facebook
  • Digg
  • Bitacoras.com
  • Twitter
  • Meneame
  • email

Como saber que versión de Ubuntu, RedHat o Linux tenemos instalado

A veces suele pasar, no sabemos que versión de Sistema Operativo instalamos en su momento, o tienes que acceder a un server para ayudar :-) En cualquier caso, para saber que versión tenemos de Ubuntu o Debian instalado en el server:

# lsb_release -a

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 7.04
Release:        7.04
Codename:       feisty

En caso de tener una Red Hat o CentOS :

# cat /etc/redhat-release
Red Hat Enterprise Linux AS release 4 (Nahant Update 5)

O también consultando en el siguiente fichero, es válido para Linux en general:

#cat /etc/issue
Red Hat Enterprise Linux AS release 4 (Nahant Update 5)
Kernel \r on an \m

Compartir:
  • BarraPunto
  • del.icio.us
  • Facebook
  • Digg
  • Bitacoras.com
  • Twitter
  • Meneame
  • email

Mini-sopa de elementos [HTML]

A veces necesitamos hacer una página web con un pequeño editor para colgar algo de urgencia o para hacer una prueba. Pues rápido.. , una pequeña chuleta con lo más importante para crear esa mini-página.

La estructura básica de una página en HTML (con el editor, después guardamos con extensión ‘.html’ :

<html>
<head><title>Web Ejemplo</title></head>

<body>
Aquí ponemos el contenido usando las etiquetas que resumo después para organizar contenidos
</body>

</hmtl>

Y una mini chuleta con las etiquetas más básicas para formatear el texto, títulos, poner enlaces a otra web,imágenes…:

  • <p></p> : divide los textos en párrafos
  • <br> : cambiar a otra línea (como retorno de carro)
  • <h1></h1>,<h2></h2>,,<h5> : cabeceras o títulos de sección, a número más pequeño sección y tipografía más pequeña.
  • <code></code>, <pre></pre> : usado para indicar código de ejemplo o reflejar ‘tal cua’l lo que escribimos en el navegador, o indicar un comando de ejemplo, etc.
  • <q></q> quote , añade comillas
  • <blockquote></blockquote> : interesante par añadir citas dentro de un párrafo
  • <hr> para dibujar una línea horizontal y dividir secciones
  • <b></b>,<strong></strong> Ponemos en negrita o destacada las palabras
  • <ul></ul>, <ol></ol> para crear listas ul: no ordenadas, y ol, las crea ordenadas en orden ascendente por defecto. Cada elemento lo ponemos con <li></li>
  • <a href=”url”>Enlace</a> : básica para enlazar a otra web o página
  • <img src=”imagen.gif”>

** para acentos recordar que hay que poner : á -&aacute;  é-&eacute;  í-&iacute;  ó-&oacute;  ú-&uacute; en su lugar. Por ejemplo para que se vea bien en navegador ‘página’, se pone en la codificación html : p&aacute;gina.

Con lo anterior y un simple editor se puede sobrevivir para realizar un archivo html de urgencia :-)

Compartir:
  • BarraPunto
  • del.icio.us
  • Facebook
  • Digg
  • Bitacoras.com
  • Twitter
  • Meneame
  • email

Acceder por SSH y SCP a servidores con clave pública y privada

Poder acceder a nuestros servidores utilizando el par de claves pública/privada no es solo útil pra no tener que estar introduciendo la contraseña cada vez que accedemos, sino por que a lo mejor necesitamos ejecutar un script de shell que tiene que mover datos o ficheros entre servidores. Vamos a ver como hacerlo.

Crear las claves pública y privada

Lo hacemos desde el directorio $HOME del usuario del servidor

# ssh-keygen  -b  4096  -t  rsa

Se genera entonces las dos claves con el sistema RSA en el directorio oculto .ssh : $HOME/.ssh/id_rsa , $HOME/.ssh/id_rsa.pub

Copiamos la clave pública al servidor o host

Y esa clave la almacenamos en el fichero ‘authorized_keys, dentro de .ssh (los permisos tienen que ser 600 , es decir #chmod 600 .ssh/authorized_keys) Comprobar “muy importante”, que el direcorio oculto .ssh del directorio $HOME del usuario tenga los permisos a 700 (# chmod 700 $HOME/usuario/.ssh )

# scp .ssh/id_rsa.pub  ip_servidor:.ssh/clave_new
# ssh ip_servidor
# cd .ssh/
# cat clave_new >> authorized_keys
# rm clave_new

La primera vez que se accede a un servidor se guarda su host_key en el fichero $HOME/.ssh/know_hosts.
Entonces ya podemos utilizar ssh y scp con ese servidor sin tener que proporcionar la clave en cada conexión. Esto lo tenemos que hacer con cada servidor, y sirve a la par también de forma recíproca.

Si queremos hacer lo mismo con un cliente Windows y estamos usando Putty para acceder vía ssh, en la web de Putyy tenemos la aplicación Puttygen , para generar el par de claves pública/privada. Hacemos lo mismo que lo anterior, añadir la clave pública a ‘authorized_keys’ del servidor. Pero copiamos la que viene indicada como : ‘ Public Key for pasting into openSSH authorized_keys file ‘ , no la que hemos guardado con el botón. Ver imagen.

putty_keygen

Compartir:
  • BarraPunto
  • del.icio.us
  • Facebook
  • Digg
  • Bitacoras.com
  • Twitter
  • Meneame
  • email

Tareas automatizadas con cron en Linux

Si necesitamos que un script o un comando o tarea se ejecute regularmente, usamos el planificador estándar de Linux ‘cron’ . Si queremos que algo susceda todos los días, o los sábados de cada mes a una hora eterminada, una tarea cron lo puede hacer por nosotros :-)

El ‘demonio cron’ comprueba cada minuto si hay que hacer algo o si ha cambiado alguna tarea cron. Para añadir tareas al cron o ver las que contiene, se edita el fichero /etc/crontab [ o con el comando 'crontab -l', nos da la lista de tareas cron. Para editar 'crontab -e' (ojo! editamos las tareas del usuario con el que estamos logeado) ]

Cada línea del archivo crontab contiene la especificación del día/hora y el comando o script a ejecutar:

minuto   hora   día-del-mes   mes   día-de-la-semana   comando

  • minutos : valor entre 0 y 59
  • hora : valor entre 0 y 23
  • día-del-mes : 1 y 31
  • mes : entre 1 y 12
  • día-de-la-semana: entre 0 y 7 (0 y 7 es domingo)
  • un (*) significa cualquier valor
  • Dos valores separados por guión indica un rango. Por ejemplo 1-3 en campo mes, indica de Enero Marzo)
  • Para indicar más de un valor, separar por comas
  • el modificador (/) indica con su valor las unidades que se incrementa entre valores. Un valor en mes */4 , indica cada cuatro meses.

Algunos ejemplos :

5  *  *  *  * rm /tmp/*.gif # elimina cada 5 minutos los archivos GIF

0  7  1   *   *  /home/usuario/copiadeseguridad.sh # ejecutar todos los primeros de mes un script (copia de seguridad) a las 7:00 de la mañana :

Compartir:
  • BarraPunto
  • del.icio.us
  • Facebook
  • Digg
  • Bitacoras.com
  • Twitter
  • Meneame
  • email

Comprobar si un servidor está en Open Relay enviando correo anónimo mediante telnet

¿Quieres saber como enviar correo vía telnet, desde la consola Linux o Windows, conectando con un servidor de SMTP en internet :-) ?

Establecemos una conexión al servidor al puerto 25
$ telnet ip.servidor 25

Si el servidor acepta la petición de conexión, te aparecerá un mensaje parecido a este :

220 aaa.bbb.ccc ESMTP Sendmail 8.7.6/8.7.3; Tue, 3 Feb 1998 16:45:30+0100

Y ahora la forma de crear un mensaje para enviar :
Primero saludar :

HELO una.ip.cualquiera (o dominio)

El servidor puede contestar algo como esto:

250 una.ip.cualquiera Hello una.ip.cualquiera [xxx.xxx.xxx], pleased to meet you

Ahora los siguientes comando , pulsando ‘Enter’ al final de cada línea:

MAIL FROM:
RCPT TO:
DATA
Subject: El tema del correo

A continuación el texto del mensaje.Después del “subject”, hay que hacer dos veces ‘enter’. Los los mensajes deben terminar con un punto en una línea sola.
.
QUIT

Y ya salimos de la conexión del servidor. Y podemos comprobar si hemos recibido el correo, y ver la cabecera de dicho correo nos muestra si informa de la ip de nuestra máquina o no.

Esto es muy útil también para comprobar si un servidor está en OPEN RELAY, cosa no recomendable pues puede ser utilizada como máquina para enviar spam.

+ Información :
http://es.wikipedia.org/wiki/Open_Relay

Compartir:
  • BarraPunto
  • del.icio.us
  • Facebook
  • Digg
  • Bitacoras.com
  • Twitter
  • Meneame
  • email

Como enviar correo desde consola Linux usando otro servidor SMTP

Hay una solución interesante para hacer esto. Utilizar sendEmail, que es un pequeño cliente de correo por SMTP y por eso podemos configurar o indicarle que servidor queremos que se encargue de enviar o dirigir nuestros email.

La web del proyecto : http://caspian.dotconf.net/menu/Software/SendEmail/

Se encuentra disponible para Linux, BSD, OS X, Windows 98, Windows NT, Windows 2000, & Windows XP, y es muy útil para incluirlo en un script de bash, si necesitamos enviar correo desde nuestro servidor. Es un script en Perl y por eso no necesitamos una instalación compilando. Solo descomprime el archivo y a utilizar. Permite usar servidores SMTP con autentificación.

Si queremos ver la ayuda : $ ./sendEmail –help

Para enviar un mensaje sencillo desde consola :
$ sendEmail -f remite@gmail.com -t fulanito@midominio.net -s servidor_smtp -u “Asunto email” -m “Cuerpo mensaje , saludos! ” -v

Si queremos enviar fichero adjunto :
$ sendEmail -f remite@gmail.com -t fulanito@midominio.net -s servidor_smtp -u “Asunto email” -m “Cuerpo mensaje , saludos! ” -a fichero.zip -v

Es una solución sencilla para servidores Linux en los que no queremos instalar y configurar
un MTA de correo como Sendmail o Exim, etc.

Compartir:
  • BarraPunto
  • del.icio.us
  • Facebook
  • Digg
  • Bitacoras.com
  • Twitter
  • Meneame
  • email

WordPress Themes