¿Qué debe saber un administrador de Linux de cabeza?

¿Qué debe saber un administrador de Linux de cabeza?

No soy administrador de sistemas, pero tengo buenos conocimientos de Linux, Unix, Windows y hardware.

Cuáles son los temas más necesarios que un Administrador Linux debe saber de memoria (al punto de poder arreglarlo, configurarlo, solucionarlo sin tener que leer el manual al máximo; revisar las páginas de manual que son comunes a cualquier distribución). )?

ElENFOCARMe gustaría configurar esto desde la red de la empresa hasta la administración del servidor, que puede tener algunas características iguales y la mayoría de las veces también tendrá otras diferentes. Por ejemplo, no siempre verás un servidor FTP para el servidor de una empresa, pero probablemente verás Samba la mayor parte del tiempo...

No estoy diciendo "libro que debes leer" o cosas así, sino que me refiero a las características más necesarias que probablemente necesitarás en tu vida diaria como administrador de Linux.

Como:

  1. Núcleo, iptables
  2. Enviar correo, Postfix, qmail, exim
  3. Calamar, Samba, NFS, LDAP
  4. Apache, ngxix, lighthttpd
  5. vsftpd, proftpd
  6. unir
  7. Problemas diarios enfrentados
  8. ¿Cuál es la función que más usaste durante el día?

Esta no es una lista ordenada ni la más necesaria. Simplemente nombra algo que me vino a la cabeza.

PD: Ya tengo los conocimientos básicos, pero no tengo una experiencia diaria en el campo. He tenido servidores, he creado algunas redes, etc. Además, incluso tengo un conocimiento profundo de algunas partes del mismo. Solo quería actualizar esto aquí, como dije, es más una LISTA DIARIA DE LA VIDA DE UN SYSADMIN DE LINUX.

Les agradecería que pudieran enumerar los temas y, por ejemplo, qué campo dentro de ellos es el más utilizado o el más importante para memorizar.

Si cree que mi pregunta no es adecuada, hágamelo saber y la eliminaré yo mismo o si cree que es adecuada pero necesita ser reelaborada más, hágamelo saber también y haré lo mejor que pueda.

Respuesta1

¿Estás realmente seguro de que te importan las cosas del día a día? Personalmente, creo que las cosas que deberías haber memorizado son las que tendrás que hacer cuando algo se estropee y todo el mundo esté pisándote los talones para que la red vuelva a funcionar. Las cosas del día a día tienden a variar según lo que estén haciendo sus máquinas Linux en su red.

Creo que hay algunas habilidades que son bastante importantes.

  • Debe poder configurar la red utilizando solo herramientas cli como ifconfig, route e ip.

    • Algunas veces un cliente llamó diciendo que su máquina Linux había fallado. Les hice arrancar un livecd. Pero el servidor estaba en una red sin DHCP (era DHCP). Una vez que se inició el sistema, necesito guiarlos para iniciar la red y SSH para poder conectarme de forma remota y ayudarlos a diagnosticar y reparar lo que estaba roto.
    • Es posible que se encuentre en un punto en el que no pueda acceder a Internet y necesitará saber cómo conectarse.
  • Creo que deberías saber cómo hacer una copia de seguridad completa del sistema usando tar, rsync o dd. Si no sabe cómo hacer una copia de seguridad y restaurar cosas, es casi seguro que no debería tocar los sistemas. También debe asegurarse de realizar copias de seguridad antes de realizar cambios en el sistema.

  • Creo que deberías saber cómo acceder a los sistemas de archivos desde un livecd en tus servidores. Esto significa que debe saber cómo activar LVM y unidades basadas en Software RAID, acceder a la información de la partición y montar los sistemas de archivos.

    • Si su servidor no se puede iniciar, es posible que necesite acceder al sistema de archivos y arreglar algo. Será bastante doloroso tratar de descubrir cómo montar las cosas en caso de emergencia. Esté preparado con anticipación.
  • Debe estar lo suficientemente familiarizado con el proceso de arranque para poder cambiar cosas durante el arranque. La mayoría de los sistemas usan GRUB, pero es posible que te encuentres con LILO.
    • Es importante saber cómo iniciar en diferentes niveles de ejecución, como usuario único.
  • Creo que deberías tener al menos un conocimiento práctico de cómo realizar algunas capturas básicas con tcpdump y poder leer los resultados. Todas las funciones interesantes de la GUI en Wireshark son buenas, pero si algo se rompe, es posible que no puedas acceder a Wireshark.
    • Hay una gran cantidad de problemas de red que pude identificar y resolver rápidamente simplemente ejecutando tcpdump.

Respuesta2

Sepa qué herramientas tiene

Nunca lo sabrástodocon anticipación. Pero tupodersaber con qué tienes que trabajar. Cuantas más herramientas conozca, más podrá utilizar. Si sabe qué es la herramienta, qué hace y dónde encontrar más información sobre ella, entonces es suficiente para empezar.

Familiarízate realmente con las manpáginas. No es necesario que los memorices, pero sí debes saber dónde encontrar lo que buscas. manLas páginas son mejores que Google para buscar detalles de sintaxis, ya que las páginas instaladas en un sistema determinado reflejan las diversas peculiaridades o información específica de la versión que corresponde al sistema que está mirando.

Si usa apachemucho, le recomiendo aprender la sintaxis de configuración de Apache. Si lo usas nginxen su lugar, entonces aprende eso. Pero de cualquier manera, debes saber qué son ambos y en qué se diferencian.

Herramientas de sistema

Existen algunas herramientas que le ayudarán sin importar qué tipo de trabajo de administrador de sistemas esté realizando. Suponiendo que conoce los conceptos básicos, como chmod, mount, etc., aquí hay algunas herramientas muy útiles que algunos administradores no entienden lo suficientemente bien:

  • sincronización
  • sar/iostato(parte del paquete sysstat)
  • setfacl/getfacl(la mayoría de los administradores piensan que chmod/chown es todo lo que tienes para trabajar)
  • curl y/o wget
  • iptables
  • quién / último / w

Línea de comando Ninja

Yo diría que una comprensión sólida de los scripts de shell hace maravillas para hacer que las cosas difíciles sean rápidas y fáciles. Si tiene que buscar la sintaxis, es probable que no lo haga en absoluto, por lo que saberlo de antemano es fundamental.

Por ejemplo, digamos que tiene un directorio lleno de mysqldumparchivos ".sql", cada uno de los cuales representa una base de datos que debe importarse al servidor. ¿Importas los 35 manualmente? Si está razonablemente familiarizado con las secuencias de comandos de Shell, es realmente rápido y fácil simplemente escribir un comando y luego ir a tomar un café:

Nota: lo dividí en líneas separadas para facilitar la lectura; Si dejas el punto y coma, puedes ponerlo todo en una línea. De lo contrario, no se necesitan puntos y coma al final de cada línea.

 for FILE in *.sql; do 
   NAME=${FILE%.sql}; 
   mysql -e "create database $NAME"; 
   mysql $NAME < $FILE; 
 done

Además, recomiendo repasar el uso sed. Piense en ello como una forma de aplicar expresiones regulares en cualquier lugar.http://www.grymoire.com/Unix/Sed.html

Supongamos que cambió su número de teléfono y necesita actualizar todas sus páginas web en consecuencia (y guardar una copia de seguridad en caso de que se equivoque).

sed -i.bak 's/555-1234/555-4321/' *.html

Saber cómo encadenar adecuadamente las herramientas existentes para hacer cosas nuevas también puede resultar muy útil. Digamos que necesita hacer lo mismo que arriba, pero también buscar dentro de los subdirectorios.

find public_html -name '*.html' -print0 | xargs -0 sed -i.bak 's/555-1234/555-4321/'

También es útil tener algo de experiencia con perl. Puede que no necesite escribir ningún programa serio con él, pero fue diseñado para hacer muchas de las cosas que sedhace awk, sólo que quizás con un poco más de flexibilidad.

Perl se puede utilizar para hacer magia en la línea de comandos usando la -eopción. Usando con -p, -ny -i, puede escribir rápidamente filtros simples para hacer cosas realmente útiles. Por ejemplo, digamos que necesita encontrar la dirección IP de todos los que accedieron a "/admin.php" en septiembre:

perl -ne '
  /([^ ]+).*\[..\/Sep\/2010.*\] "GET \/admin.php / and print "$1\n"' < access_log

¿Ver? Eso no estuvo tan mal. Como administrador del sistema, se espera que usted sepa cómo hacer estas cosas.

Respuesta3

Soy un administrador de Windows que incursiona un poco en Linux, por lo que no estoy en condiciones de responder la pregunta directamente. Sin embargo, en mi opinión, una vez que tenga una comprensión decente de los conceptos básicos, lo más importante que un administrador debe saber, independientemente del sistema operativo, esdóndeycómopara encontrar las respuestas.

Respuesta4

Hay algunas cosas que NECESITAS saber absolutamente.

Necesita tener un buen conocimiento de su shell (cómo analiza los argumentos, cómo expande los comodines, dónde están los casos de esquina molestos).

Debe poder editar archivos sin que X11 se ejecute.

Debe poder montar y desmontar sistemas de archivos.

Debe tener la capacidad de absorber nueva información rápidamente. Porque estas son las habilidades que necesitas cuando toda la granja de servidores de la empresa colapsa y solo tienes acceso a través de un pequeño servidor de consola (es decir, "consola", como en el puerto serie) y/o una conexión VPN muy lenta (lo que hace que cualquier cosa basada en X11 también doloroso). Y sucederá, así que planifíquelo.

información relacionada