
En mis artículos anteriores, presenté el módulo de subproceso de Python, expliqué cómo usarlo y describí cuándo usarlo.Este artículo revisará dos casos de uso diferentes para la biblioteca de subprocesos: ejecutar comandos Bash simples y ejecutar guion bash.
[ Download the Bash cheat sheet to become more efficient at the command line. ]
Ejecute comandos Bash simples usando subproceso
Puede usar el módulo de subproceso para ejecutar comandos Bash simples como mkdir y lsEste ejercicio utilizará Python para analizar un archivo de texto y crear un directorio a partir del contenido de la carpeta.
Primero, clonar repositorio subprocess_demo en su terminal:
git clone Después cd a usecase1.
Debe haber dos archivos: directories.txt y create_directories.py. Este directories.txt El archivo contiene el nombre de la carpeta que está a punto de generar.Este create_directories.py archivo leer contenido directories.txt y use el módulo de subproceso para crear el directorio y mkdirVerificaré el contenido del script.
La primera línea del script importa la biblioteca de subprocesos:
import subprocessA continuación, recorre los nombres de los directorios en el directorio directories.txt archivo y uso mkdir mandar entrar run Método para crear un directorio.
with open("directories.txt", "r") as directories:
for dirs in directories:
subprocess.run("mkdir ./{0}".format(dirs),shell=True, capture_output=True)atropelló ls Comando para verificar que el script creó todos los directorios.debería ver automation, backup, development, productiony testing Tabla de contenido.
subprocess.run("ls",shell=True)Ejecute el script Bash usando el subproceso
También puede ejecutar scripts de Bash utilizando la biblioteca de subprocesos.Este ejemplo utiliza Carpeta del caso de uso 2 en el repositorio subprocess_demo. El script Bash en este ejemplo (check_ceph.sh) para acceder al clúster de Ceph de back-end Fundación de datos OpenShift pasar rsh Y ejecute algunos comandos de Ceph para determinar el estado y la arquitectura del clúster.
[ Do you know the difference between Red Hat OpenShift and Kubernetes? ]
Si no tiene un clúster de OpenShift Data Foundation activo, puede usar -i output.txt banderas en la terminal. secuencia de comandos de Python, ceph_status_check.pyusar subprocess.run("check_ceph.sh") Tome el resultado de un script Bash, luego procese el texto para generar información importante sobre su clúster. Le recomiendo que abra los scripts en el repositorio subprocess_demo para ver cómo analizar la salida del subproceso usando Python.
Para ejecutar un script de Python, ingrese el siguiente comando:
python3 ceph_status_check.pyO, si no tiene un clúster de OpenShift en ejecución, ejecute:
python3 ceph_status_check.py -i output.txt Si el código se ejecuta correctamente, aparecen cuatro indicadores en la terminal: estado ceph, capacidad libre, número de osds y número de páginas.
intentalo
¡lo tienes! Acaba de examinar dos casos de uso diferentes para el módulo de subprocesos.
Para una mirada más profunda, consulte documentación de subprocesos y Cómo escribir un complemento de Ansible para crear archivos de inventario en Enable Sysadmin por José Vicente Núñez.









