Este script es una herramienta muy útil cuando necesitas automatizar tareas que deben ejecutarse en intervalos aleatorios de tiempo. Imagina que tienes un programa (en este caso trb.py
) que necesitas ejecutar varias veces con diferentes parámetros, pero no quieres que siga un patrón predecible.
El script funciona como un organizador que toma diferentes tareas (agrupadas en lo que llamamos «grupos») y las ejecuta en orden aleatorio. Es como si tuvieras cuatro cartas boca abajo, cada una con una tarea diferente, las mezclaras y luego las fueras volteando una por una para saber qué hacer.
Después de cada tarea, el script espera un tiempo aleatorio antes de continuar con la siguiente. Estos tiempos de espera pueden ser cortos (1-2 minutos) o largos (1-2 horas), según lo que hayamos programado. Esta característica es especialmente útil cuando quieres simular un comportamiento humano o evitar patrones detectables en la ejecución de tareas automatizadas.
La forma en que está organizada, usando funciones para cada grupo de tareas, hace que sea fácil modificar, agregar o quitar tareas según sea necesario, lo que lo hace muy flexible y adaptable a diferentes necesidades.
Script de ejecución de comandos aleatorios
Explicación del script:
- Definimos una función
wait_random()
que toma dos argumentos: el tiempo mínimo y máximo de espera en minutos. Utilizashuf
para generar un número aleatorio dentro de ese rango y luego utilizasleep
para esperar ese tiempo. - Luego ejecutamos los comandos que necesitas, intercalando las llamadas a
wait_random()
para introducir las pausas aleatorias entre ellas.
python3 trb.py mobile
: Ejecuta el comando python3 con el argumento «mobile».wait_random 1 2
: Espere un tiempo aleatorio entre 1 y 2 minutos.python3 trb.py desktop
: Ejecuta el comando python3 con el argumento «desktop».wait_random 2 3
: Espere un tiempo aleatorio entre 2 y 3 minutos.python3 trb.py random "https://www.linkedin.com/"
: Ejecuta el comando python3 con el argumento «random» y la URL.wait_random 60 120
: Espere un tiempo aleatorio entre 1 y 2 horas.python3 trb.py mobile
: Ejecuta el comando python3 con el argumento «mobile».
Puedes guardar este script en un archivo, por ejemplo, run_commands.sh
y ejecutarlo con bash run_commands.sh
. Asegúrese de tener instalado Python3 y de que el script trb.py
esté disponible en su sistema.
#!/bin/bash # Función para generar un tiempo de espera aleatorio wait_random() { min_time=$1 max_time=$2 sleep $(shuf -i $min_time-$max_time -n 1)m } # Ejecuta los comandos con pausas aleatorias python3 trb.py mobile wait_random 1 2 python3 trb.py desktop wait_random 2 3 python3 trb.py random "https://www.linkedin.com/" wait_random 60 120 python3 trb.py mobile
Script de ejecución de comandos aleatorios con ejecución de grupo aleatoria
Este script hace lo siguiente:
- Defina la misma función
wait_random()
para las pausas aleatorias. - Defina cada grupo de comandos como una función separada (
grupo_1
,grupo_2
, etc.). - Crea un array con los nombres de las funciones.
- Utilice
shuf
para mezclar aleatoriamente el orden de los grupos. - Ejecuta cada grupo en el orden aleatorio generado.
Para utilizar el script:
- Guárdalo en un archivo (por ejemplo,
run_random_groups.sh
) - Dale permisos de ejecución:
chmod +x run_random_groups.sh
- Ejecútalo:
./run_random_groups.sh
Cada vez que ejecuta el script, los grupos se ejecutarán en un orden diferente y aleatorio. El guión también muestra un mensaje indicando qué grupo se está ejecutando en cada momento.
#!/bin/bash # Función para generar un tiempo de espera aleatorio en minutos wait_random() { min_time=$1 max_time=$2 sleep $(shuf -i $min_time-$max_time -n 1)m } # Función para ejecutar el grupo 1 grupo_1() { echo "Ejecutando grupo 1..." python3 trb.py mobile wait_random 1 2 } # Función para ejecutar el grupo 2 grupo_2() { echo "Ejecutando grupo 2..." python3 trb.py desktop wait_random 2 3 } # Función para ejecutar el grupo 3 grupo_3() { echo "Ejecutando grupo 3..." python3 trb.py random "https://www.linkedin.com/" wait_random 60 120 } # Función para ejecutar el grupo 4 grupo_4() { echo "Ejecutando grupo 4..." python3 trb.py mobile wait_random 2 3 } # Crear un array con los nombres de las funciones grupos=(grupo_1 grupo_2 grupo_3 grupo_4) # Mezclar el array aleatoriamente grupos_mezclados=($(printf "%s\n" "${grupos[@]}" | shuf)) # Ejecutar cada grupo en el orden aleatorio for grupo in "${grupos_mezclados[@]}"; do $grupo done