Category: Sistemas

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

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.

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

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

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

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 :

WordPress Themes