chatgpt generated
write me a script that rotates though all openvpn config files with an auth file, stops openvpn after each config rotation, makes sure no connection is ever used twice and waits 10 seconds before initializing a new connectionunknown
python
2 years ago
2.0 kB
9
Indexable
import os import time import random import subprocess # Define the directory where OpenVPN config files are located config_dir = '/path/to/config/files/' # Define the path to the OpenVPN authentication file auth_file = '/path/to/auth/file' # Get a list of all OpenVPN config files in the directory config_files = os.listdir(config_dir) config_files = [file for file in config_files if file.endswith('.ovpn')] # Shuffle the list of config files to ensure that no connection is ever used twice random.shuffle(config_files) # Define an empty list to store the used config files used_configs = [] # Define the OpenVPN command to use openvpn_cmd = 'openvpn' # Define the options to use with the OpenVPN command openvpn_options = ['--auth-user-pass', auth_file] # Loop through the config files and rotate the connection for config_file in config_files: # If all config files have been used, reshuffle the list and start again if len(used_configs) == len(config_files): used_configs = [] random.shuffle(config_files) # Check if the current config file has been used before while config_file in used_configs: config_file = random.choice(config_files) # Add the current config file to the list of used config files used_configs.append(config_file) print('Switching to ' + config_file) # Update the OpenVPN options to use the current config file openvpn_options += ['--config', os.path.join(config_dir, config_file)] # Start the OpenVPN connection openvpn_process = subprocess.Popen([openvpn_cmd] + openvpn_options) # Wait for 10 seconds to give OpenVPN time to start up time.sleep(10) # Send a SIGTERM signal to the OpenVPN process to stop the connection openvpn_process.terminate() # Wait for 10 seconds to give OpenVPN time to close the connection time.sleep(10) # Clear the current config file from the OpenVPN options openvpn_options = openvpn_options[:-2]
Editor is loading...