Comandos Linux esenciales

Algunos comandos esenciales para la administración de servidores Linux.  Tomado de http://www.crkdown.com
tail -f archivo Permite ver en tiempo real como se genera un log. También puedes filtrarlo con grep así: tail -f archivo |grep mibusqueda df -h Muestra el tamaño de discos y particiones en Kb, Megas o Gigas haciendolo más fácil de leer rsync -vrPtz -e ssh host:/carpetaremota/* /carpetalocal/ Sincroniza una carpeta entre dos servidores pero lo hace con resume, ideal para cuando hay problemas de networking whois dominio.com Muestra un poco de información de algún dominio como fechas, dns etc dig MX dominio.com Puedes encontrar aspectos de las zonas de un dominio cualquiera. Por ejemplo puedes usar MX, A, TXT etc [~]# dig mx ejemplo.com ;; QUESTION SECTION: ;industrialm.com.               IN      MX ;; ANSWER SECTION: industrialm.com.        9781    IN      MX      0 aspmx.l.google.com. ;; Query time: 0 msec ;; SERVER: 69.64.44.50#53(69.64.44.50) ;; WHEN: Sat Jan  9 19:06:18 2010 ;; MSG SIZE  rcvd: 64 chmod -R 755 carpeta Poner permisos recursivamente a un directorio. Igual puedes usar cualquier flag para permisos de escritura, lectura o ejecución a grupos o usuarios. top Mirar el consumo de recursos en tiempo real. El top es bueno aunque puedes presionar la letra u para poner los procesos de un usuario o presionando F para ver todas las demás opciones de filtrado cp -fr carpeta lugar_de_destino Copiado recursivo sin preguntas de una carpeta a otro lugar. Lógicamente como no pregunta puede reemplazar tus archivos si estos ya están en el lugar de destino watch mysqladmin proc Muestra las conexiones actuales de Mysql en tiempo real su – postgres luego psql y luego select * from pg_stat_activity; Procesos en tiempo real en Postgres muy util. Debes tener activada la opción de logueo en el archivo postgresql.conf comunmente presente en /var/lib/pgsql/data mysqldump -u usuario -pclave basededatos > basededatos.sql Un dump o backup de la base de datos Mysql mysql -u usuario -pclave basededatos < basededatos.sql Restaurar un backup de mysql ls -la Ver un listado detallado de archivos, carpetas y permisos. Puedes filtrarlo con |grep filtro du -sch * Ver un listado de archivos, carpetas y sus tamaños. Muy util root@host [/home/user]# du -sch * 0       access-logs 8.0K    cpmove.psql 40K     etc 59M     mail 8.0K    public_ftp 45M     public_html 4.0M    tmp 0       www 108M    total ps -aux |grep filtro Listado de todos los procesos del sistema que corren en ese momento. Como pueden ser muchos la aplicación de un filtro es ideal vim o vi Es el mejor editor de texto en consola, muy poderoso vim archivo Pulsar / y luego escribir el término de búsqueda para encontrar lo que sea Pulsar la tecla insert para insertar un texto. Delete para borrar. Para salir de estos dos pulsar escape Escribiendo :w escribes el archivo Escribiendo :wq escribes y sales del archivo Si quieres borrar una línea das dos veces sobre la tecla D. Si quieres deshacer pulsas escape y luego la tecla U cuantas veces quieras devolverte perl -pi.bak -e “s/[terminoacambiar]/[nuevotermino]/g” *.txt Find and Replace recursivo en archivos del shell. Jeje debes ser muy cuidadoso. En el ejemplo se busca un termino y se reemplaza por otro escribiendo el archivo al vuelo. Se busca en archivos terminados en txt pero puedes usar cualquier extensión e incluso con *. Debes tener cuidado con archivos binarios hdparm -t /dev/hda Hacer un test a la velocidad de escritura de un disco. Es bueno cuando sospechas que esta sacando la mano y debes hacer copias ASAP yum install o yum remove Instalar algunas aplicaciones o servicios sin despelucarte. Ejemplo yum install postgres Lógico depende de la distribución y los servidores de repositorios de tu yum for file in * do gzip -r $file done for file in * do gunzip -r $file done Para descomprimir y comprimir en un bucle recursivamente desde shell tar tfz archivo.tar.gz |grep “termino.txt” Busca un archivo llamado “termino.txt” dentro de un tar.gz para evitar descomprimir todo gunzip -c archivo.tar.gz | tar xvf – carpeta/termino.txt Extrae un archivo llamado termino.txt sin necesidad de descomprimir todo el tar.gz sar -B 1 1000 Verificar el consumo de escritura lectura del disco en tiempo real. Ideal para verificar cuando se tienen problemas de performance por i/o degradation netstat -anp |grep ‘tcp\|udp’ | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -n Detectar un posible DDos, aunque si es distribuído no sirve de mucho Killall comando Matar masivamente un proceso que puede estar generando problemas, por ejemplo killall php o por ejemplo killall postmaster  Logicamente podrías matar el proceso fuente y hacer caer el servicio. find . -type f -size +100000k -exec ls -lh {} \; | awk ‘{ print $9 “: ” $5 }’ Busca archivos grades recursivamente. Este busca archivos de más de 100 mil k passwd Cambia claves sobre todo la de root :) Por ultimo hay herramientas muy interesantes para conocer aspectos más puntuales como el uso de disco pero sólo funcionan en Kernels más recientes. pidstat -d 2 Permite conocer en tiempo real el proceso puntual PID que esta escribiendo o leyendo en ese momento. Muy útil ya que a veces es muy dificil saber que lo causa

Leave a comment