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

16

No soy administrador del sistema, pero tengo un buen conocimiento de Linux, Unix, Windows y hardware.

¿Cuáles son los temas más necesarios que un administrador de Linux debe saber de memoria? )?

El FOCUS que me gustaría establecer para esto sería 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á algunas diferentes. Por ejemplo, no siempre verá un servidor FTP para el servidor de una empresa, pero probablemente verá Samba la mayor parte del tiempo ...

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

Me gusta:

  1. Kernel, iptables
  2. Sendmail, Postfix, qmail, exim
  3. Calamar, Samba, NFS, LDAP
  4. Apache, ngxix, lighthttpd
  5. vsftpd, proftpd
  6. enlazar
  7. Problemas diarios enfrentados
  8. ¿Cuál es la característica que más usaste durante el día?

Esta no es una lista en orden ni la más necesaria. Simplemente nombra algo que se me ocurrió.

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 profundo conocimiento en algunas partes de él. Solo quería actualizar esto aquí, como dije, es más una LISTA DIARIA DE UNA VIDA DE SYSADMIN DE LINUX.

Les agradecería si ustedes / chicas pudieran enumerar temas y, por ejemplo, qué campo es el más utilizado o importante para memorizar.

Si crees que mi pregunta no es adecuada, házmelo saber y la eliminaré yo mismo o si crees que es adecuada pero necesita una nueva revisión, házmelo saber también y haré todo lo posible.

Prix
fuente

Respuestas:

19

¿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 cosas que tendrás que hacer cuando algo está roto, y todos están respirando por tu cuello para volver a conectar la red. Las cosas del día a día tienden a variar en función de lo que están haciendo sus cajas de 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.

    • Unas pocas veces un cliente ha llamado diciendo que su caja Linux había fallado. Les hice arrancar un livecd. Pero el servidor estaba en una red sin DHCP (era el DHCP). Una vez que se inició el sistema, necesito guiarlos a través del inicio de la red y SSH para poder conectarme de forma remota y ayudarlos a diagnosticar y corregir lo que está roto.
    • Es posible que se encuentre en un punto en el que no pueda acceder a Internet y necesite saber cómo conectarse.
  • Creo que debería saber cómo hacer una copia de seguridad completa del sistema utilizando tar, rsync o dd. Si no sabe cómo hacer una copia de seguridad y restaurar cosas, seguramente no debería tocar los sistemas. También debe asegurarse de que se realicen copias de seguridad antes de realizar cambios en el sistema.

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

    • Si su servidor no se puede iniciar, es posible que deba acceder al sistema de archivos y arreglar algo. Será bastante doloroso tratar de descubrir cómo montar realmente las cosas en una emergencia. Prepárate con anticipación.
  • Debe estar lo suficientemente familiarizado con el proceso de arranque para poder cambiar las cosas en el arranque. La mayoría de los sistemas usan GRUB, pero puede encontrarse con LILO.
    • Es importante saber cómo arrancar en diferentes niveles de ejecución, como un solo usuario.
  • Creo que debería tener al menos un conocimiento práctico de cómo hacer algunas capturas básicas con tcpdump y poder leer los resultados. Todas las buenas características de la GUI en Wireshark son agradables, pero si algo se rompe, es posible que no pueda acceder a Wireshark.
    • Hay una gran cantidad de problemas de red que pude identificar y resolver rápidamente simplemente ejecutando tcpdump.
Zoredache
fuente
Muy buenos puntos sobre el problema de la red y el sistema de archivos agradecen la respuesta :)
Prix
Are you really sure you care about the day-to-day things?mmmmm pero ¿hay problemas que suceden como parte de la vida diaria de uno? que le llevará a las funciones más utilizadas, por ejemplo, la red DHCP ifconfig como dijiste ... debuging a qué nivel el problema suceder, etc
Premio
10
Buenos puntos. También en esa línea: debe conocer los conceptos básicos del editor vi. Independientemente de si usa joe, pico, emacs o MS Word para su edición diaria, estos no estarán disponibles en un sistema de rescate, y vi es diferente ;)
Sven
1
Gracias, estaba buscando una excusa para pasar más tiempo aprendiendo que: q! comando en vi.
Tovare
nano y vi / vim generalmente están disponibles universalmente, aunque he visto sistemas con solo nano
Fahad Sadah
11

Sepa qué herramientas tiene

Nunca lo sabrás todo antes de tiempo. Pero se puede saber lo que tiene que trabajar. Cuantas más herramientas conozca, más podrá usar. Si sabe qué es la herramienta, qué hace y dónde encontrar más información al respecto, entonces es lo suficientemente bueno para comenzar.

Familiarízate realmente con las manpáginas. No tiene que memorizarlos, pero debe saber dónde encontrar lo que está buscando. manlas páginas son mejores que Google para buscar detalles de sintaxis, ya que las páginas instaladas en un sistema dado reflejan las diversas peculiaridades o información específica de la versión que corresponde al sistema que está viendo.

Si usa apachemucho, le recomiendo aprender la sintaxis de configuración de apache. Si usa nginxen su lugar, aprenda eso en su lugar. Pero de cualquier manera, debes saber qué son y cómo son diferentes.

Herramientas de sistema

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

  • rsync
  • sar / iostat (parte del paquete sysstat)
  • setfacl / getfacl (la mayoría de los administradores piensan que chmod / chown es todo con lo que tienes que trabajar)
  • rizo y / o wget
  • iptables
  • quien / ultimo / w

Línea de comando Ninja

Diría que una comprensión sólida de las secuencias de comandos de shell hace maravillas para hacer que las cosas difíciles sean rápidas y fáciles. Si tiene que buscar la sintaxis, lo más probable es que no lo haga en absoluto, por lo que conocerlo con anticipación es fundamental.

Por ejemplo, supongamos que tiene un directorio lleno de mysqldumparchivos ".sql", cada uno de los cuales representa una base de datos que debe importarse al servidor. ¿Importan los 35 de forma manual? 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 deja los puntos y comas, puede ponerlo todo en una línea. De lo contrario, no se necesitan puntos y comas 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 ser realmente útil. Digamos que necesita hacer lo mismo que antes, pero también buscar dentro de 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 perl. Es posible que no necesite escribir programas serios con él, pero fue diseñado para hacer muchas de las cosas que hacer sedy awkhacer, solo tal vez un poco más flexible.

Perl se puede usar para hacer magia de 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, supongamos 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 sepa cómo hacer estas cosas.

tylerl
fuente
+1 @tylerl muy buenos puntos hechos aquí ... ¡a menudo uso perl para concretar la mayoría de las cosas que necesito hacer con la línea de comando y puedo asegurar que sabes que son imprescindibles! ¿Te importaría publicar algunos problemas que usualmente ejecutas también? También me gustaría leer al respecto, después de leer la respuesta de Zoredache, descubrí que en ellos surgen muchas cosas útiles. Muy apreciado !
Premio
9

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, la única cosa más importante que un administrador debe saber, independientemente del sistema operativo, es dónde y cómo encontrar las respuestas.

John Gardeniers
fuente
La minería de información es una de mis principales habilidades. Lo uso constantemente en el curso del deber.
sysadmin1138
bueno, ya tengo el conocimiento básico, pero no tengo una experiencia diaria en el campo, he tenido servidores, he creado algunas redes, y aún más, incluso tengo un conocimiento profundo en algunas partes ... pero me gustaría para mejorar más este conocimiento con lo que realmente se usa a diario para un SysAdm de Linux y a partir de ahí aprender más ... Estoy más enfocado en obtener una lista de vida DIARIA de esto :)
Prix
2

Además de las otras respuestas:

Creo que también debe saber cómo se manejan los procesos:

  • conocimiento básico donde encontrar cosas en / proc
  • ps, top, vmstat y algunos de sus spin-offs más sofisticados (ntop, htop, etc.)
  • sepa cómo interpretar la salida de al menos una buena herramienta de monitoreo como nagios (podría ser exagerado) o munin.

Creo que no necesitas dominar sed (sé que al menos no), me las arreglo con uno de los greps (grep, egrep, zgrep, etc.) fácilmente. Sin embargo, debe conocer la sintaxis básica de las expresiones regulares.

Creo que debe conocer los comandos básicos para manipular y / o monitorear MTA (postfix o exim) y MDA (dovecot, cyrus, courier) si mantiene un servidor de correo. Incluso si no ejecuta uno, tendrá que poder ejecutar pruebas SMTP básicas en un MTA, aunque solo sea por problemas de entrega local.

Debe conocer el sistema de autenticación que está utilizando (PAM, LDAP). ¿Dónde se almacenan sus contraseñas? utilizando qué procedimientos? ¿Qué aplicaciones usan qué mecanismos de autenticación?

Jaspe
fuente
iotop :) una herramienta tan genial que no puedo vivir sin ps también ... Sí, son esos comandos o un lenguaje como perl, python, php que puedes ejecutar desde la línea de comandos haciendo lo que necesitas.
Premio
2

Hay algunas cosas que NECESITA saber.

Debe tener una buena comprensión de su shell (cómo analiza los argumentos, cómo expande los comodines, dónde están los casos de esquina cursi).

Debe poder editar archivos sin ejecutar X11.

Debe poder montar y desmontar sistemas de archivos.

Debe tener la capacidad de absorber nueva información, rápidamente. Debido a que estas son las habilidades que necesita cuando la granja de servidores de toda la empresa falla y solo tiene acceso a través de un servidor de consola (que es "consola" como en el puerto serie) y / o una conexión VPN muy lenta (haciendo cualquier cosa basada en X11 también doloroso). Y sucederá, así que planifícalo.

Vatine
fuente
2

Los ejemplos dados son excelentes respuestas relacionadas con el servidor ... sin embargo ... La administración del sistema nunca es 100% computadoras ... ¡Ojalá lo fuera!

También tiene que tratar con personas, en nuestro caso, eso significa Manglement, Lusers, Contratistas y Proveedores. Arg ^ n

Habilidades de servicio al cliente saber cómo hablar sobre lo que necesita / desea / debe hacer, obtener información para otras personas, documentación, todo es esencial para mantener su trabajo de administrador de sistemas.

Si desea que sus proyectos se financien y utilicen: No tiene sentido tratar de obtener un nuevo servidor si no sabe cómo solicitar el dinero, si no tiene las cifras / alternativas / plan DR / presupuestos / plan de implementación etc. La política de la oficina es un B ** CH, el dinero siempre es "apretado" ... lo que sea que eso signifique ... no afecta a los autos de los ejecutivos, pero afectará la seguridad de su sitio y la capacidad de estandarizar si puede No les imprimas tus razones.

Yo diría lo más importante para recordar: NO CONFÍES EN LO QUE DICE UN USUARIO . Tenlo en cuenta cuando contestes el teléfono ... no importa lo que digan, aún tendrás que resolverlo por ti mismo, porque en última instancia es tu trasero, no el de ellos, y generalmente no tienen idea. El hecho de que puedan armar un párrafo cargado de palabras de moda para engañar a su jefe, no significa que realmente sepan lo que acaban de decir.

Otros pensamientos:

  • Asegúrese de tener suficiente tiempo en el UPS para apagar todo CUANDO la energía falla

  • Monitoreo, asegúrese de que usted sabe que tiene bajado .. no esperar a que los lusers a teléfono.

  • BACKUPS BACKUPS BACKUPS ... los sistemas multiusuario son propensos a horas extras si no tiene un buen sistema de respaldo ... las horas extras son malas (no para su bolsillo, sino para su presupuesto y apariencia de profesionalismo).

  • NUNCA CAMBIE NADA EL VIERNES, o el día antes de un feriado ... lo llamarán durante el fin de semana, tendrá que arreglarlo, lo pasará muy mal ...

  • Estandarice y automatice ... ¡tanto como pueda! Si puedes escribirlo, ¿por qué no?

  • Descubra cómo usar / instalar un sistema de servicio de asistencia, hacer que los usuarios registren las llamadas a través de él, le permitirá realizar un seguimiento de sus actividades, proporcionará a los superiores incentivos para pagarle más por el trabajo que realiza y le permitirá grabar sus respuestas (de facto KB) ... todo mientras informa al usuario del progreso. Asegura que las consultas / problemas de los usuarios no se pierdan en la inundación ... (Spiceworks es gratis, hay muchos otros)

  • Compré una copia de: The Practice of System Administration , de Limoncelli, lo recomiendo encarecidamente.

Grizly
fuente
1

Un administrador de Linux necesita comprender a fondo los permisos de los archivos , así como el uso de herramientas como su y sudo , chmod y chown , etc., cómo agregar un usuario a un grupo o crear nuevos usuarios, cómo otorgar privilegios SSH a ciertos usuarios o grupos

thomasrutter
fuente
0

Necesita ser rápido con un editor en la línea de comando.

Logan
fuente
0

Aprenda sed, grepy awk: mucho de lo que hago a diario como administrador de sistemas Linux es desplegar una gran lista de archivos / computadoras / usuarios / etc. y transforma la entrada en otro conjunto de salidas para que otro programa las use.

Un ejemplo concreto de esto es tomar una lista de computadoras reventadas de, por ejemplo, bugzilla o RT, eliminar toda la información extraña que he copiado y pegado rápidamente en un documento de texto usando una de las tres herramientas anteriores, y luego generar una lista delimitada por espacios de un grupo de nodos en los que necesito SSH.

Además, definitivamente tendrá que conocer los límites superiores del shell que está utilizando. En la mayoría de los casos, si tiene que eliminar un montón de archivos obsoletos, es probable que se encuentre con una carpeta con más de 30k archivos. rm *no funcionará, ya que el asterisco se expandirá a una lista con más de 30,000 entradas, y el shell que está utilizando probablemente no podrá contener una lista de ese tamaño. La forma de resolver esto es con xargs: en lugar de rm *usar ls | xargs -i{} rm {}, lo que funcionará.

Christian Paredes
fuente
0

Como administrador de sistemas, me considero un médico digital (o, dependiendo del día, a veces un cirujano cerebral de clase mundial).

Cuando todo funcione, tendrá mucho tiempo para mejorar sus propias habilidades y los sistemas que administra.

Cuando algo falla, deberá poder diagnosticar el problema de inmediato y darse cuenta de cómo solucionarlo.

Por lo tanto, debe aprender / memorizar los conceptos básicos (y también hasta cierto punto los aspectos internos) de los servidores y aplicaciones que administra. Supongamos que su empresa aloja un sitio web con la raíz web que se sirve a través de NFS. De repente, todos los nodos www comienzan a alarmarse y el sitio deja de responder. ¿Qué sospechar? Ah-ha! El servidor NFS simplemente dejó de funcionar y el clúster de conmutación por error tampoco funcionó por alguna razón.

Otro aspecto importante para aprender es la carga base de los servidores que administra. Aprenda a memorizar su carga promedio, uso de CPU, uso de memoria y cosas por el estilo. OK, no tiene que memorizar todo eso: los gráficos creados con Cacti o net-snmp + mrtg pueden ayudar mucho, pero si su buscapersonas se alarma sobre el comportamiento del servidor X y, al mismo tiempo, el servicio de asistencia lo llama para informarle sobre algún otro el servidor o el servicio se vuelven locos, es posible que pueda combinar esas dos cosas e ir a arreglarlo antes de mirar los registros, el historial de alarmas o los gráficos.

También prepárese para lo peor: piense qué haría si todo el centro de datos se apagara debido al corte de energía. ¿Cómo arrancarías todo después de que la electricidad volviera a estar disponible? ¿Qué harías si algo no se iniciara? ¿Cómo restaurarías las copias de seguridad? ¿O qué harías si alguien te alertara sobre un cracker que acaba de ingresar a tus servidores? (Este tipo de cosas deben documentarse como una lista de verificación, pero también es bueno tener algún tipo de intuición)


Y, como lo mencionaron otros, continúe y escriba las cosas que deberían ejecutarse (semi) automáticamente. Aprende y juega con el shell / Perl, realmente son tus mejores amigos y muy a menudo pueden resolver problemas muy complejos con solo un par de comandos conectados.

Janne Pikkarainen
fuente