Sepa qué herramientas tiene
Nunca lo sabrás todo antes de tiempo. Pero se puede saber lo que tiene que trabajar. Cuantas más herramientas conozca, más podrá usar. Si sabe qué es la herramienta, qué hace y dónde encontrar más información al respecto, entonces es lo suficientemente bueno para comenzar.
Familiarízate realmente con las manpáginas. No tiene que memorizarlos, pero debe saber dónde encontrar lo que está buscando. manlas páginas son mejores que Google para buscar detalles de sintaxis, ya que las páginas instaladas en un sistema dado reflejan las diversas peculiaridades o información específica de la versión que corresponde al sistema que está viendo.
Si usa apachemucho, le recomiendo aprender la sintaxis de configuración de apache. Si usa nginxen su lugar, aprenda eso en su lugar. Pero de cualquier manera, debes saber qué son y cómo son diferentes.
Herramientas de sistema
Hay algunas herramientas que lo ayudarán sin importar qué tipo de trabajo de administrador de sistemas esté haciendo. Suponiendo que conoce los conceptos básicos, como chmod, mountetc., aquí hay algunas herramientas muy útiles que algunos administradores no entienden lo suficientemente bien:
- rsync
- sar / iostat (parte del paquete sysstat)
- setfacl / getfacl (la mayoría de los administradores piensan que chmod / chown es todo con lo que tienes que trabajar)
- rizo y / o wget
- iptables
- quien / ultimo / w
Línea de comando Ninja
Diría que una comprensión sólida de las secuencias de comandos de shell hace maravillas para hacer que las cosas difíciles sean rápidas y fáciles. Si tiene que buscar la sintaxis, lo más probable es que no lo haga en absoluto, por lo que conocerlo con anticipación es fundamental.
Por ejemplo, supongamos que tiene un directorio lleno de mysqldumparchivos ".sql", cada uno de los cuales representa una base de datos que debe importarse al servidor. ¿Importan los 35 de forma manual? Si está razonablemente familiarizado con las secuencias de comandos de shell, es realmente rápido y fácil simplemente escribir un comando y luego ir a tomar un café:
Nota: Lo dividí en líneas separadas para facilitar la lectura; Si deja los puntos y comas, puede ponerlo todo en una línea. De lo contrario, no se necesitan puntos y comas al final de cada línea.
for FILE in *.sql; do
NAME=${FILE%.sql};
mysql -e "create database $NAME";
mysql $NAME < $FILE;
done
Además, recomiendo repasar el uso sed. Piense en ello como una forma de aplicar expresiones regulares en cualquier lugar. http://www.grymoire.com/Unix/Sed.html
Supongamos que cambió su número de teléfono y necesita actualizar todas sus páginas web en consecuencia (y guardar una copia de seguridad en caso de que se equivoque).
sed -i.bak 's/555-1234/555-4321/' *.html
Saber cómo encadenar adecuadamente las herramientas existentes para hacer cosas nuevas también puede ser realmente útil. Digamos que necesita hacer lo mismo que antes, pero también buscar dentro de subdirectorios:
find public_html -name '*.html' -print0 | xargs -0 sed -i.bak 's/555-1234/555-4321/'
También es útil tener algo de experiencia perl. Es posible que no necesite escribir programas serios con él, pero fue diseñado para hacer muchas de las cosas que hacer sedy awkhacer, solo tal vez un poco más flexible.
Perl se puede usar para hacer magia de línea de comandos usando la -eopción. Usando con -p, -ny -i, puede escribir rápidamente filtros simples para hacer cosas realmente útiles. Por ejemplo, supongamos que necesita encontrar la dirección IP de todos los que accedieron a "/admin.php" en septiembre:
perl -ne '
/([^ ]+).*\[..\/Sep\/2010.*\] "GET \/admin.php / and print "$1\n"' < access_log
¿Ver? Eso no estuvo tan mal. Como administrador del sistema, se espera que sepa cómo hacer estas cosas.