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.