
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 ls
Este 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 mkdir
Verificaré el contenido del script.
La primera línea del script importa la biblioteca de subprocesos:
import subprocess
A 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
, production
y 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.py
usar 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.py
O, 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.