lunes, 29 de septiembre de 2014

Configurar IP Linux

Para configurar una segunda interfaz de red en linux lo primero que haremos es acceder al directorio donde están todos los scripts de configuración de las interfaces de red. En él tendremos los archivos de configuración de las interfaces que tenemos disponibles (dependiendo del tipo de tarjeta que tengamos podrán ser ifcfg-eth0, ifcfg-em0,..etc. ).

[sgi@core bin]$ cd /etc/sysconfig/network-scripts/

Suponiendo que tenemos el archivo de configuración ifcfg-eth0 para nuestra interfaz actual, deberemos generar el archivo ifcfg-eth1 para generar una segunda interfaz con la siguiente configuración (se deberán modificar los datos en función de la IP, MAC,...etc.):

[root@core network-scripts]# vi ifcfg-eth1

DEVICE=eth1
BROADCAST=10.0.10.127
HWADDR=00:30:05:9E:31:C8
IPADDR=10.0.10.91
IPV6ADDR=
IPV6PREFIX=
NETMASK=255.255.255.128
NETWORK=10.0.10.0
ONBOOT=yes

Tras reiniciar nuestro sistema tendremos disponible la nueva interfaz de red.

miércoles, 19 de marzo de 2014

Renombrar ^M en linux

Dejo este comando que sirve para renombrar el caracter ^M en los archivos editados en windows y copiados a linux. Basta con editar el fichero en linux con el vi, poner dos puntos y poner el carácter ^M con la secuencia Crt+V Crt+M.

[root@procesos]# vi actualizacionCalificaciones.sh
:%s/^M//g


fork: Resource temporarily unavailable

Todos los usuarios en linux tienen asignados un número de procesos máximo que puede tener en ejecución de manera simultánea. Cuando llegamos al máximo de procesos lanzados, el sistema nos lanzará un error del tipo fork: retry: Resource temporarily unavailable o fork: Resource temporarily unavailable.
Podemos comprobar el número de procesos simultáneos que puede tener un usuario, lanzando el comando ulimit -u, dado un resultado como este:


[user@sr ~]$ ulimit -u
1024

Cuando el usuario user tenga 1025 procesos simultáneos lanzados y quiera lanzar uno más, dará un error fork: Resource temporarily.
Para aumentar esto, tendremos que editar el fichero /etc/security/limits.conf e incluir al final las siguientes lineas:

user    hard  nproc    16384
user    soft  nproc    16384

Donde 16384 es el número de procesos simultáneos  máximo. Tras reiniciar la máquina, loggarnos con el usuario user y lanzar el comando ulimit -u este nos dará el siguiente resultado:

[user@sr ~]$ ulimit -u
16384
Para hacer esto, hay otra manera más rupestre, que es lanzar lo siguiente:
[root@server ~]# ulimit -u 16384
Al realizarlo, el número máximo de procesos simultáneos se modifica a 16384 pero solo para la sesión en curso, si queremos que esto sea persistente para un usuario podríamos meter el comando ulimit -u 16384 en el .bashrc de cada usuario pero esto complica mucho la manera estándar de hacerlo y confunde la administración del servidor.

Además pongo un comando que os indicará para todos los usuarios del sistema los procesos activos que tienen:

ps -A -o pid,thcount,user,comm |tail -n +2|awk '{print $3" " $2}' | awk ' {arr[$1]+=$2} END {for (i in arr) {print  arr[i],i}}'

La salida será similar a esta:

[root@sr bin]# ps -A -o pid,thcount,user,comm |tail -n +2|awk '{print $3" " $2}' | awk ' {arr[$1]+=$2} END {for (i in arr) {print  arr[i],i}}'
17 gdm
1 ntp
1 rpc
1 dbus
3 68
3 rtkit
2 postfix
1 rpcuser
664 root

Donde el primer campo corresponde a los procesos activos y el segundo al nombre del usuario.

martes, 11 de marzo de 2014

Descriptores de ficheros Linux

Cuando trabajamos con servidores de aplicaciones como apache o bases de datos como Oracle necesitamos aumentar el número de descriptores de fichero de nuestros sistemas. Por defecto en Red Hat tenemos 1024 para cada usuario del sistema y lo recomendado por Oracle para sus bases de datos es 65536. Para comprobar los descriptores de ficheros que tenemos disponibles para un usuario basta con lanzar lo siguiente:

[root@server ~]# ulimit -n
1024

Esto nos indica que para el usuario root tenemos 1024 descriptores de fichero.
Para aumentarlo hasta 65536 basta con comprobar que en el fichero /proc/sys/fs/file-max tenemos configurado como mínimo el número 65536 que hace referencia a los descriptores máximos posibles del sistema.

Una vez verificado esto tenemos que modificar el fichero /etc/security/limits.conf, donde designaremos la cantidad de descriptores de ficheros que puede tener usar cada usuario. Por defecto ese fichero no contiene nada, yo por defecto, teniendo en cuenta que esto es para el usuario root lo completo con lo siguiente (tendremos que cambiar el usuario dependiendo de nuestras necesidades).

*      hard  nofile   65536
*      soft  nofile   65536
root   hard  nofile   65536
root   soft  nofile   65536


Para hacer esto, hay otra manera más rupestre, que es lanzar lo siguiente:
[root@server ~]# ulimit -n 65536
Al realizarlo, el número máximo de descriptores se modifica a 65536 pero solo para la sesión en curso, si queremos que esto sea persistente para un usuario podríamos meter el comando ulimit -n 65536 en el .bashrc de cada usuario pero esto complica mucho la manera estándar de hacerlo y confunde la administración del servidor.

viernes, 7 de febrero de 2014

/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

Cuando al intentar arrancar una aplicación nos de este error significa que tenemos un sistema de 64 bits sin librerías de 32 bits. Para comprobarlo podemos lanzar el comando uname -m y la salida será x86_64.
Solo tenemos que instalar el paquete para 32 bits que contiene esa librería y listo:

[root@server]# yum install glibc.i686