Comandos Linux

Description

Comandos Linux
Rubén Molina Galache
Note by Rubén Molina Galache, updated more than 1 year ago
Rubén Molina Galache
Created by Rubén Molina Galache over 7 years ago
39
0

Resource summary

Page 1

1. COMPROBAR EL ESPACIO LIBRE DISPONIBLE Para saber el espacio libre del que disponemos en todos los sistemas de ficheros de nuestra máquina ejecutaremos el siguiente comando: $ df -h S.ficheros Tamaño Usados Disp Uso% Montado en /dev/sdb5 3,9G 842M 3,0G 22% / udev 2,0G 4,0K 2,0G 1% /dev tmpfs 791M 956K 790M 1% /run none 5,0M 0 5,0M 0% /run/lock none 2,0G 72M 1,9G 4% /run/shm /dev/sdb1 118M 91M 28M 77% /boot /dev/sdb10 31G 6,8G 24G 23% /home /dev/sdb6 23G 12G 12G 52% /usr /dev/sdb7 9,6G 1,5G 8,1G 16% /var /dev/sdb8 2,9G 62M 2,8G 3% /tmp /dev/sdb11 102G 11G 91G 11% /vmware /dev/sda1 230G 93G 125G 43% /var/datos Para un directorio concreto: $ df -h /home S.ficheros Tamaño Usados Disp Uso% Montado en /dev/sdb10 31G 6,8G 24G 23% /home Para mostrar los sistemas de ficheros por orden de ocupación y saber así cuales son los que están más llenos: $ df -h | awk '{print $5 " " $6}' | sort -n | tail -5 22% / 23% /home 43% /var/datos 52% /usr 77% /boot 2. CALCULAR EL TAMAÑO OCUPADO POR UN DIRECTORIO El parámetro -h indica que se muestre el tamaño del modo más amigable posible, ya sea en Kilobytes, Megabytes, Gigabytes o Terabytes. # du -h -s /var/log 9,6M /var/log 3. ELIMINAR VS VACIAR FICHEROS Para eliminar ficheros con el fin de liberar espacio emplearemos habitualmente el comando rm. Sin embargo, es muy habitual que no nos podamos permitir eliminar un fichero por estar siendo utilizado en ese momento por una aplicación, lo cual es de lo más habitual con ficheros de log en sistemas en producción que no pueden parar. Eliminarlos directamente puede tener consecuencias nefastas, como el bloqueo de la propia aplicación que los está utilizando, o más leves pero también indeseables, como que se interrumpa el volcado de datos a estos ficheros y dejen de ser útiles.Para no alterar el funcionamiento de una aplicación y conseguir nuestro objetivo de liberar espacio vaciaremos los ficheros en lugar de eliminarlos: # >/var/log/syslog Tras esto el fichero quedará con un tamaño de 0 bytes.Si necesitamos vaciar múltiples ficheros a la vez con un único comando: # for I in `ls "/var/log/*.log"`;do >"$I";done 4. CONTAR EL NÚMERO DE FICHEROS EN UN DIRECTORIO # ls -l /var/log | wc -l 80 5. OBTENER LOS FICHEROS QUE MÁS PESAN DE UN FILESYSTEM Este comando es útil cuando queremos liberar espacio, pues muestra los ficheros que tienen un mayor tamaño dentro de un directorio incluyendo sus subdirectorios, siendo el último de la lista el más pesado. # du -k /var/log | sort -n | tail -5 516 /var/log/apache2 5256 /var/log/exim4 12884 /var/log/installer/cdebconf 13504 /var/log/installer 21456 /var/log El tamaño de los ficheros se debe mostrar Kilobytes (parámetro -k). Es necesario utilizar este parámetro en lugar de -h porque si no el comando sort -n no ordenaría la lista del modo que nosotros esperamos.Es importante limitar el número de ficheros que queremos mostrar con tail -X, siendo X dicho número, pues si el directorio en cuestión tiene cientos o miles de ficheros, la salida del comando se puede demorar demasiado por la sobrecarga de entrada/salida a la que someteremos a nuestro terminal, sobre todo si nos estamos conectando de forma remota via telnet o ssh a un servidor y la conexión no es muy rápida. 6. LISTAR LOS FICHEROS MÁS PESADOS DE UN DIRECTORIO Similar al anterior, pero en este caso sólo se muestran los fichero del propio directorio, sin incluir subdirectorios. # ls -lSr | tail -5 -rw-r----- 1 syslog adm 118616 sep 29 22:05 auth.log -rw-r--r-- 1 root root 149012 sep 9 17:12 udev -rw-r--r-- 1 root root 160128 ago 4 19:27 faillog -rw-r----- 1 syslog adm 499400 sep 28 06:25 auth.log.1 -rw-rw-r-- 1 root utmp 1461168 sep 29 21:54 lastlog Si elimináramos el parámetro -r obtendríamos los ficheros más ligeros en lugar de los de mayor tamaño. 7. CALCULAR EL ESPACIO OCUPADO POR CIERTOS FICHEROS Por ejemplo, si queremos obtener el espacio total ocupado sólo por los ficheros con extensión .log en un directorio, usaremos el siguiente comando: # du -ch /var/log/*.log | grep total 468K total 8. ENCONTRAR FICHEROS DE GRAN TAMAÑO FIJANDO LÍMITES Por ejemplo, aquellos que tengan un tamaño de más de 100 MB, o aquellos que ocupen entre 100 MB y 1 GB: $ find . -type f -size +100M -ls $ find . -type f -size +100M -size -1G -ls 9. LISTAR LOS FICHEROS MODIFICADOS MÁS RECIENTEMENTE # ls -larth /var/log | tail -5 drwxr-xr-x 20 root root 4,2K sep 30 12:27 . -rw-rw-r-- 1 root utmp 11K sep 30 13:03 wtmp -rw-r----- 1 syslog adm 13K sep 30 13:03 syslog -rw-r----- 1 syslog adm 13K sep 30 13:03 kern.log -rw-r----- 1 syslog adm 1000 sep 30 13:03 auth.log El parámetro -a indica que también se muestren los ficheros ocultos. 10. ENCONTRAR FICHEROS ANTIGUOS (I) Muchas veces necesitamos saber los ficheros modificados dentro de un intervalo de tiempo dado. En el siguiente ejemplo, localizamos los ficheros que tengan una antigüedad de más de 90 días con el fin de encontrar ficheros antiguos que ya no sirvan y puedan eliminarse para liberar espacio. # find /var/log -mtime +90 -ls # find /var/log -mtime +90 -ls -exec rm {} \; El primer comando sólo localiza los ficheros, el segundo además los elimina. 11. ENCONTRAR FICHEROS ANTIGUOS (II) Igual que el anterior, pero en este caso también se consideran los ficheros que hayan sido accedidos dentro del intervalo de tiempo especificado, sin que hayan tenido por qué ser modificados. # find /var/log -atime +90 -ls 12. ENCONTRAR FICHEROS VACÍOS El siguiente comando nos permite encontrar en el directorio actual ficheros con un tamaño de 0 bytes, es decir, vacíos. Esto es útil ante situaciones anómalas en las que se generan este tipo de ficheros, por ejemplo tras llenarse un filesystem o por el comportamiento anómalo de una aplicación. Ante estos escenarios se hace necesaria una limpieza, pues aunque estos ficheros no ocupen espacio en disco sí que pueden llegar a consumir todos los inodos disponibles de un sistema de ficheros si se crean de forma masiva e impedir así que se puedan crear nuevos ficheros. $ find . -type f -size 0b -ls O también: $ find . -type f -empty -ls Para saber el número de inodos libres del que disponen los distintos sistemas de ficheros de una máquina usaremos el comando df -i. 13. EMPAQUETAR Y COMPRIMIR EL CONTENIDO DE UN DIRECTORIO A veces es útil empaquetar todos los ficheros de registro o de log de un directorio en un único fichero comprimido para conservar el estado de dicho directorio en un punto temporal determinado y poder eliminar o vaciar todos esos ficheros con el fin de liberar espacio. # tar -zcvf var_log.`date +%Y%m%d`.tar.gz /var/log/*.log El comando anterior comprime todos los ficheros de log en un único fichero comprimido con extensión tar.gz y con la fecha de hoy para que sea más fácil localizar los distintos puntos temporales en el futuro. Veamos cómo conseguir ahorrar espacio, pasando en este ejemplo de 468 MB a 35 MB: # du -ch /var/log/*.log | grep total 468M total # ls -lh var_log.20140930.tar.gz -rw-r--r-- 1 root root 35M sep 30 13:36 var_log.20140930.tar.gz Tras esto podemos proceder a vaciar todos los ficheros de log como en el punto 3. 14. ENCONTRAR FICHEROS EN LA PAPELERA DE RECICLAJE Normalmente cuando enviamos algún fichero a la papelera de reciclaje éste simplemente se mueve a un directorio oculto de nuestra carpeta personal como por ejemplo ~/.local/share/Trash en Ubuntu. Sin embargo, hay aplicaciones específicas que utilizan sus propios directorios para almacenar la basura con un nombre que surge de la combinación de la palabra trash en mayúsculas o minúsculas con alguna secuencia de números, como por ejemplo .Trash001, .trash-002, .Trash_0003, etc.También cuando montamos sistemas de ficheros externos procedentes de un disco duro externo o una tarjeta SD, el sistema operativo del que procede ha podido guardar ficheros en la papelera, pero el nombre de ésta puede diferir de un sistema operativo a otro y ser distinto del que utiliza nuestra distribución Linux y por tanto no reconocerla. En estos casos nos encontramos con que aunque vaciemos la papelera de reciclaje seguiremos teniendo una gran cantidad de espacio ocupado en nuestro dispositivo sin razón aparente.Pues bien, la solución pasa por buscar todos los subdirectorios *trash* que haya en nuestro sistema sin diferenciar entre mayúsculas o minúsculas y analizar su contenido para ver si podemos deshacernos de él (no siempre será basura todo lo que encontremos). El comando necesario sería el siguiente y su ejecución puede llevar mucho tiempo, por lo que quizás queramos restringirlo a un sistema de ficheros o directorio concreto: $ find / -iname "*trash*" -ls 15. ENCONTRAR FICHEROS REPETIDOS Por último, ahí va un enorme comando que nos permitirá encontrar y eliminar los ficheros duplicados que haya en un directorio para evitar redundancias innecesarias que pueden ser muy costosas en términos de espacio consumido.find -not -empty -type f -printf "%s\n" | sort -rn | uniq -d | xargs -I{} -n1 find -

Show full summary Hide full summary

Similar

FUNDAMENTOS DE REDES DE COMPUTADORAS
anhita
Test: "La computadora y sus partes"
Dayana Quiros R
Abreviaciones comunes en programación web
Diego Santos
Seguridad en la red
Diego Santos
Excel Básico-Intermedio
Diego Santos
Evolución de la Informática
Diego Santos
Introducción a la Ingeniería de Software
David Pacheco Ji
Conceptos básicos de redes
ARISAI DARIO BARRAGAN LOPEZ
La ingenieria de requerimientos
Sergio Abdiel He
TECNOLOGÍA TAREA
Denisse Alcalá P
Navegadores de Internet
M Siller