O que um administrador Linux deve saber de cabeça?

16

Não sou administrador do sistema, mas tenho bons conhecimentos de Linux, Unix, Windows e hardware.

Quais são os tópicos mais necessários que um administrador do Linux precisa saber de cor (no momento de poder consertar, configurar, resolver isso sem ter que ler o manual ao máximo; verificar as páginas de manual comuns a qualquer distribuição) )?

O foco que eu gostaria de definir para isso seria da rede da empresa à administração do servidor, que pode ter alguns recursos iguais, na maioria das vezes também tem outros. Por exemplo, nem sempre você verá um servidor FTP para um servidor da empresa, mas provavelmente verá o Samba na maioria das vezes ...

Não estou dizendo "livro que você deve ler" ou coisas assim, mas eu quis dizer os recursos mais necessários que provavelmente serão necessários em sua vida diária como administrador do Linux.

Gostar:

  1. Kernel, iptables
  2. Sendmail, Postfix, qmail, exim
  3. Lula, Samba, NFS, LDAP
  4. Apache, ngxix, lighthttpd
  5. vsftpd, proftpd
  6. ligar
  7. Problemas diários enfrentados
  8. Qual é o recurso que você mais usou durante o dia

Esta não é uma lista em ordem nem a mais necessária. Apenas cita algo que veio à minha cabeça.

PS: Eu já tenho o conhecimento básico, mas não tenho uma experiência diária em campo. Eu tive servidores, fiz algumas redes e assim por diante. Além disso, tenho até conhecimento profundo em algumas partes dele. Eu só queria atualizar isso aqui, como eu disse que isso é mais uma LISTA DIÁRIA DE UMA VIDA DO SYSADMIN DO LINUX.

Eu apreciaria se vocês / moças pudessem listar tópicos e, por exemplo, qual campo é o mais usado ou importante para memorizar.

Se você acha que minha pergunta não é adequada, informe-me e eu a excluirei ou, se você achar que está em forma, mas precisar ser re-trabalhada mais, informe-me também e tentarei o meu melhor.

Prix
fonte

Respostas:

19

Tem certeza de que se importa com as coisas do dia-a-dia? Pessoalmente, acho que as coisas que você deve ter memorizado são as que você precisa fazer quando algo está quebrado e todo mundo está respirando pelo seu pescoço para recuperar a rede. As coisas do dia-a-dia tendem a variar de acordo com o que suas caixas Linux estão fazendo na sua rede.

Eu acho que existem algumas habilidades que são muito importantes.

  • Você deve poder configurar a rede usando apenas ferramentas CLI, como ifconfig, route e ip.

    • Algumas vezes um cliente ligou dizendo que sua caixa Linux falhou. Eu os fiz inicializar um livecd. Mas o servidor estava em uma rede sem DHCP (era o DHCP). Depois que o sistema foi inicializado, preciso orientá-los na inicialização da rede e do SSH para que eu possa conectar-me remotamente e ajudá-los a diagnosticar e corrigir o que foi quebrado.
    • Você pode estar em um ponto em que não pode acessar a Internet e precisará saber como ficar online.
  • Eu acho que você deve saber como fazer um backup completo do sistema usando tar, rsync ou dd. Se você não sabe como fazer um backup e restaurar as coisas, certamente não deve tocar nos sistemas. Você também precisa garantir que os backups sejam feitos antes de fazer alterações no sistema.

  • Eu acho que você deve saber como acessar os sistemas de arquivos de um livecd em seus servidores. Isso significa que você deve saber como ativar as unidades baseadas em LVM e RAID de software, acessar informações da partição e montar os sistemas de arquivos.

    • Se o seu servidor não for inicializável, pode ser necessário acessar o sistema de arquivos e corrigir alguma coisa. Será muito doloroso tentar descobrir como realmente montar as coisas em uma emergência. Esteja preparado com antecedência.
  • Você deve estar familiarizado o suficiente com o processo de inicialização para poder mudar as coisas na inicialização. A maioria dos sistemas usa o GRUB, mas você pode executar o LILO.
    • Importante, saiba como inicializar em diferentes níveis de execução, como usuário único.
  • Eu acho que você deve ter pelo menos um conhecimento prático de como fazer algumas capturas básicas com o tcpdump e poder ler os resultados. Todos os bons recursos da interface gráfica do usuário no Wireshark são bons, mas se algo estiver quebrado, talvez você não consiga acessar o Wireshark.
    • Há um grande número de problemas de rede que eu consegui identificar e resolver rapidamente executando o tcpdump.
Zoredache
fonte
Very nice pontos feitos sobre a questão de rede e sistema de arquivos apreciar a resposta :)
Prix
Are you really sure you care about the day-to-day things?mmmmm, mas inst problemas que acontecem parte da vida cotidiana de um? que o levará a recursos usados, por exemplo, na rede ifconfig dhcp, como você disse ... depurando em que nível o problema acontece etc.
Prix
10
Bons pontos. Também nessa linha: você deve conhecer o básico do editor vi. Independentemente se você usar joe, Pico, emacs ou MS Word para a sua edição diária, aqueles que não estará disponível em um sistema de resgate, e vi é diferente ;)
Sven
11
Obrigado, estava procurando uma desculpa para passar mais tempo aprendendo que: q! comando no vi.
tovare
nano e vi / vim geralmente são universalmente disponível, embora eu tenha visto sistemas apenas com nano
Fahad Sadah
11

Saiba quais ferramentas você possui

Você nunca saberá tudo antes do tempo. Mas você pode saber com o que tem que trabalhar. Quanto mais ferramentas você souber, mais poderá usar. Se você sabe o que é a ferramenta, o que ela faz e onde encontrar mais informações sobre ela, isso é bom o suficiente para começar.

Familiarize-se realmente com as manpáginas. Você não precisa memorizá-los, mas deve saber onde encontrar o que está procurando. manas páginas são melhores que o Google para procurar detalhes de sintaxe, pois as páginas instaladas em um determinado sistema refletem as várias peculiaridades ou informações específicas da versão que correspondem ao sistema que você está visualizando.

Se você usa apachemuito, recomendo aprender a sintaxe de configuração do apache. Se você usar nginx, aprenda isso. De qualquer forma, você deve saber o que são e como são diferentes.

Ferramentas do sistema

Existem algumas ferramentas que ajudarão você, independentemente do tipo de trabalho do administrador de sistemas que você está fazendo. Supondo que você saiba o básico, como chmod, mountetc., aqui estão algumas ferramentas muito úteis que alguns administradores não entendem bem o suficiente:

  • rsync
  • sar / iostat (parte do pacote sysstat)
  • setfacl / getfacl (a maioria dos administradores acha que chmod / chown é tudo o que você precisa para trabalhar)
  • enrolar e / ou wget
  • iptables
  • quem / ultimo / w

Linha de comando Ninja

Eu diria que uma sólida compreensão do script de shell faz maravilhas para tornar as coisas difíceis rápidas e fáceis. Se você precisar procurar a sintaxe, é provável que não consiga fazê-lo, portanto, saber com antecedência é fundamental.

Por exemplo, digamos que você tenha um diretório cheio de mysqldumparquivos ".sql", cada um representando um banco de dados que precisa ser importado para o servidor. Você importa todos os 35 manualmente? Se você estiver familiarizado com scripts de shell, é muito rápido e fácil digitar apenas um comando e depois tomar um café:

Nota: divido-o em linhas separadas para facilitar a leitura; se você deixar o ponto-e-vírgula dentro, poderá colocar tudo em uma linha. Caso contrário, os pontos e vírgulas não serão necessários no final de cada linha.

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

Além disso, eu recomendo atualizar o uso sed. Pense nisso como uma maneira de aplicar expressões regulares em qualquer lugar. http://www.grymoire.com/Unix/Sed.html

Digamos que você alterou seu número de telefone e precisa atualizar todas as suas páginas da Web de acordo (e salve uma cópia de segurança para o caso de estragar).

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

Saber como encadear adequadamente as ferramentas existentes para fazer coisas novas também pode ser realmente útil. Digamos que você precise fazer o mesmo que acima, mas também pesquise dentro dos subdiretórios -

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

Também é útil ter alguma experiência com perl. Você pode não precisar de escrever quaisquer programas sérios com ele, mas ele foi projetado para fazer um monte de coisas que sede awkfazer, talvez apenas um pouco mais flexível.

Perl pode ser usado para fazer mágica na linha de comando usando a -eopção Usando com -p, -ne -i, você pode rapidamente escrever filtros simples de fazer coisas realmente úteis. Por exemplo, suponha que você precise encontrar o endereço IP de todos que acessaram "/admin.php" em setembro:

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

Vejo? Isso não foi tão ruim. Como administrador do sistema, você deve saber como fazer isso.

tylerl
fonte
+1 @tylerl pontos muito bons feitos aqui ... eu costumo usar perl para definir a maioria das coisas que preciso fazer com a linha de comando e posso garantir que você sabe que essas são obrigatórias! Você se importaria de postar alguns problemas que você costuma executar também? eu gostaria de ler sobre isso também, depois de ler a resposta do Zoredache, descobri que muitas coisas úteis aparecem nessas. Muito apreciado !
Prix
9

Sou um administrador do Windows que se interessa um pouco pelo Linux, por isso não estou em posição de responder à pergunta diretamente. No entanto, na minha opinião, uma vez que você tenha uma compreensão decente do básico, a única coisa mais importante que um administrador precisa saber, independentemente do sistema operacional, é onde e como encontrar as respostas.

John Gardeniers
fonte
A mineração de informações é uma das minhas principais habilidades. Eu o uso constantemente no curso do dever.
sysadmin1138
bem, eu já tenho o conhecimento básico, mas não tenho uma experiência diária em campo, tive servidores, fiz algumas redes e, além disso, ainda tenho algum conhecimento profundo em partes dele ... mas eu gostaria para melhorar mais este conhecimento com o que é realmente usado diariamente por um SYSADM Linux e de lá saber mais ... estou mais focada em obter uma lista vida diária fora deste :)
Prix
2

Além das outras respostas:

Eu acho que você também deve saber como lidar com os processos:

  • conhecimento básico onde encontrar coisas em / proc
  • ps, top, vmstat e alguns de seus spin-offs mais sofisticados (ntop, htop etc.)
  • saber interpretar a saída de pelo menos uma boa ferramenta de monitoramento como nagios (pode ser um exagero) ou munin.

Eu acho que você não precisa dominar o sed (eu sei que pelo menos não), eu consigo conviver com um dos greps (grep, egrep, zgrep, etc) facilmente. Você precisa conhecer a sintaxe básica da expressão regular.

Eu acho que você deve conhecer comandos básicos para manipular e / ou monitorar o MTA (postfix ou exim) e o MDA (dovecot, cyrus, courier) se você mantiver um servidor de correio. Mesmo se você não executar um, precisará executar testes básicos de SMTP em um MTA, apenas para problemas de entrega local.

Você deve conhecer o caminho que o sistema de autenticação está usando (PAM, LDAP). Onde suas senhas são armazenadas? usando quais procedimentos? Quais aplicativos usam quais mecanismos de autenticação?

Jaspe
fonte
iotop :) uma ferramenta tão boa que não consigo viver sem o ps também ... Sim, são esses comandos ou uma linguagem como perl, python, php que você pode executar a partir da linha de comando, fazendo o que precisa.
Prix
2

Há algumas coisas que você absolutamente precisa saber.

Você precisa ter um bom entendimento do seu shell (como ele analisa argumentos, como ele expande curingas, onde estão os casos de canto niggly).

Você deve poder editar arquivos sem o X11 em execução.

Você deve poder montar e desmontar sistemas de arquivos.

Você deve ter a capacidade de absorver novas informações rapidamente. Como essas são as habilidades que você precisa quando o farm de servidores da empresa inteira travou e você só tem acesso através de um servidor de console piddly (que é "console" como na porta serial) e / ou uma conexão VPN muito lenta (tornando qualquer coisa baseada no X11 também doloroso). E isso vai acontecer, então planeje isso.

Vatine
fonte
2

Os exemplos dados são ótimas respostas relacionadas ao servidor .. no entanto .. A administração do sistema nunca é 100% de computadores .. Eu gostaria que fosse!

Você também tem que lidar com pessoas, no nosso caso, isso significa Manglement, Lusers, Contractors and Suppliers .. arg ^ n

As habilidades de atendimento ao cliente, sabendo como falar sobre o que você precisa / deseja / deve fazer, obter informações para outras pessoas, documentação, são essenciais para manter o seu emprego no administrador de sistemas.

Se você deseja que seus projetos sejam financiados e usados: Não adianta tentar obter um novo servidor se você não souber pedir o dinheiro, se você não tiver os números / alternativas / plano de DR / cotações / plano de implementação etc .. A política do escritório é um B ** CH, o dinheiro é sempre: "apertado" .. o que quer que isso signifique .. não afeta os carros da empresa executiva, mas afetará a segurança e a capacidade de padronização do site, se possível imprima neles suas razões.

Eu diria a coisa mais importante a lembrar: NÃO CONFIE NO QUE UM USUÁRIO DIZ . Lembre-se disso ao atender o telefone. Não importa o que eles digam, você ainda terá que descobrir por si mesmo, porque, em última análise, é o seu traseiro, não o deles, e eles geralmente não fazem ideia. Só porque eles podem montar um parágrafo carregado de chavão para enganar seu chefe, não significa que eles realmente sabem o que acabaram de dizer.

Outros pensamentos:

  • Verifique se você tem tempo suficiente no no-break para desligar tudo quando a energia falhar

  • Monitoramento, certifique-se de que SABE que caiu .. não espere os lusers telefonarem.

  • BACKUPS BACKUPS BACKUPS .. sistemas multiusuário são propensos a horas extras se você não tiver um bom sistema de backup .. horas extras são ruins (não para o seu bolso, mas para o seu orçamento e aparência de profissionalismo).

  • NUNCA MUDE QUALQUER COISA NA SEXTA-FEIRA, ou no dia anterior ao feriado .. você será chamado no final de semana, terá que consertá-lo, terá um tempo muito ruim ..

  • Padronize e automatize ... o máximo que você puder! Se você pode escrever, por que não?

  • Descobrir como usar / instalar um sistema de helpdesk, fazer com que os usuários registrem chamadas por meio dele, permitirá rastrear suas atividades, fornecer aos superiores incentivos para pagar mais pelo trabalho que você faz e gravar suas respostas (defacto KB) .. ao mesmo tempo em que informa o usuário sobre o progresso. Garante que as consultas / problemas do usuário não se percam no dilúvio. (Spiceworks é gratuito, existem muitos outros)

  • Eu comprei uma cópia de: A Prática da Administração de Sistemas , por Limoncelli, eu altamente recomendo.

Grizly
fonte
1

Um administrador do Linux precisa entender completamente as permissões de arquivo , bem como o uso de ferramentas como su e sudo , chmod e chown etc., como adicionar um usuário a um grupo ou criar novos usuários, como conceder privilégios de SSH a certos usuários ou grupos.

thomasrutter
fonte
0

Precisa ser rápido com um editor na linha de comando.

Logan
fonte
0

Aprenda sed, grepe awk: muito do que faço diariamente como administrador de sistemas Linux é uma lista enorme de arquivos / computadores / usuários / etc. e transforme a entrada em outro conjunto de saídas para outro programa usar.

Um exemplo concreto disso é pegar uma lista de computadores danificados, digamos, bugzilla ou RT, separar todas as informações estranhas que eu rapidamente copiei e colei em um documento de texto usando uma dessas três ferramentas acima e depois produzi uma lista delimitada por espaço de um monte de nós nos quais eu preciso fazer o SSH.

Além disso, você definitivamente precisará conhecer os limites superiores do shell que está usando. Com mais frequência, se você precisar separar vários arquivos antigos, provavelmente encontrará uma pasta com mais de 30k arquivos. rm *não funcionará, pois o asterisco será expandido para uma lista com mais de 30 mil entradas, e o shell que você está usando provavelmente não poderá manter uma lista desse tamanho. A maneira como você resolver isso é com xargs: em vez de rm *, você pode usar ls | xargs -i{} rm {}, que irá trabalhar.

Christian Paredes
fonte
0

Como administrador de sistemas, considero-me um médico digital (ou, dependendo do dia, às vezes um cirurgião de cérebro de classe mundial).

Quando tudo funcionar, você terá tempo de sobra para aprimorar suas próprias habilidades e os sistemas que administra.

Quando algo falhar, você precisará diagnosticar o problema imediatamente e perceber como corrigi-lo.

Portanto, você precisa aprender / memorizar o básico (e também até certo ponto os internos) dos servidores e aplicativos que você administra. Digamos que sua empresa hospede um site com a raiz da web sendo veiculada no NFS. De repente, todos os nós do www começam a alarmar e o site para de responder. O que suspeitar? Ah-ha! O servidor NFS acabou de funcionar e o cluster de failover também não funcionou por algum motivo.

Outro aspecto importante a ser aprendido é a carga básica dos servidores que você administra. Aprenda a memorizar sua carga média, uso de CPU, uso de memória e coisas assim. OK, você não precisa memorizar tudo isso - os gráficos criados com o Cacti ou o net-snmp + mrtg podem ajudar muito, mas se o seu pager alarmar sobre o servidor X se comportar de maneira estranha e ao mesmo tempo o helpdesk ligar para você, informando sobre outras servidor ou serviço, você pode combinar essas duas coisas e consertar a coisa antes mesmo de olhar para os registros, histórico de alarmes ou gráficos.

Prepare-se também para o pior: pense no que você faria se todo o datacenter fosse bloqueado devido à falta de energia. Como você inicializaria tudo depois que a eletricidade estivesse novamente disponível? O que você faria se algo não fosse iniciado? Como você restauraria backups? Ou o que você faria se alguém o alertasse sobre um cracker que acabou de invadir seus servidores? (Esse tipo de coisa deve ser documentado como uma lista de verificação, mas é bom ter algum tipo de intuição também)


E, como mencionado por outros, continue e escreva as coisas que devem ser executadas (semi-) automaticamente. Aprenda e brinque com o shell / Perl, eles realmente são seus melhores amigos e muitas vezes podem resolver problemas muito complexos com apenas alguns comandos juntos.

Janne Pikkarainen
fonte