Tema 3: Actividades administrativas
básicas
Administración de Sistemas e Redes
Tomás Fernández Pena
[email protected]
Índice
1. Comandos básicos para la gestión de procesos
2
2
1.1. Ver los procesos en ejecución . . . . . . . . . . . . . . . . . . .
8
1.2. Señalización de procesos . . . . . . . . . . . . . . . . . . . . .
1.3. Manejo de la prioridad y recursos de un proceso . . . . . . . . 12
1.4. Análisis básico del rendimiento del sistema . . . . . . . . . . . 14
1.5. Herramientas grácas . . . . . . . . . . . . . . . . . . . . . . . 16
1.6. El directorio /proc . . . . . . . . . . . . . . . . . . . . . . . . 16
2. Gestión del sistema de cheros
18
2.1. Tipos de cheros y atributos . . . . . . . . . . . . . . . . . . . 18
2.2. Enlaces
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.3. Localización de cheros . . . . . . . . . . . . . . . . . . . . . . 26
2.4. Particiones y sistemas de cheros
. . . . . . . . . . . . . . . . 32
2.5. Sistemas de cheros con LVM . . . . . . . . . . . . . . . . . . 42
2.6. Manejo de discos cifrados . . . . . . . . . . . . . . . . . . . . . 46
3. Gestión de usuarios
49
3.1. Ficheros de información de los usuarios . . . . . . . . . . . . . 49
3.2. Creación manual de una cuenta . . . . . . . . . . . . . . . . . 52
3.3. Comandos para gestión de cuentas
. . . . . . . . . . . . . . . 54
3.4. Cuotas de disco . . . . . . . . . . . . . . . . . . . . . . . . . . 56
1
4. Instalación y conguración básica de redes de área local
59
4.1. Comandos de conguración de red . . . . . . . . . . . . . . . . 60
4.2. Ficheros de conguración de red . . . . . . . . . . . . . . . . . 69
4.3. Conguración del DHCP . . . . . . . . . . . . . . . . . . . . . 73
5. Automatización de tareas
74
5.1. Tareas periódicas . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.2. Automatización de la conguración . . . . . . . . . . . . . . . 79
6. Copias de seguridad
81
6.1. Estrategias para las copias de seguridad . . . . . . . . . . . . . 81
6.2. Comandos básicos . . . . . . . . . . . . . . . . . . . . . . . . . 84
6.3. Otras aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . 92
1. Comandos básicos para la gestión de procesos
En el tema anterior vimos como ejecutar comandos del shell:
otros comandos ajenos al shell se ejecutan igual
En cada momento se están ejecutando un gran número de procesos:
procesos de sistema (kernel, daemons)
procesos de usuarios
En esta sección trataremos la gestión de los procesos que se están ejecutando:
listar procesos en ejecución
detener y matar procesos
controlar la prioridad de ejecución
1.1. Ver los procesos en ejecución
Existen varias herramientas para ver los procesos en ejecución, la más im-
portante es el comando ps
2
ps (process status)
lista los procesos con su PID, datos de usuario, tiempo, identicador del
proceso y linea de comandos usada
$ ps
PID TTY
6368 pts/0
7441 pts/0
TIME CMD
00:00:00 bash
00:00:00 ps
sin opciones, ps sólo muestra los procesos lanzados desde el terminal actual
y con el mismo EUID que el usuario que lo lanzó
Opciones de ps ps tiene un gran número de opciones, que se pueden
especicar de 3 maneras:
1. opciones UNIX: pueden agruparse y se preceden por un guión: ps -ef
2. opciones BSD: pueden agruparse y van sin guión: ps uxa
3. opciones largas GNU: precedidas de dos guiones: ps --user tomas
Algunas opciones:
-e o ax: muestra todos los procesos
-u (o U o --user) usuario: muestra los procesos de un usuario
u: salida en formato usuario
j: salida en formato job (muestra PID, PPID, etc.)
-f o l: salida en formato largo
f: muestra un árbol con la jerarquía de procesos
k (o --sort) campo: ordena la salida por algún campo (p.e. ps uxak
rss)
-o (o o o --format) formato: permite denir el formato de salida ps
-o ruser,pid,comm=Comando
para más opciones ver la página de manual de ps
Ejemplo:
3
PID %CPU %MEM
1 0.0 0.0
2 0.0 0.0
3 0.0 0.0
4 0.0 0.0
VSZ
1516
0
0
0
RSS TTY
536 ?
0 ?
0 ?
0 ?
STAT START
09:43
S
S
09:43
09:43
SN
S
09:43
TIME COMMAND
0:00 init [2]
0:00 [migration/0]
0:00 [ksoftirqd/0]
0:00 [migration/1]
0.1 4.9 140180 50920 ?
0.2 3.6 116396 37948 ?
Sl
Sl
09:51
10:01
0:18 /usr/lib/mozilla-thunderbird/mozilla-thunderbird-bin
0:25 /usr/lib/mozilla-firefox/firefox-bin -a firefox
$ ps axu
USER
root
root
root
root
.............
tomas
tomas
6475
6528
en este ejemplo:
%CPU y %MEM: porcentajes de uso de CPU y memoria
VSZ: memoria virtual del proceso, en KBytes
RSS: tamaño de la memoria residente (resident set size) en KBytes
STAT: estado del proceso; puede ser:
Código
signicado
D
R
S
T
Z
Uninterruptible sleep (usualmente IO)
Ejecutándose(running) o en cola de ejecución
Interruptible sleep (p.e. esperando un evento)
Detenido
Proceso zombie
cuando se usa formato BSD puede aparecer otro código acompañando
al principal:
Código
signicado
<
N
L
s
l
+
alta prioridad
baja prioridad
páginas bloqueadas (locked) en memoria
líder de sesión
multi-threaded
proceso en foreground
pstree muestra el árbol de procesos (similar a ps f)
init-+-acpid
|-atd
|-bonobo-activati
|-clock-applet
4
|-cron
|-cupsd
|-dbus-daemon-1
|-dcopserver
|-dirmngr
|-2*[esd]
|-events/0-+-aio/0
|
|-ata/0
|-ata/1
|
|-kblockd/0
|
|
|-khelper
|
`-pdflush
|-events/1-+-aio/1
|
|
|
|-exim4
|-famd
|-firefox-bin---wvMime---ggv
...
|-kacpid
|-kblockd/1
`-pdflush
top
ps da una versión estática de los procesos
top nos da una lista actualizada a intervalos
6 users,
top - 17:34:08 up 7:50,
Tasks: 111 total,
Cpu(s): 6.2% us, 2.0% sy, 0.0% ni, 91.0% id,
1026564k total,
Mem:
Swap: 2048248k total,
656504k used,
0k used,
1 running, 110 sleeping,
0 stopped,
0.0% wa,
0 zombie
0.8% hi,
0.0% si
370060k free,
2048248k free,
65748k buffers
336608k cached
load average: 0.12, 0.31, 0.27
PID USER
6130 root
6341 tomas
6349 tomas
6019 tomas
6401 tomas
6427 tomas
7115 tomas
7390 tomas
VIRT RES
PR NI
15
15
16
15
15
15
15
15
16
RT
0 63692 48m 9704 S
0 14692 8852 6968 S 4.3
0 32792 14m 9232 S 1.3
0
7084 3184 1896 D 0.3
0 16756 8280 6856 S 0.3
0 18288 10m 8112 S 0.3
0 26312 13m
0 45016 30m
0
0
SHR S %CPU %MEM
8.7 4.9
0.9
1.5
0.3
0.8
1.0
0.3 1.4
0.3 3.0
0.1
0.0
0 S 0.0 0.0
11m S
18m S
1516 536 472 S
0
0
TIME+
COMMAND
8:03.34 XFree86
1:55.13 metacity
0:41.60 gnome-terminal
0:23.22 famd
0:02.49 geyes_applet2
0:09.04 wnck-applet
0:00.61 kio_uiserver
0:38.69 kile
0:00.61 init
0:00.00 migration/0
1 root
2 root
......................
5
en la cabecera nos muestra un resumen del estado del sistema
• hora actual, tiempo que el sistema lleva encendido, el número de
usuarios conectados y la carga media del sistema para los últimos
1, 5, y 15 minutos
• número total de tareas y resumen por estado
• estado de ocupación de la CPU y la memoria
por defecto, los procesos se muestran ordenados por porcentaje de uso
de CPU (los más costosos arriba)
pulsando h mientras se ejecuta top, obtenemos una lista de comandos
interactivos
para salir, q
Algunos campos de top
• VIRT: Tamaño total del proceso (código, datos y librerías com-
partidas cargadas), VIRT=SWAP+RES
• SWAP: Memoria que ha sido swapped out o que aún no ha sido
cargada
• RES: Memoria residente (RAM ocupada por el proceso)
• CODE y DATA: Memoria ocupada por el código y datos (datos y
pila, pero no librerías compartidas) del proceso
• SHR: Memoria compartida (memoria que puede ser compartida
con otros procesos)
• P: Última CPU usada (SMP)
• nFLT: Número de fallos de página para el proceso
strace
Muestra las llamadas al sistema realizadas por un proceso en ejecución
Ejemplo de un strace sobre un top en ejecución
$ strace top
gettimeofday({1195811866, 763977}, {4294967236, 0}) = 0
open("/proc/meminfo", O_RDONLY)
fstat64(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f55000
= 3
6
= 0
= 0
2066348 kB\nMemFre"..., 1024) = 728
read(3, "MemTotal:
close(3)
munmap(0xb7f55000, 4096)
open("/proc", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3
fstat64(3, {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0
fcntl64(3, F_SETFD, FD_CLOEXEC)
getdents(3, /* 52 entries */, 1024)
getdents(3, /* 64 entries */, 1024)
stat64("/proc/1", {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0
open("/proc/1/stat", O_RDONLY)
read(4, "1 (init) S 0 1 1 0 -1 4194560 44"..., 1023) = 185
close(4)
......
= 0
= 1020
= 1024
= 4
Ejecución en segundo plano
Por defecto, los comandos corren en primer plano (foreground): el shell espera
a que termine el comando antes de aceptar uno nuevo
para ejecutar un comando en segundo plano (background) hacerlo con
&
$ sleep 10
$ sleep 10 &
para terminar un proceso en foreground Ctrl-C
para pausar un comando en foreground usar Ctrl-Z
• bg pasa el proceso a background
• fg lo devuelve a foreground
Ejemplo:
$ sleep 20
Ctrl-Z
[3]+ Stopped
$ bg
[3]+ sleep 20 &
$ fg
sleep 20
sleep 20
El comando jobs permite ver la lista de comandos (jobs) en background
lanzados desde el shell, así como su estado (fg y bg pueden referirse a
uno de los jobs)
7
gedit nada.txt &
sleep 100 &
$ gedit nada.txt &; sleep 100 &
$ jobs
[2]- Running
[3]+ Running
$ fg 3
sleep 100
Ctrl-Z
[3]+ Stopped
$ jobs
[2]- Running
[3]+ Stopped
$ bg 3
[3]+ sleep 100 &
$ jobs
[2]- Running
[3]+ Running
sleep 100
gedit nada.txt &
sleep 100
gedit nada.txt &
sleep 100 &
1.2. Señalización de procesos
El comando básico para enviar señales a un proceso es kill
Ctrl-C y Ctrl-Z son atajos para enviar señales SIGINT (2) y SIGTSTP
(20)
kill -l lista el conjunto de señales
$ kill -l
1) SIGHUP
5) SIGTRAP
9) SIGKILL
13) SIGPIPE
18) SIGCONT
22) SIGTTOU
26) SIGVTALRM
30) SIGPWR
2) SIGINT
6) SIGABRT
10) SIGUSR1
14) SIGALRM
19) SIGSTOP
23) SIGURG
27) SIGPROF
31) SIGSYS
3) SIGQUIT
7) SIGBUS
11) SIGSEGV
15) SIGTERM
20) SIGTSTP
24) SIGXCPU
28) SIGWINCH
....
4) SIGILL
8) SIGFPE
12) SIGUSR2
17) SIGCHLD
21) SIGTTIN
25) SIGXFSZ
29) SIGIO
para ver su signicado, ver man 7 signal
Sintaxis de kill
kill [señal] PID
seña
Comentarios de: Tema 3: Actividades administrativas básicas - Administración de Sistemas e Redes (0)
No hay comentarios