4 votos

Confundirse con hacerlo sys admin con python o no

Yo estaba haciendo copias de seguridad en bash y he escrito algunos otros scripts de bash así. Yo quería cambiar a python, porque necesitaba aprender python para las técnicas de IA y siempre estaba retrasando. Como tengo que hacer sys admin cosas muy a menudo, así que pensé que si hago las cosas en python, a continuación, va a hacer bueno en python. Ahora estoy confundido con algunas cosas

1)he visto que puedo hacer cosas en 1 línea en bash, pero en python necesito escribir 15 líneas de código para que .e,g el archivo tar de copia de seguridad. sed, awk puede filtrar archivos en línea donde en python que tengo que escribir muchas más líneas. Así que mi pregunta voy en camino equivocado. Es python realmente utilizada para la administración de sistemas cosas o no. Para mí es como hacer un 5 páginas estáticas del sitio web en J2EE vez en formato html.

2)yo quiero saber ¿por qué debería persona elija python si bash puede hacer de todo. Sólo estoy hablando de pelea de sys admin cosas.

Así que necesito saber que soy más de matar a mí mismo tratando de usar python o es sólo porque todavía estoy aprendiendo que me estoy encontrando difícil?

Sólo quiero saber si python que realmente significaba para esas cosas, como copias de seguridad, la comprobación de los archivos de registro, etc.

7voto

Bacon Bits Puntos 1384

Python es un propósito general de secuencias de comandos de lenguaje como Perl. Significa que es la más poderosa herramienta de scripting bash, pero también significa que la sintaxis en general va a ser más detallado y escribir secuencias de comandos será más complicado. Scripts de Bash tienen la ventaja de ser de dominio específico, y eso significa que hacer un montón de suposiciones que hacen la mayoría de las tareas más fáciles. Sin embargo, si los supuestos bash ha hecho que no se ajustan a la tarea que tiene que hacer, puede que tenga que ir por el camino largo de todo para hacer que las cosas funcionen de la manera que usted los necesita.

Esta es la misma pregunta que Windows administradores de sistemas utilizan para enfrentar al tratar con la escritura en lote o VBScript. PowerShell que ayuda a aliviar un poco, pero todavía se enfrentan a la cuestión de "¿esta tarea lo suficientemente complejo para requerir PowerShell, o es una secuencia de comandos por lotes suficientemente bueno para hacer el trabajo de forma fiable?".

En realidad, no depende de la tarea que usted necesita hacer. Si una tarea es más fácil para usted para escribir y mantener en Python, el uso que. Si bash es en realidad muy simple, el uso que. Lenguajes de secuencias de comandos son herramientas. El uso de ellos como tales. Utilice la herramienta de la que mejor se adapte a los requisitos de su tarea.

Cuando estoy escribiendo un guión, tengo una lista de comprobación mental:

  1. ¿Qué es exactamente la tarea que estoy tratando de lograr? El primer paso es siempre definir el problema.
  2. Qué idioma es más rápido para mí escribir este guión? Mi tiempo es valioso.
  3. Que lenguaje es mejor para alguien más para leer, comprender, y el apoyo para esta tarea? Otras personas tiempo es valioso, demasiado.
  4. El idioma que se va a dar lugar a la más robusta, más fiable, o más solución a largo plazo? Quiero escribir esto de una vez y que se fija para siempre.
  5. Hay algo que hace que un lenguaje inapropiado? Python o PowerShell no estar disponible, o la voluntad de ciertos módulos de no ser instalado? Mi archivo de proceso por lotes o un script de bash llamar a los programas que no están garantizados para estar presente y que no puedo mantener con el script?

3voto

Red Tux Puntos 1666

Estás pidiendo algo pregunta retórica aquí. Es como preguntar ¿por qué alguien tiene diferentes socket establece en su caja de herramientas cuando un socket set iba a funcionar. Cada herramienta (en este caso de un programa/lenguaje/entorno de secuencias de comandos) tiene sus propias fortalezas y debilidades. Por ejemplo ¿por qué el uso de Puppet (Escrito en Ruby) cuando CFEngine (Escrito en C, creo) hace la misma cosa?

Una de las mayores ventajas de un lenguaje de secuencias de comandos a través de una shell de medio ambiente es la legibilidad (ofuscado Perl no obstante). También puede ser mucho más fácil de hacer en el lenguaje de manipulación de cadenas. En Bash por ejemplo, usted puede necesitar hacerse eco de su cadena de sed/awk/grep para analizarlo, pero en Python/Ruby/Perl tiene regex y la manipulación de cadenas integradas. También la comunicación con sockets remotos podría ser más fácil que tener que escribir una secuencia de comandos alrededor de curl, wget o netcat. También lenguajes de secuencias de comandos no necesitan un tenedor para hacer su procesamiento. Ejemplo:

myvar=$(echo "my string" | grep string | cut -d"" -f 3)

Que daría como resultado la creación de tres tenedores que en vez de ralentizar el sistema.

Parte inferior de la línea de Python fue diseñado para cubrir una necesidad, y debido a que tiene sus fortalezas y debilidades. La diferencia entre un gran sys-admin y un mediocre sys-admin es que conocer las fortalezas de las distintas herramientas. El aprendizaje de Python es una buena idea, pero no es el tamaño se ajusta a todos los de la herramienta.

3voto

coredump Puntos 9198

Yo soy administrador de sistemas y un programador python. Lo que yo suelo hacer es pensar en el futuro y el peso de lo que voy a hacer para lograr algo en bash y python, y, a continuación, utilizando la mejor herramienta para el trabajo (el que me da más velocidad/potencia). Una no excluye a la otra, echa un vistazo a la de python os módulo y verás que hay muchas cosas que pueden ayudar en la administración del sistema.

Como una regla general (la que yo uso, YMMV): si usted tendrá que ejecutar una gran cantidad de comandos que va a ser mejor con bash, y si va a tener que hacer el formateo y cálculos a partir de archivos de texto en python será mejor.

También, usted dice que usted está aprendiendo python así que le sugiero que atenerse a lo que usted sabe mejor que la primera. Obtener algunos de los proyectos de prueba de rodadura para obtener la intimidad con python y cuando usted consigue mejor en él podrás ver que naturalmente tienden a hacer las cosas en bash o python de acuerdo a la complejidad de lo que quieres hacer.

2voto

Puddingfox Puntos 442

Como administrador de sistemas que utiliza python y bash con frecuencia, puedo decir que a veces tengo la misma pregunta que haces. En general (muy general) me reconsiderar seriamente el uso de python para sysadmin cosas cuando me doy cuenta de que se necesitan múltiples open() o comandos de la necesidad de importación de subproceso (o similar) si puedo implementar en python. Dicho esto, a veces python es más fácil para usted para añadir funciones adicionales más adelante. En muchas ocasiones he escrito algo que yo pensaba que era simple en bash, luego reelaborado en python (o cualquier lenguaje de programación) porque me di cuenta de que era mucho más complejo de lo que pensaba.

Realmente es usted como el programador para decidir. No se descarta un método si usted no sabe cómo a pesar de que -- si usted puede aprender de la experiencia, ¿por qué no?

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: