Ferramentas que um administrador Unix não pode viver sem [fechado]


33

Após administrar servidores Unix ou Unix-like, quais ferramentas (preferencialmente na linha de comando) você sente que não pode viver sem?

Respostas:


51

Tela GNU - essencial quando você gerencia um grande número de sistemas e não deseja ter uma dúzia de janelas de terminal abertas.


34

Alguns sei que não posso viver sem ...

  • tee - permite gravação simultânea em STDOUT (saída padrão) e um arquivo. Ótimo para visualizar informações e registrá-las para mais tarde.

  • top - o gerenciador de tarefas do UNIX, oferece uma ótima visão geral do sistema.

  • tail -f - permite visualizar dados anexados à medida que um arquivo cresce, ótimo para monitorar arquivos de log em um servidor.

  • grep - Impressão de expressão regular global, excelente para pesquisar dados no sistema no sistema.

  • df - relata o uso do disco dos sistemas de arquivos atuais.

  • du - relata o uso do disco de um determinado arquivo / diretório.

  • menos necessário para visualizar as páginas de manual! também é útil para visualizar a saída de comandos de uma maneira facilmente procurável.

  • vim / Emacs / nano / pico / ed - qualquer que seja o seu editor de texto preferido, explique por que é necessário.


Para quem não sabe, 'less' é uma versão atualizada de 'more'. more era limitador porque você só podia avançar sobre um arquivo, enquanto menos também pode retroceder. Ah o humor ... :-)
Iain Titular

8
Outro recurso útil, mas pouco conhecido, é que você sempre pode usar o comando 'v' para começar a editar o arquivo que está vendo no momento. Mnemônico é 'v' para 'vi'.
dr-janeiro

E se você não gosta moreou less, pode sempre tentar most.
drybjed

Meu PAGER preferido agora é realmente w3m. Ele tem todos os recursos de less e pode funcionar como um navegador da Web em modo de texto :-) Eu também usei uma função bash para usar o vim no modo somente leitura (desta forma, obtém diferenças de cores agradáveis, por exemplo). A função bash é usada apenas para decidir se deve ser fornecido '-' (para ler o stdin) ou não (no caso de estarmos paginando um arquivo). Funciona como um encanto, com exceção de páginas man, onde nroff faz overstrike ...
njsf

1
htopé uma versão "melhor" do top.
Alexander Ave

26

lsof para determinar quais processos estão usando um arquivo ou diretório (útil ao tentar descobrir o que está impedindo que um dispositivo seja desmontado)

netstat para determinar quais processos estão usando conexões de rede (especialmente útil ao tentar descobrir qual daemon está vinculado a uma determinada porta)


1
Se você tem lsof, não precisa do netstat. Basta usar lsof -i
vartec

lsof -n é minha invocação favorita. I canalizá-lo para grep para condensá-las
Matt Simmons

19

Aprenda todas as ferramentas básicas, mas aprenda Perl.

O Perl é ideal para manipular texto, e como os operadores un * x vivem em arquivos de texto, pipes, entrada e saída, o Perl é um ótimo ajuste.

O bônus adicional é que o Perl é multiplataforma e, se você precisar fazer algum trabalho em uma caixa do Windows, terá uma linguagem facilmente instalável (basta soltar um diretório Perl no servidor) que você já conhece.

E nessa linha de pensamento, pegue Cygwin também. Se você é um administrador un * x e precisa trabalhar em uma caixa do Windows (até mesmo na sua área de trabalho) com ls, rm, grep, sed, tail etc, economiza muito tempo ao trocar de SO.


18
  • sed
  • awk

Os avós esquecidos do script de sistemas modernos. Eu sei que o Perl adquire a maior parte do amor (junto com os scripts Bash, Python, Ruby e [insira sua linguagem de script favorita aqui]), e não me interpretem mal, eu amo o Perl. Faço uso quase diariamente.

Mas sed e awk não devem ser esquecidos, esquecidos ou ignorados. Em muitos casos, sed e awk são as melhores ferramentas para o trabalho. Exemplos rápidos são a filtragem de linha de comando com sed e o processamento rápido e sujo de logs com awk. Ambos podem ser feitos em Perl, mas exigirão mais tempo de trabalho e desenvolvimento.


13

rsync, especialmente em conjunto com o ssh. Ele permite a cópia eficiente e simples de arquivos de um host para outro. Como lidamos com o ssh e o rsync? :-)


12

Netcat.

  • Teste se os serviços TCP estão escutando.
  • Realize transações em protocolos de texto sem formatação, como SMTP.
  • Transferências de dados inseguras rápidas entre máquinas.
  • Emulação de cliente Telnet.

A rede canivete suíço, como eles dizem.


Recentemente, comecei a usar o socat como substituto do netcat e fiquei impressionado com o número de opções que ele oferece. Definitivamente vale a pena conferir, apesar da quantidade assustadora de opções e sintaxe estranha.
Marcin

12

Encare isso - mais cedo ou mais tarde você também lidará com a rede. mtr , tcpdump e tshark são realmente úteis para ver o que está acontecendo.


9

Para scripts rápidos, automação, etc:

  • bater
  • perl

Para se conectar ao seu servidor * NIX:

  • SSH aberto (cliente Linux)
  • Massa (cliente Windows)

+1 para ... bem, tudo realmente, mas especialmente Perl. * nix, Windows ou Mac, não consigo imaginar o que faria sem ele.
John Gardeniers

9

Eu uso a maioria das ferramentas já listadas, mas aqui ninguém tocou ainda:

Puppet - sistema para automatizar tarefas de administração do sistema



6

A maioria dos padrões está incluída em outras respostas, então eu vou para os não-padrão:

  • htop - ótimo para gerenciamento de processos;
  • pinfo - lynx como navegador para informações e páginas de manual.

6

Algumas ferramentas úteis que ainda não vi mencionadas:

  • dstat --nocolor (visão geral do uso de CPU , disco e rede)
  • iftop (boa visão dinâmica do tráfego de rede)
  • ccze (arquivos de log coloridos)
  • túneis ssh (pode ser útil de vez em quando; consulte o manual; -R)
  • expect (automatize interfaces de diálogo interativas e tagarelas, bom se você estiver preocupado)

+1 "tail -f <file> | ccze" = maneira incrível de ler arquivos de log.
Lin

+1 paraexpect
Alexander Bird

+1 para dstat. Melhor substituto para vmstat, iostat, etc.
precisa saber é o seguinte

5

ClusterSSH

O ClusterSSH controla várias janelas xterm por meio de uma única janela gráfica do console para permitir que os comandos sejam executados de maneira interativa em vários servidores através de uma conexão ssh.


... e como o ClusterSSH está escrito em Perl, talvez você deva aprender Perl.
238 Brad Brad Gilbert

Qual é a diferença entre a tela ClusterSSH e GNU? ou são implementações diferentes do mesmo conceito?
Alexander Ave

4

vmstat 1

Oferece uma ótima visão geral do comportamento do sistema.


4

pv: exibe o progresso de operações longas que podem ser redirecionadas. http://www.ivarch.com/programs/pv.shtml

Útil, então, você deseja monitorar algo que vai levar muito tempo, como copiar / compactar um dispositivo de bloco bruto pela rede (que é como eu tiro backups de paranóia do meu netbook de 8Gb antes de mexer em algo importante, como ajustar as configurações do sistema de arquivos).

Além disso: vou votar em segundo lugar para ssh, rsync, screen, htop e netcat, como mencionado pelas pessoas acima - todos os quais são mais importantes que pv, mas pv ainda não foram mencionados. De fato, o pv é frequentemente uma adição útil ao canalizar coisas de ou para o netcat.


pvpode ser uma ferramenta útil, mas cuidado com o uso excessivo. Passar os dados por ele absolutamente tem um impacto no desempenho (todos os dados precisam passar por outro programa). No meu último trabalho, fizemos muito processamento de log. Um dos caras decidiu começar a colocar o pv em todos os scripts de processamento de log, até descobrirmos que isso adicionava cerca de 15% ao tempo de processamento para eles. Agora, ele é usado apenas para tarefas que levam menos de alguns minutos ou que possuem uma limitação de recursos existente (como atravessar uma conexão de rede lenta).
Christopher Cashell

Bom ponto Christopher, embora eu nunca tenha visto isso causar uma alteração de desempenho de 15% (mais uma vez, a maior parte do que eu uso pvé no limite de E / S de disco ou de rede, em vez de limite de CPU / memória). O mesmo argumento é a chave contra o uso excessivo cattambém (às vezes eu uso o gato quando na verdade não é necessário apenas para fazer com que as coisas sejam lidas da esquerda para a direita, mas os dados extra na memória que copiam através do pipe e da alternância de contexto podem ter um impacto mensurável no desempenho).
David Spillett

Sim, eu faço a mesma coisa. A maior parte do meu catuso excessivo vem do começo cat foo, seguido pela seta "para cima" e, em seguida, adiciono | [command]à minha linha anterior. Eu sei que estou sofrendo um (pequeno) desempenho mantendo o gato lá, mas deixá-lo exige menos esforço do que reescrever / redigitar o comando [command] < foo. Não é uma preocupação para (a maioria) o trabalho de linha de comando ad hoc, mas não é ideal para scripts ( pvacho que é o mesmo que eu acho).
Christopher Cashell

4

ssh, Vim, htop, su, Python, sl, cd, tela, du, alcatrão :)



3

Alguns que não foram mencionados antes:

  • cabeça / cauda
  • diff
  • pstree
  • alcatrão
  • gzip / bzip
  • ver

+1 pstree é bem legal.
Lin

3

tubo de alcatrão!

canalizar a saída do tar para outro utilitário, tar na mesma caixa ou tar sobre SSH é o meu movimento favorito do Unix da velha escola para mover arquivos de um lugar para outro.

Isso também oferece a opção no estilo do Windows de copiar uma pasta para outra e terminar com todos os arquivos no diretório de origem e destino.




3

A maioria dessas ferramentas é muito mais poderosa usando o Bash "conclusão programável" - para que você possa concluir a tabulação, como opções de linha de comando, ou dizer o nome de um pacote com "apt-get install". Ele também limitará o que você preenche com guias em arquivos relevantes - por exemplo, "descompactar" apenas conclui os arquivos compactados.

São realmente as vira-latas - se você nunca experimentou, provavelmente precisará mexer no seu .bashrc:

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

Certamente isso é verdade no Ubuntu e Debian. Pode ser necessário obter o pacote em algumas distribuições Linux.



2

Algumas coisas esquecidas eu queria mencionar.

  • diff do console de tela dividida vim -d que facilita a visualização das diferenças em um arquivo
  • O pdsh permite que você execute facilmente um comando em todos os sistemas que você deseja, seja em série ou em paralelo (eu sou um administrador de cluster. Não posso funcionar sem ele.)
  • nmon é como top em crack. Ele fornece uma ótima idéia do que está acontecendo em um sistema em uma única tela. Você pode ver E / S de disco, uso de CPU de E / S de rede e uso de memória em tempo real. No mínimo, uma coisa divertida de se brincar ao criar um perfil de um sistema.

Ah, e eu esqueci de mencionar, ao criar scripts, acredito que você sempre deve usar o Korn. Eu odeio Korn (não a banda. Eu amo a banda :-P), mas está literalmente em todo lugar. Você pode pegar um script e movê-lo entre Solaris, AIX e Linux e não precisa se preocupar se o administrador teve ou não a decência de instalar o Bash.


2

Uma ferramenta às vezes muito útil é o nohup. Eu o uso para executar scripts que duram muito tempo usando clientes SSH remotos.


2

man - para ler as páginas do manual.

elinks - para verificar o google, porque com certeza não consigo me lembrar de tudo.

E atenção aos detalhes e tenacidade, porque sem eles eu apenas perco tempo.


+1 para a atenção aos detalhes e tenacidade
cop1152

2

A tela é uma obrigação, especialmente com um bom arquivo .screenrc. Eu o configurei para exibir visualmente em qual janela estou e posso mover-se entre eles com Ctrl + Seta. Para uma única sessão ssh e várias conchas, é um salva-vidas.



2

Eu amo AWK e também "for" na linha de comando.

Especialmente para criar uma lista de comandos que quero executar e executá-los todos de uma vez.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.