La administración de sistemas Linux se describe mejor como la automatización de la administración de sistemas Linux. A veces estas herramientas son tuyas y sólo tuyas. Otras veces, las utilidades se comparten con otras personas de tu equipo, se envían o se ofrecen como un servicio. Esto proviene de la comprensión más casual de la filosofía UNIX: Usar herramientas pequeñas, creadas a propósito, y unirlas de maneras nuevas, poderosas e inesperadas. Pueden ser comandos complejos, que se convierten en scripts de una línea, que se convierten en scripts de varias líneas. Algunos scripts los guardará y compartirá, otros los olvidará en su próxima pausa para el café.
No puedo lanzar frases como filosofía UNIX sin recordar una época en la que no todo era Linux, o incluso cuando todos los sistemas Linux de los que uno podía ser responsable eran la misma distro. La única confianza que tengo en el futuro es que será diferente. Por lo tanto, algunos trucos históricos para la portabilidad -hacia adelante y hacia atrás- son necesarios, especialmente cuando no cuestan nada.
Te invitamos a leer: Elive: El sistema operativo que desearas tener
Evaluación de las habilidades de administración del sistema Linux
Todo esto viene a decir que cuantas más herramientas estándar conozca, más potentes serán mis comandos desechables, más rápido podré escribirlos y más rápido conseguirán mis clientes resolver sus problemas reales.
1. arch
Es muy común en los scripts de construcción tener que generar, por ejemplo, rutas que describan una plataforma, un entorno de construcción, una ruta de repo de yum, etc. Normalmente, usaría uname -p para obtener el tipo de procesador, pero arch es más rápido de escribir y se autodocumenta. Gracias.
GitHub tiene mucho código en la forma de:
ARCH=$(uname -m)
Todo esto podría ser reemplazado con:
ARCH=$(arch)
2. arpaname
Justo la semana pasada, estaba programando una API para crear registros PTR. Estaba en un rol de Ansible para un IPAM razonablemente conocido, pero si tuviera que hacer una importación masiva con herramientas genéricas de DNS, estaría usando nsupdate. Este comando sería muy útil. Ejemplo de código rápido:
[jwarnica@lappy ~]$ nsupdate <<EOF
update add `arpaname $ipaddr` 86400 IN PTR $(hostname -f).
enviar
EOF
Esto sería bastante fácil de usar dentro de un bucle para cuando yo podría tener un montón de nuevos dispositivos IoT, VMs, o una flota de portátiles para instalar y ya tienen sus nombres de host / IP en un simple archivo CSV o de otra manera los generó.
3. bc
Bash no puede hacer matemáticas de punto flotante, por lo que se necesita una herramienta adicional para el scripting. Dicho esto, bc --expression me hizo pensar en cómo hacer un script de dc, lo cual es, por supuesto, posible.
Olvidaré los detalles antes de usarlo, pero recordaré por siempre este momento "¡ah-ha!" de que dc puede ser guionizado.
Aunque no quiero parecer un profesor de matemáticas de instituto, hay entornos en los que uno no tiene su superordenador de bolsillo a mano o incluso acceso a la gnome-calculadora. O simplemente quiere ahorrarse los cinco segundos y utilizar el dc interactivo sin quitar las manos del teclado para utilizar el ratón o el teléfono.
4. dumpkeys
Uno de mis días anuales de voluntariado es hacer los resultados de una carrera de relevos. Después de años de optimizar la cosa más tonta que funciona, esto es ahora sobre todo la entrada de datos de los tiempos. Con un portátil en mi regazo sentado en un coche, esto es lo opuesto a la ergonomía, pero al menos podría hacerlo con una sola mano mapeando el teclado numérico . a un :. Dentro de X11, xmodmap era la herramienta para este mapeo. Aunque no es una bola de bolos, Canadá sigue haciendo avances en la interacción entre el ser humano y el ordenador.
Ahorrar 10 minutos al año no es razón para aprender una nueva herramienta (¿o sí? -- ed). El mapeo de las teclas podría ser la diferencia entre poder teclear o no. Quizás en la mayoría de los lugares del mundo, el teclado US-104 no es estándar, y/o el idioma local no es el inglés sin acento.
dumpkeys tiene un amigo cercano llamado loadkeys. Juntos hacen que las consolas inutilizables sean utilizables, y todos los instaladores de distribuciones de Linux durante décadas han confiado en ellos.
5. uname
Supuestamente /proc es considerado por los desarrolladores del kernel de Linux como estable, y concederé que /proc/version es probablemente muy estable, pero no confío del todo en ellos. De todos modos, a veces uso sistemas que no tienen el /proc exclusivo de Linux. El comando uname, al ser parte de POSIX, funcionará en cualquier lugar.
Puede que este comando me resulte inútil ahora, porque ahora sé lo que es arch,pero sigue siendo un comando goto para verificar dónde estoy. Y los ejemplos de scripts abundan. Un ejemplo al azar de /etc/profile.d/qt.sh de Fedora:
case `uname -m' in
x86_64 | ia64 | s390x | ppc64 | ppc64le)
QT_PREFIXES="/usr/lib64/qt-3.3 /usr/lib/qt-3.3" ;;
* )
QT_PREFIXES="/usr/lib/qt-3.3 /usr/lib64/qt-3.3" ;;
esac
Resumen
¿Son estas herramientas revolucionarias? En absoluto. Lo que son son bases sólidas y ubicuas para el trabajo diario de millones de personas, y lo serán durante décadas. Eso las convierte en utilidades que vale la pena tener en cuenta la próxima vez que te sientes frente a un sistema Linux.
Te recomendamos leer: Distribuciones de Linux para los principiantes