Está en la página 1de 13

ADMINISTRACIÓN DE LINUX

- Proceso.

Un proceso en Linux es una serie de instrucciones que vienen de un programa que está en
ejecución, existen diferentes elementos que incorpora un proceso como la prioridad de
ejecución del proceso que le indica a Linux cuanto CPU utilizar y el tiempo máximo de
ejecución del proceso.

Cuando Linux se ejecuta, el kernel de Linux tiene la primera prioridad de ejecución,


conocida como PID 1 (Process ID). En versiones anteriores de Linux, este proceso era
conocido como init que está basado en la forma en la que sistemas antiguos de Unix
arrancaban el sistema.

Las versiones modernas de Linux utilizan systemd que intenta coordinar la manera en que
los procesos son manejados. Como comentamos PID1 es el proceso padre, todos los demás
procesos ejecutados a partir de este son procesos hijos.

- Estados de un proceso

S Sleep Durmiendo. Quiere decir que está en ejecución, pero en ese momento no
se encuentra ejecutándose ningún código dentro de la CPU.

D Sleep Es igual que el anterior, pero no es posible interrumpirlo.

T Stopped Parado. Quiere decir que se ha detenido su ejecución.

R Running En ejecución. Es un proceso que se está ejecutando de forma activa en la


CPU.

Z Zombie Es un proceso que debería de haber muerto, pero aún tiene dependencias


que no es posible terminar. Hasta que no se eliminen sus dependencias
no desaparecerá.

- Herramientas para interactuar en un proceso


En la siguiente lista se muestran algunos comandos, que nos servirán para poder gestionar y
administrar procesos en un entorno de trabajo basado en el sistema operativo Linux.
man ps
– Ver ayuda del comando ps
ps aux
– Muestra todos los procesos del sistema
ps axjf
– Mostrar árbol jerárquico con la ruta del programa al que pertenece
ps aux | grep bash
– Filtrado para obtener únicamente los procesos pertenecientes a bash
ps -U root -u root u
– Muestra cada proceso con permiso root
top
– Informe en tiempo real
man top
– Ver ayuda del comando top
top -o %CPU
– Donde %CPU es el valor por el que vamos a ordenar los procesos
top –d 5
– Donde 5 es el número de segundos a transcurrir entre cada muestreo
top –u usuario
– Donde usuario es el usuario del cual queremos mostrar los procesos
htop
– Administra interactivamente los procesos del sistema
man htop
– Ver ayuda del comando top
htop -d –delay=TIEMPO
– Tiempo de espera para refrescar (Tiempo en décimas de segundo)
htop -C –no-color –no-colour
– Arranca htop en blanco y negro (Monocromo)
htop -u –user=USUARIO
– Muestra solo los procesos de dicho usuario
kill [PID del proceso]
– Gestiona función de cierre, completa tareas necesarias y limpia la información cargada en
memoria
kill –KILL [PID del proceso]
– Eliminar proceso por la fuerza
pkill -9 [Nombre del proceso]
– Función de cierre con nombre del proceso en vez de PID
kill –HUP [PID de Apache]
– Reinicio de Apache
killall [programa]
– Variante de kill, cierra todos los procesos de un programa

- Ver estado de un proceso.


Existen varias herramientas para ver los procesos en ejecución, la más importante es el
comando ps.

ps (process status) lista los procesos con su PID, datos de usuario, tiempo, identificador del
proceso y línea de comandos usada. 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 especificar de 3 maneras:
opciones UNIX: pueden agruparse y se preceden por un guion: ps -ef
opciones BSD: pueden agruparse y van sin guion: ps uxa
opciones largas GNU: precedidas de dos guiones: ps --user tomas.

- Formato fichero crontab

La forma más sencilla de crear un archivo crontab consiste en utilizar el comando crontab


-e. Este comando invoca al editor de texto que se ha definido para el entorno del sistema. El
editor predeterminado para el entorno del sistema está definido en la variable de
entorno EDITOR. Si esta variable no se ha definido, el comando crontab utiliza el editor
predeterminado ed. Se recomienda que seleccione un editor conocido.

El siguiente ejemplo muestra cómo determinar si se ha definido un editor y cómo


configurar vi para que sea el comando predeterminado.

$ which $EDITOR
$
$ EDITOR=vi
$ export EDITOR
Al crear un archivo crontab, éste se colocará automáticamente en el
directorio /var/spool/cron/crontabs y recibirá su nombre de usuario. Puede crear o editar un
archivo crontab para otro usuario, o para root, si tiene privilegios de superusuario.

- El sistema de fichero.

Si crea o edita un archivo crontab que pertenece a root o a otro usuario, debe convertirse en


superusuario o asumir un rol similar. Los roles incluyen autorizaciones y comandos con
privilegios. Para obtener más información sobre los roles, consulte Configuración de RBAC
(mapa de tareas) de Guía de administración del sistema: servicios de seguridad.

No es necesario que se convierta en superusuario para editar su propio archivo crontab.

1 Cree un archivo crontab nuevo o edite un archivo existente.

$ crontab -e [username]
Donde username especifica el nombre de la cuenta del usuario para la que desea
crear o editar un archivo crontab. Puede crear su propio archivo crontab sin
privilegios de superusuario, pero debe tener privilegios de superusuario para crear
o editar un archivo crontab para root o para otro usuario.

Precaución - Si accidentalmente escribe el comando crontab sin opción,


presione el carácter de interrupción de su editor. Este carácter permite salir
sin guardar los cambios. Si, en cambio, guardó los cambios y cerró el
archivo, el archivo crontab existente se sobrescribirá con un archivo vacío.

2 Agregue líneas de comando al archivo crontab.

Siga la sintaxis descrita en Sintaxis de entradas de archivo crontab. El


archivo crontab se colocará en el directorio /var/spool/cron/crontabs.

3 Verifique los cambios de su archivo crontab.

# crontab -l [username]

Ejemplo 8-1 Creación de un archivo crontab


El siguiente ejemplo muestra cómo crear un archivo crontab para otro usuario.

# crontab -e jones
La siguiente entrada del comando agregada a un archivo crontab nuevo elimina
automáticamente cualquier archivo de registro del directorio principal del usuario todos los
domingos a la 1:00 a. m. Debido a que la entrada del comando no redirige la salida, se
agregan caracteres de redireccionamiento a la línea de comandos después de *.log. De esta
forma, se asegurará de que el comando se ejecute correctamente.

# This command helps clean up user accounts.


1 0 * * 0 rm /home/jones/*.log > /dev/null 2>&1

- Gestión de paquete RPM

RPM Package Manager (o RPM, originalmente llamado Red Hat Package Manager, pero se
convirtió en acrónimo recursivo1) es una herramienta de administración de paquetes
pensada para GNU/Linux. Es capaz de instalar, actualizar, desinstalar, verificar y solicitar
programas. RPM es el formato de paquete de partida del Linux Standard Base.
Entre las características de RPM están:

 Los paquetes pueden ser cifrados y verificados con GPG y MD5.


 Los archivos de código fuente (por ejemplo .tar.gz, .tar.bz2) están incluidos en
SRPMs, posibilitando una verificación posterior.
 PatchRPMs y DeltaRPMs, que son equivalentes a ficheros parche, pueden
actualizar incrementalmente los paquetes RPM instalados.
 Las dependencias pueden ser resueltas automáticamente por el gestor de paquetes.
Algunos Comandos:
rpm -qa = muestra paquetes instalados.
rpm -qi foo = muestra la información de un paquete RPM.
rpm -ql foo = lista ficheros de un paquete RPM instalado.
rpm -qc foo = lista solo los ficheros de configuración.
rpm --checksig foo = verifica firma de un paquete RPM.
rpm -ivh "localFile.rpm" = instala un paquete.
rpm -e "localFile.rpm" = desinstala un paquete.

- Gestión de paquete APT


Advanced Packaging Tool (Herramienta Avanzada de Empaquetado), abreviado APT, es un
programa de gestión de paquetes creado por el proyecto Debian. APT simplifica en gran
medida la instalación y eliminación de programas en los sistemas GNU/Linux.
No existe un programa apt en sí mismo, sino que APT es una biblioteca de funciones C++
que se emplea por varios programas de línea de comandos para distribuir paquetes. En
especial, apt-get y apt-cache.

Apt-get tiene un huevo de pascua, también conocido como easter egg, muy famoso. Se trata
de escribir apt-get moo en una línea de comandos, lo que dará como resultado la aparición
de una vaca hecha en arte ASCII, que variará su imagen dependiendo del sistema operativo
sobre el cual se ejecuta.

- Gestión de paquetes de software y/o centro de software.

Los gestores de paquetes son una parte esencial en cualquier distribución GNU/Linux, y en
última instancia, es el principal factor diferencial (junto con el formato de paquetes como
tal) entre unas distribuciones y otras.

Obviamente de distribuciones hay a miles, y los gestores de paquetes los podemos contar
con los dedos de una mano, ya que es uno de los componentes más core del sistema, y de la
cual dependen muchas otras herramientas.

Entre las principales funciones de un gestor de paquetes están las siguientes:

La gestión automática de las dependencias (al instalar o desinstalar paquetes).


La búsqueda de actualizaciones de todos los paquetes que tenemos en local, según la ultima
versión disponible en los repositorios oficiales.
La comprobación de las sumas de verificación y firmas digitales.
Luego, aparte del gestor de paquetes en sí, están las diferentes herramientas o aplicaciones
(ya sean por consola o a nivel gráfico) que hacen de interfaz para permitir la interacción del
usuario con el propio gestor de paquetes, aunque de eso hablaremos un poco más adelante.

Los Repositorios de Software

Los repositorios de software permiten ofrecer un catálogo de aplicaciones gestionado desde


un lugar centralizado y supervisado por la comunidad de desarrolladores y usuarios.

Las ventajas de esto son varias, empezando por el hecho de evitarte la necesidad de tener
que visitar webs externas para la descarga de software. Esto da bastantes garantías al
usuario de que todo el software que ha descargado es legítimo, y que además estará
soportado, bien por parte de la comunidad de desarrolladores de la distribución, o bien a
través de la empresa que haya detrás (Canonical, Red Hat, SUSE, etc.).
- Gestión de paquete YUM.

YUM
YUM es una dependencia de resolución para el gestor de paquetes RPM. YUM es el valor
predeterminado de sistema de gestión de paquetes incluidos en bastantes derivados Red
Hat, incluyendo Fedora 21 y CentOS. La sintaxis para YUM es simple, y los usuarios de
Apt no tendrán ningún problema en hacer el cambio.

La
actualización y la mejora a través de YUM es muy simple, en donde el siguiente comando
se encarga de las tareas:

[php]sudo yum update[/php]


Para instalar un paquete, el siguiente comando es utilizado:
[php]sudo yum install $packageName[/php]

Asimismo, para quitar un paquete, el comando es:


[php]sudo yum remove $packageName[/php]
Para buscar un paquete instalable:
[php]sudo yum search $packageName[/php]

YUM no incluye un comando autoremove para la búsqueda y eliminación de las


dependencias no utilizadas, sin embargo, incluye una gran característica para la instalación
de un paquete a partir de una url, que Apt no incluye:
[php]sudo yum install $url[/php]

- Debian

Debian GNU/Linux es un sistema operativo libre, desarrollado por miles de voluntarios de


todo el mundo, que colaboran a través de Internet.

La dedicación de Debian al software libre, su base de voluntarios, su naturaleza no


comercial y su modelo de desarrollo abierto la distingue de otras distribuciones del sistema
operativo GNU. Todos estos aspectos y más se recogen en el llamado Contrato Social de
Debian.

Nació en el año 1993, de la mano del proyecto Debian, con la idea de crear un sistema GNU
usando Linux como núcleo. El proyecto Debian es la organización responsable de su
mantenimiento en la actualidad, y también desarrolla sistemas GNU basados en otros
núcleos (Debian GNU/Hurd, Debian GNU/NetBSD y Debian GNU/kFreeBSD).

- Librerías

Las librerías compartidas en Linux consisten en archivos individuales que contienen una
lista de funciones. Este conjunto suele recibir el nombre de API (Application Programmable
Interface) y está disponible para cualquier programa que lo necesite. De esta manera, no
hace falta volver a escribir las funciones en cuestión para cada uno de ellos. Vale la pena
aclarar que varios programas pueden acceder a una librería compartida al mismo tiempo.
Por otro lado, si una librería dada no está disponible, cualquier programa que la necesite no
podrá funcionar.

Librerías compartidas en Linux


Para empezar, en Linux las librerías compartidas aparecen en forma de archivos .so (de
shared objects, u objetos compartidos). Tradicionalmente, las hemos podido encontrar en
los siguientes directorios:

/lib: librerías esenciales para el funcionamiento del sistema.


/lib64: igual que para el anterior, para sistemas de 64 bits.
 A la izquierda vemos la lista de librerías, y a la derecha la ubicación del
archivo .so correspondiente.

ldd /usr/bin/top

- Tipos de Servidores.

Según el tipo de información que transmitan y donde se almacenen estos datos, pueden
existir muchos tipos de servidores.

A continuación, se presentan los más comunes.

SERVIDOR WEB
Es la máquina que almacena una o varias páginas web, dependiendo de si es un servidor
web dedicado o compartido.
Las empresas que ofrecemos servicios de hosting somos los que ofrecemos este tipo de
servidores.

SERVIDOR DEDICADO
Este tipo de servidores se caracterizan por recibir peticiones de un único cliente.
Son servidores exclusivos y que, por tanto, suelen ofrecer mayor cantidad de
almacenamiento.

Este tipo de servidores son los que ofrecen algunas empresas de hosting para aquellos
clientes que tienen una página web que requieren un volumen de transferencia de datos muy
elevado.

SERVIDOR COMPARTIDO
Este servidor es lo opuesto al servidor dedicado.

Los servidores compartidos se encargan de recibir peticiones de muchos clientes.

Por normal general, los clientes de este tipo de servidores son aquellos que no realizan
muchas peticiones al servidor ya que de no ser así, éste no sería lo suficiente rápido para
adaptarse a las necesidades de todos sus clientes.

SERVIDORES DE AUDIO Y VÍDEO


Este tipo de servidores son muy útiles para la transmisión de audio y vídeo en streaming.
Son servidores creados para esta tarea en concreto ya que la transmisión en directa de audio
o vídeo es una tarea que requiere de un servidor potente.

SERVIDOR DE CORREO ELECTRÓNICO


Se encarga de gestionar todos los emails que recibe y envía un correo electrónico.

Además, es el responsable de todas las operaciones de dicho email y permite el intercambio


de mensajes a través de sistemas de comunicación electrónico.

SERVIDOR FTP
Es un tipo de servidor que permite la transferencia de archivos.

Es un método de transferencia de archivos es muy propio dentro del diseño web ya que
permite al cliente descargar un archivo desde el servidor o al servidor recibir un archivo
enviado desde el cliente.

SERVIDOR DE IMPRESIÓN
Su función es vincular muchos ordenadores a una o varias impresoras.
Este tipo de servidores es ideal en entornos de trabajo donde el volumen de impresión es
grande. Por tanto, un equipo de trabajo puede solicitar un trabajo de impresión a la
impresora que desee.

SERVIDOR EN LA NUBE
Los servidores en la nube se caracterizan por almacenar la información en internet en vez
de en algún equipo informático físico.

Plataformas como Google Drive o Dropbox son herramientas que almacenan la información
en la nube. De esta manera, puedes acceder a esta información siempre que tengas acceso a
internet.

SERVIDOR DE BASE DE DATOS


Estos servidores se encargan de transferir información almacenada en bases de datos a otros
programas u ordenadores. De esta manera, organiza la información mediante el uso de
tablas, índices y registros.

Es muy propio de empresas o bancos que tienen varios clientes con información detallada
de cada uno de ellos como: correo, dirección, teléfono, etc.

CLÚSTER DE SERVIDORES
Esto más que un servidor, es la agrupación de varios servidores. Su particularidad es que
todos se dedican a la misma tarea y se suele recurrir a esta unión cuando un único servidor
no responde al número de peticiones que hacen los clientes.

SERVIDOR PROXY
Un servidor proxy es un equipo informático que actúa de intermediario entre un dispositivo
y otro servidor del cual un cliente solicita un servicio.

Un ejemplo es la navegación de internet en un ordenador y la propia red de internet. De esta


manera, el proxy es quien recibe la petición de acceder a una página y es quien trasmite la
petición al servidor web.

SERVIDOR DE ARCHIVOS
Los servidores de archivos tienen como finalidad crear una red en la que varios ordenadores
se pueden conectar y ver y modificar todos los archivos que hay en dicha red.

Esta es una práctica muy utilizada en equipos de trabajo que necesitan acceso a los mismos
archivos.

SERVIDOR DE DNS
La función de este servidor es la de traducir la dirección IP de una página web en un
dominio.

La razón de este cambio es porque resulta más fácil recordar los dominios, como
“desafiohosting.com” antes que una dirección IP numérica como “…”

- Concepto de Script.
En informática, un script, secuencia de comandos1 o guion234 (traduciendo desde inglés)
es un término informal que se usa para designar a un programa relativamente simple. Los
scripts regularmente no se compilan con anticipación a código máquina, sino que son
ejecutados por un intérprete que lee el archivo de código fuente al momento; o incluso por
una consola interactiva donde el usuario suministra el programa al intérprete paso a paso.
Los scripts o guiones se pueden usar para prototipar programas, automatizar tareas
repetitivas, hacer procesamiento por lotes e interactuar con el sistema operativo y el usuario
(debido a esto, los intérpretes de comandos o shells suelen diseñarse con funcionalidades de
programación).

Algunos lenguajes de programación son considerados "lenguajes de scripts" (scripting


languages) sí son idóneos para realizar guiones con soltura, pese a que también se utilizan
para codificar programas mucho más complejos. Por ejemplo, Python a menudo se
considera un lenguaje de scripting, sin embargo, se puede usar para programar aplicaciones
sofisticadas (ejemplo: Deluge) o bibliotecas enteras (como SciPy); las cuales se consideran
más que simples scripts.

- Tipos de Script.

Principales tipos de script:


1 JavaScript/ECMAScript
2 PHP
3 Python
4 Ruby
5 Groovy
6 Perl
7 Lua
8 Bash
9 PowerShell
10 R
11 VBA
12 Emacs Lisp
13 GML

- Permisos de un script.

Cómo establecer los permisos del script


Puede establecer niveles de permiso para un script y especificar una contraseña para
proteger un script. Siga estos pasos.

1. En la ventana del editor de scripts, haga clic en Archivo > Establecer permisos.
Se abre el cuadro de diálogo Establecer permisos.
2. En el área Nivel de permisos, seleccione el nivel de seguridad adecuado.
• Con protección. Puede ejecutarse el script, pero no puede verse ni editarse.
• Solo visualizar. Puede verse el script, pero no editarse.
• Sin protección. Puede verse y editarse el script.
3. Para asegurar un script, designe una contraseña en el área Seguridad.
Nota: Tenga cuidado al configurar las contraseñas, porque no es posible recuperarlas.

4. Haga clic en OK.


La próxima vez que haga clic en Insertar > Editor de scripts > Editar script, se abrirá el
cuadro de diálogo Protegido mediante contraseña y le solicitará la contraseña. Seleccione
una de estas opciones:

• Para editar el script, introduzca la contraseña y haga clic en OK.


• Para solo ver el script, no introduzca la contraseña y haga clic en Ver.

Añadir permisos de ejecución a un script en GNU/Linux:


La manera más fácil es utilizar el parámetro “+x“, que le asignará permisos de ejecución:
1
chmod +x script.sh

O bien asignarle valores numéricos:


1
chmod 0755 script.sh

De esta manera hemos dado permisos de ejecución, además de los de escritura y lectura, al
usuario propietario. Al grupo y al invitado solo de lectura.
También podemos asignar los permisos únicamente al propietario y al resto dejarles sin:
1
chmod 0700 script.sh

O de esta manera:
1
chmod u=rwx,go= script.sh

O, por último:
1
chmod u+x script.sh

Para visualizar los permisos del script solo hemos de escribir:


1
ls -la script.sh

También podría gustarte