Linux ofrece innumerables comandos y utilidades que le ayudarán a realizar sus tareas de administración del sistema de forma rápida y eficaz.
Su trabajo como administrador del sistema incluye la instalación y ejecución de software, el control de acceso, la supervisión, la garantía de disponibilidad, las copias de seguridad, la restauración de copias de seguridad y, por supuesto, la extinción de incendios. 😜
En este artículo, repasamos algunos de los comandos utilizados frecuentemente por los administradores de sistemas Linux en su trabajo diario.
uname
Utilice el comando uname
con la bandera -a
para imprimir la información del sistema. Este comando le mostrará el nombre del núcleo, la versión del núcleo, la versión del núcleo, el nombre del host, el tipo de procesador y la información de su plataforma de hardware.
ubuntu@ubuntu18:~$ uname -a
Linux ubuntu18 5.3.0-1028-azure #29~18.04.1-Ubuntu SMP Fri Jun 5 14:32:34 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
Esto es lo que significa
nombre del núcleo:Linux
nombre del host: ubuntu18
versión del kernel 5.3.0-1028-azure
versión del núcleo: #29~18.04.1-Ubuntu SMP Fri Jun 5 14:32:34 UTC 2020
nombre del hardware de la máquina: x86_64
procesador: x86_64
plataforma de hardware: x86_64
sistema operativo: GNU/Linux
df
Utilice el comando df
para verificar el tamaño del sistema de archivos y el espacio disponible. Este comando utilizado por sí mismo muestra la salida en bloques de 1K
.
ubuntu@ubuntu18:~$ df
Filesystem 1K-blocks Used Available Use% Montado en
udev 437208 0 437208 0% /dev
tmpfs 91100 692 90408 1% /run
/dev/sda1 27908928952 30309264952 27908928 8% /
....
La opción -h
muestra la salida en un formato legible por humanos, es decir, en MB
y GB
.
ubuntu@ubuntu18:~$ df -h
Filesystem Size Used Avail Use% Montado en
udev 427M 0 427M 0% /dev
tmpfs 89M 692K 89M 1% /run
/dev/sda1 29G 2.3G 27G 8% /
tmpfs 445M 0 445M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 445M 0 445M 0% /sys/fs/cgroup
/dev/sda15 105M 3.6M 101M 4% /boot/efi
/dev/sdb1 3.9G 16M 3.7G 1% /mnt
tmpfs 89M 0 89M 0% /run/user/1001
Para ignorar cualquier sistema de archivos, por ejemplo, tmpfs, que es para una salida más limpia, utilice la bandera -x
ubuntu@ubuntu18:~$ df -h -x tmpfs
Filesystem Size Used Avail Use% Montado en
udev 427M 0 427M 0% /dev
/dev/sda1 29G 2.3G 27G 8% /
/dev/sda15 105M 3.6M 101M 4% /boot/efi
/dev/sdb1 3.9G 16M 3.7G 1% /mnt
Para listar sólo un tipo específico de sistema de archivos, utilice la bandera -t
. Por ejemplo, para ver sólo el sistema de archivos ext4:
ubuntu@ubuntu18:~$ df -h -t ext4
Filesystem Size Used Avail Use% Montado en
/dev/sda1 29G 2.3G 27G 8% /
/dev/sdb1 3.9G 16M 3.7G 1% /mnt
El uso de la bandera total añadirá una línea mostrando los totales generales:
ubuntu@ubuntu18:~$ df -h -t ext4 --total
Filesystem Size Used Avail Use% Montado en
/dev/sda1 29G 2.3G 27G 8% /
/dev/sdb1 3.9G 16M 3.7G 1% /mnt
<b>total 33G 2.3G 31G 8% -</b>
du
Para comprobar el uso del espacio en disco en un directorio, utilice el comando du
. Por ejemplo, para ver el uso del espacio en disco en el directorio /var/log. Utilice la bandera -h
para obtener un formato legible para el ser humano.
ubuntu@ubuntu18:~$ sudo du -h /var/log
24K /var/log/Microsoft/Azure/NetworkWatcherAgent/Logs
28K /var/log/Microsoft/Azure/NetworkWatcherAgent
32K /var/log/Microsoft/Azure
36K /var/log/Microsoft
60K /var/log/apt
4.0K /var/log/samba
177M /var/log/journal/0f4f926f583b4691af7de11025b19ff6
177M /var/log/journal
...
204M /var/log
Para ver sólo el uso total utilice únicamente la bandera -s
(resumen).
ubuntu@ubuntu18:~$ sudo du -hs /var/log
204M /var/log
libre
Utilice el comando free para ver la memoria total, utilizada y libre del sistema. Utilice la bandera -h
para un formato legible por humanos.
ubuntu@ubuntu18:~$ free -h
total usada libre compartida buff/cache disponible
Mem: 889M 272M 100M 712K 517M 443M
Swap: 0B 0B 0B
total - Memoria total instalada (memtotal swaptotal)
used - memoria utilizada
free - memoria no utilizada (memfree swapfree)
buffers - memoria utilizada por los buffers del núcleo
cache - memoria utilizada por las cachés de página
buff/cache - suma de buffers y cache
disponible - memoria estimada disponible para iniciar nuevas aplicaciones, sin swapping
ps
Utilice ps
para mostrar información de estado sobre los procesos que se ejecutan en el sistema. Para ver todos los procesos propiedad del usuario ubuntu, utilice la bandera -u
con el nombre de usuario:
ubuntu@ubuntu18:~$ ps -u ubuntu
PID TTY TIME CMD
7804 ? 00:00:00 systemd
7805 ? 00:00:00 (sd-pam)
7940 ? 00:00:00 sshd
7941 pts/0 00:00:00 bash
8111 ? 00:00:00 sshd
8112 pts/1 00:00:00 bash
13868 ? 00:00:00 sshd
13869 pts/2 00:00:00 bash
13885 pts/0 00:00:00 man
13895 pts/0 00:00:00 paginador
18111 pts/2 00:00:00 man
18121 pts/2 00:00:00 buscapersonas
18485 pts/1 00:00:00 ps
Para ver todos los procesos ejecute ps con las banderas aux:
ubuntu@ubuntu18:~$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.7 160076 7020 ? Ss Jun29 0:34 /sbin/init
root 2 0.0 0.0 0 ? S Jun29 0:00 [kthreadd]
root 3 0.0 0.0 0 ? I< Jun29 0:00 [rcu_gp]
root 4 0.0 0.0 0 0 ? I< Jun29 0:00 [rcu_par_gp]
root 6 0.0 0.0 0 ? I< Jun29 0:00 [kworker/0:0H-kb]
....
donde
Rúbrica | Significado |
PID | Número de identificación del proceso |
%CPU | Porcentaje de tiempo de CPU que está utilizando el proceso |
%MEM | Porcentaje de RAM que el proceso está utilizando |
VSZ | Memoria virtual que se está utilizando en KB |
RSS | Memoria física que el proceso está utilizando en KB |
TTY | Terminal asociada al proceso |
STAT | R – En ejecución o listo para ejecutarse, S – Durmiendo, I – En reposo, T – Detenido, Z – Zombie, D – Esperando E/S de disco, X – Muerto, W – Intercambiado, N – Proceso de baja prioridad, < - Proceso de alta prioridad |
top
Mientras que el comando ps
muestra una instantánea del estado de los procesos en cualquier momento, top muestra una lista continuamente actualizada (cada tres segundos, por defecto) de los procesos del sistema en orden de actividad de proceso.
La salida del comando top
consta de dos partes principales: El resumen del sistema en la parte superior y la tabla de procesos ordenados por actividad de la CPU.
top - 14:25:32 up 44 días, 11:37, 1 usuario, carga media: 0.00, 0.00, 0.00
Tareas: 114 total, 1 en ejecución, 59 durmiendo, 0 detenidas, 0 zombie
%Cpu(s): 0.3 us, 0.0 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 910992 total, 101208 libre, 274712 usado, 535072 buff/cache
KiB Swap: 0 total, 0 libres, 0 utilizados. 458492 Mem disponibles
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME COMMAND
50497 ubuntu 20 0 44528 3944 3368 R 0.7 0.4 0:00.15 top
1 root 20 0 160076 7020 4400 S 0.0 0.8 0:34.85 systemd
2 root 20 0 0 0 S 0.0 0.0 0:00.08 kthreadd
3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp
4 raíz 0 -20 0 0 I 0.0 0.0 0:00.00 rcu_par_gp
6 root 0 -20 0 0 I 0.0 0.0 0:00.00 kworker/0:
9 root 0 -20 0 0 I 0.0 0.0 0:00.00 mm_percpu_
Algunos de los campos del resumen del sistema son los siguientes:
up | Tiempo de actividad. Tiempo transcurrido desde el último arranque de la máquina. | ||||||||||||||||
media de carga | La media de carga se refiere al número de procesos que están esperando para ejecutarse, un valor inferior a 1,0 significa que la máquina no está ocupada. Hay 3 valores. El primero es la media de los últimos 60 segundos, el segundo es la media de los últimos 5 minutos y el tercero muestra la media de los últimos 15 minutos. | ||||||||||||||||
%Cpu(s)
| Esta fila describe las actividades de la CPU.
|
Los campos de la tabla de procesos son los siguientes
PID | Número de identificación del proceso |
USUARIO | Propietario del proceso |
PR | Prioridad |
NI | Valor agradable |
VIRT | Memoria virtual utilizada por el proceso (KB) |
RES | Memoria física utilizada por el proceso |
SHR | Memoria compartida utilizada por el proceso |
S | Estado del proceso. R – En ejecución, S – durmiendo, I – inactivo, T – detenido, Z – zombi, D – esperando E/S de disco, W- intercambiado, X – muerto |
%CPU | Tiempo de CPU que el proceso está utilizando en porcentaje |
%MEM | La memoria física que el proceso está utilizando |
TIEMPO[ ] | Tiempo total de CPU utilizado por el proceso |
COMANDO | Nombre del programa |
Mientras top
se está ejecutando, puede emitir una serie de comandos. Pulse h
o ?
para ver los comandos que se pueden ejecutar mientras se ejecuta top. Pulse k
para matar un proceso. Pulse q
para salir de top.
dig
dig
es una gran herramienta para consultas DNS. Se utiliza de la siguiente manera :
dig <servidor DNS> <dominio> <tipo de consulta>
donde
es el nombre del servidor DNS que desea consultar es el nombre del dominio que desea consultar es el nombre del registro que desea conocer – A, MX, NS SOA, etc.
Para suprimir la salida verbosa, utilice la bandera corta.
Para ver el registro A de google.com utilice
ubuntu@ubuntu18:~$ dig google.com short
172.217.164.174
Para ver los registros MX de google.com utilice:
ubuntu@ubuntu18:~$ dig google.com MX short
50 alt4.aspmx.l.google.com.
10 aspmx.l.google.com.
20 alt1.aspmx.l.google.com.
40 alt3.aspmx.l.google.com.
30 alt2.aspmx.l.google.com.
Si necesita consultar registros DNS en Internet, puede utilizar la herramienta de búsqueda DNS.
who y w
who
muestra los usuarios que están conectados.
ubuntu@ubuntu18:~$ who
ubuntu pts/0 2020-08-14 17:28 (183.83.211.129)
ubuntu pts/1 2020-08-14 17:58 (183.83.211.129)
w
muestra los usuarios actualmente conectados y sus procesos. La cabecera muestra la hora actual, el tiempo de actividad del sistema, el número de usuarios conectados y los promedios de carga del sistema.
ubuntu@ubuntu18:~$ w
18:07:33 up 46 días, 15:19, 2 usuarios, promedio de carga: 0.00, 0.00, 0.00
USUARIO TTY DE LOGIN@ IDLE JCPU PCPU QUÉ
ubuntu pts/0 183.83.211.129 17:28 2.00s 0.10s 0.00s w
ubuntu pts/1 183.83.211.129 17:58 9:07 0.05s 0.01s vi
La siguiente parte muestra los nombres de usuario, el terminal y la IP remota desde la que están conectados, el tiempo de conexión, el tiempo de inactividad, JCPU, PCPU y el programa que están ejecutando. JCPU es el tiempo utilizado por todos los procesos conectados al tty mientras que PCPU es el tiempo utilizado por el proceso actual.
tar
Con GNU tar puede archivar varios ficheros en uno solo.
Como ejemplo cree un directorio myfiles y tres archivos a.txt, b.txt, c.txt en el directorio myfiles:
ubuntu@ubuntu18:~$ mkdir myfiles ; touch myfiles/{a.txt,b.txt,c.txt}
Ahora cree un archivo llamado allfiles.tar que contenga todos los archivos del directorio myfiles:
ubuntu@ubuntu18:~$ tar -cvf allfiles.tar misarchivos
misarchivos/
misarchivos/c.txt
misarchivos/a.txt
misarchivos/b.txt
Lista todos los archivos del directorio actual. Puede ver el directorio myfiles y el archivo allfiles.tar:
ubuntu@ubuntu18:~$ ls
allfiles.tar myfiles
Puede descomprimir un archivo con la bandera -x. Así, para descomprimir allfiles.tar
ubuntu@ubuntu18:~$ tar -xvf allfiles.tar
misarchivos/
misarchivos/c.txt
misarchivos/a.txt
misarchivos/b.txt
También puede comprimir este archivo con la bandera -z. Esto crearía un archivo comprimido con gzip.
ubuntu@ubuntu18:~$ tar -zcvf todosarchivos.tar.gz misarchivos
misarchivos/
misarchivos/c.txt
misarchivos/a.txt
misarchivos/b.txt
ubuntu@ubuntu18:~$ ls
allfiles.tar.gz myfiles
Para descomprimir un archivo comprimido utilice -z
con la bandera -x
.
ubuntu@ubuntu18:~$ tar -zxvf todosarchivos.tar.gz
misarchivos/
misarchivos/c.txt
misarchivos/a.txt
misarchivos/b.txt
grep
grep
se utiliza para buscar un patrón en un fichero, o en un conjunto de ficheros. Imprime todas las líneas que coincidan con ese patrón. Por ejemplo, para buscar la línea que contiene «ServerRoot» en /etc/apache2/apache2.conf:
ubuntu@ubuntu18:~$ grep ServerRoot /etc/apache2/apache2.conf
# ServerRoot: La parte superior del árbol de directorios bajo la que se encuentra el servidor de
#ServerRoot "/etc/apache2"
Para buscar en todos los archivos de un directorio utilice *
. Para incluir la búsqueda en subdirectorios utilice la bandera -r
(recursiva). Así, para buscar todas las líneas que contengan el patrón «VirtualHost» en todos los archivos de /etc/apache2:
ubuntu@ubuntu18:~$ cd /etc/apache2
ubuntu@ubuntu18:/etc/apache2$ grep -r VirtualHost *
apache2.conf:# Si no especifica una directiva ErrorLog dentro de un <VirtualHost>
apache2.conf:# se registra aquí. Si *define* un archivo de registro de errores para un <VirtualHost>
conf-available/localized-error-pages.conf:# incluso en una base por cada VirtualHost. Si incluye el alias en el servidor global
conf-available/other-vhosts-access-log.conf:# defina un registro de acceso para los VirtualHosts que no definan su propio archivo de registro
ports.conf:# tiene que cambiar la declaración VirtualHost en
sites-available/000-default.conf:<HostVirtual *:80>
...
rsync
rsync es una herramienta rápida de línea de comandos para sincronizar archivos y directorios entre dos ubicaciones. Puede utilizarse tanto para copias locales como remotas y es rápido porque sólo envía las diferencias entre los archivos de origen y los existentes en el destino.
Se utiliza mucho para las copias de seguridad y como comando de copia mejorado para el uso diario.
He aquí un ejemplo:
Para copiar/rsincronizar todos los archivos del directorio myfiles al directorio backups:
ubuntu@ubuntu18:~$ rsync -avh myfiles/ /backups
enviando la lista incremental de archivos
./
a.txt
b.txt
c.txt
enviado 218 bytes recibido 76 bytes 588,00 bytes/seg
el tamaño total es 0 la velocidad es 0,00
Para rsync todos los archivos del directorio myfiles al directorio backups en un host remoto, incluya remote_user @remote_host
en el nombre de destino. Así, para rsync la carpeta myfiles a un host remoto con IP 10.0.0.50:
vagrant@ubuntu-xenial:~$ rsync -avh myfiles/ vagrant@10.0.0.50:/home/vagrant
contraseña de vagrant@10.0.0.50:
enviando lista incremental de archivos
./
a.txt
b.txt
c.txt
enviado 230 bytes recibido 76 bytes 47,08 bytes/seg
el tamaño total es 0 la velocidad es 0,00
ss
el comandoss
se utiliza para volcar estadísticas de sockets, de forma similar a la utilidad heredada netstat. Para mostrar los sockets TCP utilice la bandera -t
.
ubuntu@ubuntu18:~$ ss -t
State Recv-Q Send-Q Local Address:Port Peer Address:Port
ESTAB 0 0 10.0.0.4:53852 168.63.129.16:8037
ESTAB 0 0 10.0.0.4:ssh 183.83.211.129:64118
ESTAB 0 0 10.0.0.4:33256 169.254.169.254:http
ESTAB 0 1080 10.0.0.4:ssh 222.186.30.35:11527
ESTAB 0 0 10.0.0.4:ssh 183.83.211.129:63049
Esto no mostraría los sockets que están escuchando. Para incluir tanto los sockets que están escuchando como los que no, utilice las banderas -t
y -a
.
ubuntu@ubuntu18:~$ ss -t -a
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0:ssh 0.0.0.0:*
LISTEN 0 80 127.0.0.1:mysql 0.0.0.0:*
LISTEN 0 128 127.0.0.53%lo:dominio 0.0.0.0:*
ESTAB 0 0 10.0.0.4:53852 168.63.129.16:8037
ESTAB 0 0 10.0.0.4:ssh 183.83.211.129:64118
ESTAB 0 0 10.0.0.4:33256 169.254.169.254:http
ESTAB 0 1080 10.0.0.4:ssh 222.186.30.35:11527
ESTAB 0 120 10.0.0.4:ssh 183.83.211.129:63049
LISTEN 0 128 [::]:ssh [::]:*
ESCUCHAR 0 128 *:http *:*
localizar
El comando locate
utiliza una base de datos para buscar archivos y en realidad puede ser mucho más rápido que el comando find. Muy simple de usar, para buscar un archivo, digamos, apache2.conf:
ubuntu@ubuntu18:~$ locate apache2.conf
/etc/apache2/apache2.conf
/var/lib/dpkg/info/apache2.conf
Puede utilizar la bandera -c
si sólo desea el recuento de archivos que coinciden con el patrón de búsqueda.
ubuntu@ubuntu18:~$ locate -c apache2.conf
2
En ocasiones, puede que necesite actualizar la base de datos utilizada por locate, que es mlocate. Para actualizar la base de datos utilice el comando updatedb
. Para ello necesitará privilegios de superusuario.
ubuntu@ubuntu18:~$ sudo updatedb
encontrar
Uno de los comandos más utilizados en Linux. Utilícelo para buscar archivos basándose en nombres de archivos, permisos, userid, groupid, tamaño, tipo de archivo, además de otros criterios.
Para buscar un archivo por su nombre en el directorio actual, utilice la bandera -name seguida del nombre del archivo a buscar.:
ubuntu@ubuntu18:~$ find . -nombre a.txt
./misarchivos/a.txt
Para buscar directorios, utilice la bandera -type d
:
ubuntu@ubuntu18:~$ find . -tipo d
.
./.ssh
./misarchivos
./.cache
./.gnupg
./.gnupg/llaves-privadas-v1.d
./docker
Para buscar archivos por tamaño, digamos archivos mayores de 20MB, utilice la bandera -size
:
ubuntu@ubuntu18:~$ find . -tamaño 20M
./docker/docker-ce-cli_5:19.03.12~3-0~ubuntu-bionic_amd64.deb
./docker/docker-ce_5:19.03.12~3-0~ubuntu-bionic_amd64.deb
Más información sobre el comando Linux Find.
systemctl
Ahora que systemd
ha reemplazado al proceso de init SysV en la mayoría de las distribuciones de Linux, utilice el comando systemctl para gestionar los servicios y unidades de systemd.
Para iniciar un servicio, por ejemplo apache2:
ubuntu@ubuntu18:~$ sudo systemctl start apache2.service
Puede dejar el sufijo service.
Para detener un servicio
ubuntu@ubuntu18:~$ sudo systemctl stop apache2
Para ver el estado del servicio, utilice el comando systemctl
status. El siguiente ejemplo muestra el estado de apache2 mientras se está ejecutando:
ubuntu@ubuntu18:~$ sudo systemctl status apache2
● apache2.service - El servidor HTTP Apache
Cargado: cargado (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Cargado /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Activo: activo (en ejecución) desde Wed 2020-08-19 11:34:04 UTC; hace 2s
Proceso: 25346 ExecStop=/usr/sbin/apachectl stop (code=exited, status=0/SUCCESS)
Proceso: 18202 ExecReload=/usr/sbin/apachectl graceful (code=exited, status=0/SUCCESS)
Proceso: 25536 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
PID principal: 25555 (apache2)
Tareas: 55 (límite: 1024)
Grupo C /system.slice/apache2.service
├─25555 /usr/sbin/apache2 -k start
├─25558 /usr/sbin/apache2 -k start
└─25559 /usr/sbin/apache2 -k start
Aug 19 11:34:04 ubuntu18 systemd[1]: Iniciando el servidor HTTP Apache...
Aug 19 11:34:04 ubuntu18 systemd[1]: Iniciado El Servidor HTTP Apache.
comando ufw
UFW – uncomplicated firewall es un frontend fácil de usar para iptables. Está disponible por defecto, en las distribuciones basadas en Ubuntu. En CentOS, puede instalar ufw
desde el repositorio EPEL.
Para habilitar ufw:
$ sudo ufw enable
Compruebe el estado del cortafuegos con ufw status:
$ sudo ufw status
Estado: activo
Las políticas UFW predeterminadas permiten todo el tráfico saliente y bloquean todo el tráfico entrante.
El siguiente comando permite el tráfico entrante en el puerto HTTP:
$ sudo ufw allow http
Regla añadida
Regla añadida (v6)
Puede denegar el tráfico en cualquier puerto. He aquí un ejemplo para bloquear el tráfico en el puerto 21:
$ sudo ufw deny 21
Regla añadida
Regla añadida (v6)
journalctl
Utilice journalctl
para ver los registros recopilados por systemd. systemd recopila los registros en una ubicación central en formato binario. Para ver estos logs
ubuntu@ubuntu18:~$ sudo journalctl
-- Los registros comienzan en lun 2020-06-29 02:48:31 UTC, finalizan en mié 2020-08-19 15:07:59 UTC. --
29 Jun 02:48:31 ubuntu kernel: Linux versión 5.3.0-1028-azure (buildd@lcy01-amd64-003) (gcc versión 7.5.0 (Ubuntu
29 jun 02:48:31 ubuntu kernel: Línea de comandos: BOOT_IMAGE=/boot/vmlinuz-5.3.0-1028-azure root=UUID=b0dd9d06-536e-41
29 jun 02:48:31 ubuntu kernel: KERNEL soporta cpus:
Jun 29 02:48:31 ubuntu kernel: Intel GenuineIntel
...
En la mayoría de los casos, preferirá ver los registros en orden inverso, es decir, los registros más recientes primero:
ubuntu@ubuntu18:~$ sudo journalctl -r
-- Los registros comienzan en lun 2020-06-29 02:48:31 UTC, finalizan en mié 2020-08-19 15:10:16 UTC. --
Aug 19 15:10:16 ubuntu18 sudo[31263]: pam_unix(sudo:session): sesión abierta para el usuario root por ubuntu(uid=0)
Aug 19 15:10:16 ubuntu18 sudo[31263]: ubuntu : TTY=pts/1 ; PWD=/home/ubuntu ; USER=root ; COMMAND=/bin/journalc
Aug 19 15:10:11 ubuntu18 sudo[31213]: pam_unix(sudo:session): sesión cerrada para el usuario root
Aug 19 15:07:59 ubuntu18 sudo[31213]: pam_unix(sudo:session): sesión abierta para el usuario root por ubuntu(uid=0)
Aug 19 15:07:59 ubuntu18 sudo[31213]: ubuntu : TTY=pts/1 ; PWD=/home/ubuntu ; USER=root ; COMMAND=/bin/journalc
Aug 19 15:07:56 ubuntu18 sudo[31183]: pam_unix(sudo:session): sesión cerrada para el usuario root
Aug 19 15:06:47 ubuntu18 sudo[31183]: pam_unix(sudo:session): sesión abierta para el usuario root por ubuntu(uid=0)
...
Para ver los registros de un servicio específico, por ejemplo mysql utilice la bandera -u
:
ubuntu@ubuntu18:~$ sudo journalctl -u mysql
-- Los registros comienzan en lun 2020-06-29 02:48:31 UTC, finalizan en mié 2020-08-19 15:11:34 UTC. --
Aug 16 12:30:02 ubuntu18 systemd[1]: Iniciando MySQL Community Server...
Aug 16 12:30:03 ubuntu18 systemd[1]: Iniciado MySQL Community Server.
Aug 19 15:03:27 ubuntu18 systemd[1]: Deteniendo MySQL Community Server...
Ago 19 15:03:29 ubuntu18 systemd[1]: Detenido MySQL Community Server.
kill y killall
Puede que necesite matar un proceso fuera de control o cuando necesite liberar algunos recursos del sistema. kill con la bandera -l
muestra todas las señales que puede enviar a un proceso.
ubuntu@ubuntu18:~$ kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
....
Las dos señales más utilizadas son SIGTERM Y SIGKILL. También puede utilizar -9 para SIGKILL y -15 para SIGTERM. SIGTERM permite que un proceso finalice antes de ser terminado y por ello se denomina soft kill. SIGKILL termina el proceso inmediatamente. He aquí un ejemplo:
Listar todos los procesos apache2
ubuntu@ubuntu18:~$ ps aux|grep apache2
root 45521 0.0 0.5 78188 4688 ? Ss Aug08 0:03 /usr/sbin/apache2 -k start
www-data 45524 0.0 0.5 830480 4816 ? Sl Aug08 0:00 /usr/sbin/apache2 -k start
www-data 45525 0.0 0.7 830480 6856 ? Sl Aug08 0:00 /usr/sbin/apache2 -k start
ubuntu 70374 0.0 0.1 14852 1040 pts/0 S 07:45 0:00 grep --color=auto apache2
Para matar el proceso apache2 con id de proceso 45525:
ubuntu@ubuntu18:~$ sudo kill -9 45525
De nuevo ver la lista de procesos apache2:
ubuntu@ubuntu18:~$ ps aux|grep apache2
root 45521 0.0 0.5 78188 4688 ? Ss Aug08 0:03 /usr/sbin/apache2 -k start
www-data 45524 0.0 0.5 830480 4816 ? Sl Aug08 0:00 /usr/sbin/apache2 -k start
ubuntu 70525 0.0 0.1 14852 1052 pts/0 S 07:52 0:00 grep --color=auto apache2
Utilice killall para matar un programa por su nombre. Lo que significa que killall mata el proceso control(padre) y todos los procesos hijos. Para matar todas las instancias del proceso apache2 en el ejemplo anterior:
ubuntu@ubuntu18:~$ sudo killall apache2
Utilice kill
y killall
con precaución. Estos comandos pueden dejar el sistema en un estado inestable.
IP
El comando ip
sustituye a ifconfig
en las distribuciones Linux más recientes. Utilícelo para configurar y mostrar interfaces de red. También se utiliza para mostrar y modificar direcciones IP, rutas y objetos vecinos.
Muestra información sobre todas las interfaces de red:
ubuntu@ubuntu18:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0d:3a:9b:88:d6 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.4/24 brd 10.0.0.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::20d:3aff:fe9b:88d6/64 scope link
valid_lft forever preferred_lft forever
Para subir o bajar una interfaz utilice ip link set dev seguido del nombre del dispositivo. Por ejemplo, para poner en línea la interfaz eth0
ubuntu@ubuntu18:~$ ip link set eth0 up
Y para bajarla
ubuntu@ubuntu18:~$ ip link set eth0 down
fecha
Un comando muy utilizado, aquí exploramos algunas formas interesantes de utilizar este comando.
ubuntu@ubuntu18:~$ date
Mar 11 ago 07:42:49 UTC 2020
Para ver la fecha del próximo domingo:
ubuntu@ubuntu18:~$ date -d 'proximo domingo
Dom ago 16 00:00:00 UTC 2020
Para ver la fecha del domingo pasado
ubuntu@ubuntu18:~$ date -d 'last sunday'
Dom ago 9 00:00:00 UTC 2020
También puede utilizar –date en lugar de la bandera -d:
ubuntu@ubuntu18:~$ date --date='último domingo'
Dom ago 9 00:00:00 UTC 2020
Para ver la fecha de hace 6 días
ubuntu@ubuntu18:~$ date --date='hace 6 días'
Mié ago 5 08:06:37 UTC 2020
Fecha de dentro de 6 días
ubuntu@ubuntu18:~$ date --date='6 days'
Lun 17 ago 08:08:37 UTC 2020
Puede controlar fácilmente el formato de salida de la fecha. Aquí tiene un ejemplo:
ubuntu@ubuntu18:~$ date ' %d-%B-%Y'
11-Agosto-2020
Resumen
Usted, como administrador de sistemas, mantiene en funcionamiento la infraestructura informática del mundo. Tiene que resolver problemas, mantener y hacer que los sistemas funcionen de forma óptima al tiempo que garantiza la seguridad.
Espero que estos comandos le sean útiles y le ayuden a hacer mejor su trabajo.
Aquí tiene algunos clientes FTP/SFTP y las mejores hojas de trucos de Vim para desarrolladores y administradores de sistemas.