¿Qué conocimientos necesitan aprender los principiantes para realizar la operación y el mantenimiento de Linux?
1. Conceptos básicos del sistema Linux
Estrictamente hablando, Linux no es un sistema operativo, sino un núcleo del sistema Linux, que es la plataforma de comunicación entre el software y el hardware de la computadora; El nombre completo de Linux es GNU/Linux, que es un verdadero sistema Linux. GNU es un proyecto organizado por Richard Stallman. Los programadores de todo el mundo pueden transformar los programas GNU cumpliendo con el acuerdo GPL, permitiendo que cualquiera pueda realizar cambios. Sin embargo, el programa modificado debe cumplir con el acuerdo GPL.
Linux es un sistema operativo multiusuario y multitarea. También es un software gratuito, totalmente compatible con los estándares POSIX, tiene una buena interfaz de usuario, admite múltiples arquitecturas de procesador y es fácil de trasplantar.
El software que asigna recursos del sistema a los programas y maneja los detalles internos de la computadora se llama sistema operativo o kernel. Si desea obtener más información sobre los conceptos del sistema operativo, consulte el Tutorial del sistema operativo.
Los usuarios interactúan con el kernel de Linux a través del Shell. Shell es una herramienta de interpretación de línea de comandos (un software) que convierte los comandos ingresados por el usuario a un lenguaje (comandos) que el kernel puede entender.
2. Servicios de red
Hay muchos tipos de servicios, y cada empresa utilizará unos diferentes, pero debes dominar los servicios básicos, como FTP, DNS, SAMBA, correo electrónico. , etc. Sólo se necesitan unos pocos para aprenderlo.
De hecho, no tienes que preocuparte demasiado por los servicios de red. Generalmente, el entorno de la empresa ya está configurado. Incluso si hay un nuevo servidor o te piden que hagas rectificaciones, la empresa. Tendrá los documentos correspondientes para que pueda consultarlos y no se confundirá. Ven, pero al menos la configuración relevante debe ser familiar y debe compilarse e instalarse mucho. Esos módulos deben estar familiarizados con sus funciones, especialmente PHP. módulos.
Estos dos puntos son sólo la base y las condiciones necesarias. No se puede decir que sean herramientas. Las siguientes son las verdaderas herramientas que hay que dominar.
3. Shell script y otro lenguaje de scripting
Shell es imprescindible para el personal de operación y mantenimiento. Si no lo entiende, ni siquiera podrá unirse al trabajo. Al menos necesita escribir algunos scripts de administración del sistema. Lo más simple es escribir un script que supervise la proporción de CPU y memoria. No crea que puede escribir sobre adivinar números y calcular números. Estos no sirven de nada y solo sirven para aprender. Escribir guiones del sistema es lo más significativo.
Shell es la interfaz de usuario del sistema y proporciona una interfaz para que los usuarios interactúen con el kernel. Recibe comandos ingresados por el usuario y los envía al kernel para su ejecución.
De hecho, el Shell es un intérprete de comandos que interpreta los comandos ingresados por el usuario y los envía al kernel. No sólo eso, Shell tiene su propio lenguaje de programación para editar comandos, lo que permite a los usuarios escribir programas compuestos por comandos de Shell. El lenguaje de programación Shell tiene muchas características de los lenguajes de programación ordinarios, como las estructuras de bucle y las estructuras de control de ramas. Los programas Shell escritos en este lenguaje de programación tienen el mismo efecto que otras aplicaciones.
Linux proporciona una interfaz de entrada de comandos visual como Microsoft Windows: la interfaz gráfica de usuario (GUI) de X Window. Proporciona una gran cantidad de sistemas de entorno de escritorio, que funcionan igual que Windows, con ventanas, íconos y menús, y toda la administración se controla mediante el mouse. GNOMO.
Cada usuario del sistema Linux puede tener su propia interfaz de usuario o Shell para satisfacer sus propias necesidades especializadas de Shell.
Al igual que el propio Linux, existen muchas versiones diferentes de Shell. Existen principalmente las siguientes versiones de Shell:
Bourne Shell: desarrollado por Bell Labs.
BASH: Es el Shell Bourne Again de GNU y es el shell predeterminado en el sistema operativo GNU.
Korn Shell: Es un desarrollo de Bourne SHell y es compatible con Bourne Shell en la mayoría de aspectos.
C Shell: Es la versión BSD del Shell de SUN.
Z Shell: ¡El último caparazón que necesitarás! Z es la última letra, que es el caparazón definitivo. Integra las características importantes de bash y ksh, al tiempo que agrega sus propias características únicas.
El otro lenguaje de scripting es opcional, generalmente 3P, es decir, Python, Perl y PHP no necesitan ser considerados. A menos que quieras desarrollar, personalmente recomiendo aprender Python. Es difícil realizar operaciones y mantenimiento automatizados. Perl es muy poderoso para el procesamiento de textos. De todos modos, aprenda uno de estos dos.
4. Herramientas Sed y awk
Debes dominarlas. Mientras dominas estas dos herramientas, también debes dominar las expresiones regulares. Esto es lo más difícil de aprender. Expresión, pero será muy poderosa cuando se combine con sed y awk. Es muy útil al procesar contenido de texto y filtrar contenido WEB. Sin embargo, a menudo se usa en combinación al aprender shell, por lo que aprenderá después del punto 3. Punto 4 por cierto.
5. Los comandos de procesamiento de texto
sort, tr, cut, paste, uniq, tee, etc. deben aprenderse y deben aprenderse junto con el punto 3.
6. Base de datos
MySQL es la primera opción. No me pregunten por qué no aprendo SQL Server y Oracle, porque MySQL definitivamente se usa más en Linux. Debes aprender a agregar, eliminar, modificar y consultar, y especialmente debes aprender a familiarizarte con la consulta. Es posible que no la necesites en otros aspectos, porque el personal de operación y mantenimiento es el que más utiliza la consulta y tú no lo estarás. autorizado a realizar declaraciones de optimización y desarrollo.
MySQL es un sistema de gestión de bases de datos relacionales desarrollado por la empresa sueca MySQL AB y actualmente es un producto de Oracle. MySQL es uno de los sistemas de gestión de bases de datos relacionales más populares. En términos de aplicaciones WEB, MySQL es el mejor software de aplicación RDBMS (Sistema de gestión de bases de datos relacionales).
MySQL es un sistema de gestión de bases de datos relacionales. Una base de datos relacional almacena datos en diferentes tablas en lugar de colocar todos los datos en un gran almacén, lo que aumenta la velocidad y la flexibilidad.
El lenguaje SQL utilizado por MySQL es el lenguaje estandarizado más utilizado para acceder a bases de datos. El software MySQL adopta una política de licencia dual y se divide en versión comunitaria y versión comercial. Debido a su pequeño tamaño, alta velocidad, bajo costo total de propiedad y especialmente a las características de código abierto, MySQL generalmente se elige como la base de datos del sitio web. Desarrollo de sitios web pequeños y medianos.
Debido al excelente rendimiento de su versión comunitaria, puede formar un buen entorno de desarrollo con PHP y Apache.
7. Firewall
No puedes hacerlo sin aprender. El firewall también es un punto difícil de decir, fácil de decir, pero lo más importante es. entender las reglas. A los amigos que han aprendido CCNA les puede resultar más fácil de aprender, porque iptables también tiene una tabla NAT, el principio es el mismo y la tabla de filtro es la que más se usa. Si no la aprende, definitivamente fallará.
8. Herramientas de monitoreo
Es muy importante, personalmente sugiero que sea mejor aprender estos tres, cactus, nagios y zabbix. Las empresas deberían usar nagios y zabbix con mayor frecuencia. De todos modos, aprenda ambos, pero nagios es un poco difícil porque implica escribir monitoreo automático con scripts, lo cual es difícil.
Zabbix es una solución de código abierto de nivel empresarial basada en una interfaz WEB que proporciona funciones de monitoreo distribuido de sistemas y monitoreo de red.
Zabbix puede monitorear varios parámetros de red para garantizar el funcionamiento seguro del sistema del servidor y proporciona un mecanismo de notificación flexible para permitir a los administradores del sistema localizar/resolver rápidamente varios problemas existentes.
Cacti es un conjunto de herramientas de análisis gráfico de monitorización del tráfico de red desarrolladas en base a PHP, MySQL, SNMP y RRDTool.
Cacti obtiene datos a través de snmpget y utiliza RRDtool para dibujar gráficos, y no es necesario comprender los complejos parámetros de RRDtool.
Proporciona funciones muy poderosas de administración de datos y usuarios. Puede especificar que cada usuario pueda ver la estructura del árbol, el host y cualquier imagen. También se puede combinar con LDAP para la autenticación del usuario. Al mismo tiempo, también puede agregar plantillas. La función es muy potente y completa. Interfaz amigable. El desarrollo del software Cacti se basa en hacer que el uso del software sea más conveniente para los usuarios de RRDTool. Además del monitoreo básico del tráfico Snmp y de la información del sistema, Cacti también puede conectar scripts y agregar plantillas para crear una variedad de gráficos de monitoreo.
9. Clustering y copia de seguridad en caliente
Esto es muy importante y debes entenderlo, pero cuando llegues a la empresa, no podrás hacerlo, porque los novatos lo harán. Básicamente no te dejo tocarlo. Hay muchas herramientas de clúster. La mejor es LVS, que es imprescindible. También es mejor aprender el clúster nginx y el proxy inverso. También existe el modo de espera en caliente, que se puede lograr con más herramientas. Por ejemplo, mi empresa desarrolla herramientas de espera en caliente por sí misma. También es necesario aprender el modo de espera en caliente de MySQL, que es la replicación maestro-esclavo. , pero en realidad no es fácil. Tienes que aprenderlo. Comprender todo el proceso no es nada fácil y seguirlo no es nada divertido.
10. Copia de seguridad de datos
No puedes hacerlo sin aprender. Hay muchas herramientas, pero al menos debes comprender los principios de RAID, especialmente 1+0 o . 1, que son las más utilizadas por las empresas. Debe hacer sus propios experimentos para descubrirlo. Hay muchas herramientas de respaldo, como tar, dump, rsync, etc. Es mejor aprender más sobre ellas.