Script de shell de Linux automatizado para ejecutar comandos Python con retrasos aleatorios

[post-views]

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:

  1. Definimos una función wait_random()que toma dos argumentos: el tiempo mínimo y máximo de espera en minutos. Utiliza shufpara generar un número aleatorio dentro de ese rango y luego utiliza sleeppara esperar ese tiempo.
  2. 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.shy ejecutarlo con bash run_commands.sh. Asegúrese de tener instalado Python3 y de que el script trb.pyesté 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:

  1. Defina la misma función wait_random()para las pausas aleatorias.
  2. Defina cada grupo de comandos como una función separada ( grupo_1, grupo_2, etc.).
  3. Crea un array con los nombres de las funciones.
  4. Utilice shufpara mezclar aleatoriamente el orden de los grupos.
  5. Ejecuta cada grupo en el orden aleatorio generado.

Para utilizar el script:

  1. Guárdalo en un archivo (por ejemplo, run_random_groups.sh)
  2. Dale permisos de ejecución:chmod +x run_random_groups.sh
  3. 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

 

Facebook
Twitter
LinkedIn
Pinterest
WhatsApp
Telegram
Reddit
Publicado por:
We use cookies in order to give you the best possible experience on our website. By continuing to use this site, you agree to our use of cookies.
Accept