Herramientas que un administrador de Unix no puede vivir sin [cerrado]

33

Después de administrar servidores Unix o similares a Unix, ¿qué herramientas (preferiblemente de línea de comandos) cree que no puede vivir sin ellas?

John T
fuente

Respuestas:

51

Pantalla GNU : esencial cuando gestiona una gran cantidad de sistemas y no desea tener una docena de ventanas de terminal abiertas.

Murali Suriar
fuente
34

Algunos sé que no puedo vivir sin ...

  • tee: permite la escritura simultánea en STDOUT (salida estándar) y un archivo. Excelente para ver información y registrarla para más tarde.

  • top: el administrador de tareas de UNIX, ofrece una excelente visión general del sistema.

  • tail -f: le permite ver datos adjuntos a medida que crece un archivo, ideal para monitorear archivos de registro en un servidor.

  • grep: impresión de expresión regular global, ideal para buscar datos en el sistema en archivos.

  • df: informa el uso del disco de los sistemas de archivos actuales.

  • du: informa el uso del disco de un determinado archivo / directorio.

  • menos: ¡se necesita para ver páginas de manual! También es útil para ver la salida de comandos de una manera fácil de buscar.

  • vim / Emacs / nano / pico / ed: cualquiera que sea el editor de texto que elija, explica por sí mismo por qué es necesario.

John T
fuente
Para aquellos que no saben, 'menos' es una versión actualizada de 'más'. more era limitante porque solo podía moverse hacia adelante sobre un archivo, mientras que less también puede desplazarse hacia atrás. Ah the humor ... :-)
Iain Holder
8
Otra característica útil pero poco conocida de less es que siempre puedes usar el comando 'v' para comenzar a editar el archivo que estás viendo actualmente. Mnemonic es 'v' para 'vi'.
dr-ene
Y si no te gusta moreo less, siempre puedes intentarlo most.
drybjed 01 de
Mi PAGER preferido ahora es en realidad w3m. Tiene todas las características de less, y puede funcionar como un navegador web en modo de texto :-) También he usado una función bash para usar vim en modo de solo lectura (de esta manera obtengo diferencias de color muy agradables, por ejemplo). La función bash se usa solo para decidir si se proporciona '-' (para leer el stdin) o no (en caso de que estemos paginando un archivo). Funciona como un encanto, a excepción de las páginas de manual, donde nroff hace overstrike ...
njsf
1
htopes una versión "mejor" de top.
Alexander Bird
26

lsof para determinar qué procesos están usando un archivo o directorio (útil cuando se trata de averiguar qué impide que un dispositivo se desmonte)

netstat para determinar qué procesos están utilizando conexiones de red (especialmente útil cuando se trata de averiguar qué demonio está vinculado a un determinado puerto)

revs erichui
fuente
1
Si tiene lsof, no necesita netstat. Solo use lsof -i
vartec
lsof -n es mi invocación favorita. Lo canalizo a grep para reducirlo
Matt Simmons el
19

Aprenda todas las herramientas básicas, pero aprenda Perl.

Perl es ideal para manipular texto, y dado que los operadores un * x viven en archivos de texto, canalizaciones, entradas y salidas, Perl es una excelente opción.

La ventaja adicional es que Perl es multiplataforma y si tiene que trabajar un poco en un cuadro de Windows, tiene un idioma fácilmente instalable (simplemente suelte un directorio de Perl en el servidor) que ya conoce.

Y en ese tren de pensamiento, consigue a Cygwin también. Si usted es un administrador de un * x y tiene que trabajar en un cuadro de Windows (incluso su escritorio) con ls, rm, grep, sed, tail, etc., le ahorrará mucho tiempo al cambiar de sistema operativo.

Mark Nold
fuente
18
  • sed
  • awk

Los abuelos olvidados de los scripts de sistemas modernos. Sé que Perl recibe la mayor parte del amor (junto con las secuencias de comandos Bash, Python, Ruby e [inserte su lenguaje de secuencias de comandos favorito aquí]), y no me malinterpreten, amo a Perl. Lo uso casi a diario.

Pero sed y awk no deben ser olvidados, pasados ​​por alto o ignorados. Para muchos casos, sed y awk son las mejores herramientas para el trabajo. Ejemplos rápidos son el filtrado de la línea de comandos con sed y el procesamiento de registro rápido y sucio con awk. Ambos podrían hacerse en Perl, pero requerirán más tiempo de trabajo y desarrollo.

Christopher Cashell
fuente
13

rsync, especialmente en concierto con ssh. Permite una copia simple y eficiente de archivos de host a host. ¿Cómo nos las arreglamos sin ssh y rsync? :-)

dr-jan
fuente
12

Netcat.

  • Prueba si los servicios TCP están escuchando.
  • Realice transacciones contra protocolos de texto sin formato como SMTP.
  • Transferencias rápidas e inseguras de datos entre máquinas.
  • Emulación de cliente Telnet.

La red navaja suiza, como dicen.

Dan Carley
fuente
Recientemente comencé a usar socat como reemplazo de netcat y me sorprendió la cantidad de opciones que le brinda. Definitivamente vale la pena echarle un vistazo, a pesar de la cantidad aterradora de interruptores y la sintaxis extraña.
Marcin
12

Acéptelo: tarde o temprano también se ocupará de la red. mtr , tcpdump y tshark son realmente útiles para ver lo que está sucediendo.

pQd
fuente
9

Para scripts rápidos, automatización, etc.

  • golpetazo
  • perl

Para conectarse a su servidor * NIX:

  • Abrir SSH (cliente de Linux)
  • Masilla (cliente de Windows)
Colin
fuente
+1 para ... bueno, todo realmente, pero Perl especialmente. * nix, Windows o Mac, no puedo imaginar lo que haría sin él.
John Gardeniers
9

Utilizo la mayoría de las herramientas ya enumeradas, pero aquí hay una que nadie ha tocado todavía:

Puppet - sistema para automatizar tareas de administración del sistema

Shaun Hess
fuente
6

La mayoría de los estándares están incluidos en otras respuestas, así que iré para los no estándar:

  • htop : ideal para la gestión de procesos;
  • pinfo : navegador similar a Lynx para obtener información y páginas de manual.
vartec
fuente
6

Un par de herramientas útiles que aún no he visto mencionadas:

  • dstat --nocolor (descripción general de cpu-, disk-, net-use)
  • iftop (buena descripción dinámica del tráfico de red)
  • ccze ( archivos de registro de color muy bien)
  • túneles ssh (puede ser útil de vez en cuando; consulte el manual; -R)
  • esperar (automatizar interfaces interactivas y de diálogo hablador, agradable si estás en apuros)
asjo
fuente
+1 "tail -f <file> | ccze" = forma increíble de leer los archivos de registro.
Lin
+1 paraexpect
Alexander Bird
+1 para dstat. El mejor reemplazo para vmstat, iostat, etc.
Christopher Cashell el
5

ClusterSSH

ClusterSSH controla varias ventanas xterm a través de una única ventana de consola gráfica para permitir que los comandos se ejecuten interactivamente en varios servidores a través de una conexión ssh.

Tom Feiner
fuente
... y como ClusterSSH está escrito en Perl, quizás debería aprender Perl.
Brad Gilbert
¿Cuál es la diferencia entre ClusterSSH y pantalla GNU? ¿O son implementaciones diferentes del mismo concepto?
Alexander Bird
4

vmstat 1

Le ofrece una excelente visión general del comportamiento del sistema.

Cawflands
fuente
4

pv: muestra el progreso de operaciones largas que se pueden redirigir. http://www.ivarch.com/programs/pv.shtml

Es útil, entonces, desea monitorear algo que llevará años, como copiar / comprimir un dispositivo de bloque sin procesar a través de la red (que es cómo tomo copias de seguridad de paranoia de mi netbook de 8 Gb antes de jugar con algo importante como ajustar la configuración del sistema de archivos).

Además: voy a votar en segundo lugar por ssh, rsync, screen, htop y netcat como se mencionó anteriormente, todo lo cual es más importante que pv pero aún no se ha mencionado pv. De hecho, pv es a menudo una adición útil cuando se conectan cosas desde o hacia netcat.

David Spillett
fuente
pvpuede ser una herramienta útil, pero tenga cuidado de usarla en exceso. Pasar los datos a través de ellos tiene un impacto en el rendimiento (todos los datos deben pasar a través de otro programa). En mi último trabajo, hicimos mucho procesamiento de registros. Uno de los muchachos decidió comenzar a poner pv en todos los scripts de procesamiento de registros, hasta que descubrimos que agregaba aproximadamente un 15% al ​​tiempo de procesamiento para ellos. Ahora solo se usa para trabajos que demoran menos de unos minutos o que tienen una limitación de recursos existente (como cruzar una conexión de red lenta).
Christopher Cashell el
Buen punto Christopher, aunque nunca lo he visto causar un cambio de rendimiento de hasta un 15% (por otra parte, la mayor parte de lo que uso pves para el disco o la red de E / S en lugar de CPU / memoria). El mismo argumento es la clave contra el uso excesivo de catdemasiado (a veces uso cat cuando en realidad no es necesario solo para que las cosas se lean bien de izquierda a derecha, pero la copia de datos en memoria adicional a través de la tubería y el cambio de contexto puede tener un impacto medible en el rendimiento).
David Spillett el
Sí, yo hago lo mismo. La mayor parte de mi catuso excesivo proviene de comenzar cat foo, seguido de presionar la flecha "arriba" y luego agregar | [command]a mi línea anterior. Sé que estoy recibiendo un golpe de rendimiento (pequeño) al mantener al gato allí, pero dejarlo requiere menos esfuerzo que reescribir / volver a escribir el comando [command] < foo. No es una preocupación para (la mayoría) del trabajo de línea de comandos ad hoc, pero no es ideal para scripts (lo mismo que creo que siento pv).
Christopher Cashell
4

ssh, Vim, htop, su, Python, ls, cd, screen, du, tar :)

maciek
fuente
3

sudo.

En serio, sin embargo, tail -fes útil.

Sophie Alpert
fuente
si quieres tail -f, te encantarámultitail
Marcin
3

Algunos que no se han mencionado antes:

  • la cabeza de la cola
  • diff
  • pstree
  • alquitrán
  • gzip / bzip
  • reloj
CK.
fuente
+1 pstree es bastante dulce.
Lin
3

tubo de alquitrán!

canalizar la salida de tar a otra utilidad, a tar que se ejecuta en la misma caja, o a tar que se ejecuta sobre SSH es mi movimiento favorito de Unix de la vieja escuela para mover archivos de un lugar a otro.

Esto también le brinda la opción de estilo Windows de copiar una carpeta a otra y terminar con todos los archivos en el directorio de origen y de destino.

Jason Luther
fuente
3

iotop, es un programa superior para monitorear los accesos de E / S a sus discos.

Emilio
fuente
Solo disponible en los núcleos más nuevos, pero extremadamente agradable.
Sean Reifschneider
3

La mayoría de estas herramientas se hacen mucho más potentes utilizando Bash "finalización programable", por lo que puede completar con pestañas cosas como opciones de línea de comandos o decir el nombre de un paquete con "apt-get install". También limitará lo que complete con pestañas para los archivos relevantes; por ejemplo, "descomprimir" solo completará los archivos de almacenamiento admitidos.

Realmente son los perros callejeros: si nunca lo has probado, probablemente solo necesites tocar tu .bashrc:

if [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
 fi

Ciertamente, esto es cierto en Ubuntu y Debian. Es posible que necesite obtener el paquete en algunas distribuciones de Linux.

Tom Newton
fuente
2

Algunas cosas pasaron por alto que quería mencionar.

  • vim -d diff de consola de pantalla dividida que hace que sea muy fácil ver las diferencias en un archivo
  • pdsh le permite ejecutar fácilmente un comando en tantos sistemas como desee en serie o en paralelo (soy un administrador de clúster. No puedo funcionar sin él).
  • nmon es como la parte superior del crack. Le da una gran idea de lo que está sucediendo en un sistema en una sola pantalla. Puede ver E / S de disco, uso de CPU de E / S de red y uso de memoria en tiempo real. Al menos, es algo realmente divertido para jugar cuando se perfila un sistema.

Ah, y se me olvidó mencionar que, al hacer scripts, creo que siempre deberías usar Korn. Odio a Korn (no a la banda. Me encanta la banda :-P) pero está literalmente en todas partes. Puede tomar un script y moverlo entre Solaris, AIX y Linux y no tener que preocuparse por si el administrador tuvo la decencia de instalar Bash.

Jackalheart
fuente
2

Una herramienta a veces muy útil es nohup. Lo uso para ejecutar scripts que duran mucho tiempo usando clientes SSH remotos.

jplourenco
fuente
2

man - para leer las páginas man.

elinks - para revisar google, porque estoy seguro que no puedo recordarlo todo.

Y atención al detalle y la tenacidad, porque sin ellos solo pierdo el tiempo.

pjd
fuente
+1 para atención al detalle y tenacidad
cop1152
2

La pantalla es imprescindible, especialmente con un buen archivo .screenrc. Lo tengo configurado para mostrar visualmente en qué ventana estoy y puedo moverme entre ellos con Ctrl + Flecha. Para una sola sesión ssh y múltiples shells, es un salvavidas.

Nasko
fuente
2

  • vi
  • encontrar
  • ssh
  • AWK
  • sed
  • netcat
  • alquitrán
  • PD

  • Maxwell
    fuente
    2

    Me encanta AWK y "for" en la línea de comandos.

    Especialmente para construir una lista de comandos que quiero ejecutar y luego ejecutarlos todos a la vez.

    Brian G
    fuente