52 lines
2.0 KiB
Python
52 lines
2.0 KiB
Python
import paramiko
|
|
import sys
|
|
|
|
sys.stdout.reconfigure(encoding='utf-8')
|
|
|
|
key_path = r"C:\Users\Snarf\.ssh\id_ed25519_snarfnet"
|
|
c = paramiko.SSHClient()
|
|
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
|
c.connect("140.44.4.71", username="root", key_filename=key_path, timeout=10)
|
|
|
|
print("1. Updating database.sqlite: removing ID 3, 51, 54...")
|
|
py_script = """import sqlite3
|
|
|
|
conn = sqlite3.connect("/var/lib/docker/volumes/nginx-proxy-manager_nginx-data/_data/database.sqlite")
|
|
cur = conn.cursor()
|
|
|
|
# Remove proxy hosts 3, 51, 54
|
|
cur.execute("DELETE FROM proxy_host WHERE id IN (3, 51, 54)")
|
|
print(f"Deleted {cur.rowcount} rows from proxy_host (IDs 3, 51, 54)")
|
|
|
|
conn.commit()
|
|
conn.close()
|
|
"""
|
|
|
|
cmd_db = "cat << 'EOF' > /tmp/remove_npm.py\n" + py_script + "\nEOF\npython3 /tmp/remove_npm.py\n"
|
|
stdin, stdout, stderr = c.exec_command(cmd_db)
|
|
print(stdout.read().decode('utf-8'))
|
|
err = stderr.read().decode('utf-8')
|
|
if err: print("DB err:", err)
|
|
|
|
print("2. Removing unused configuration files...")
|
|
remove_files_cmd = "rm -f /var/lib/docker/volumes/nginx-proxy-manager_nginx-data/_data/nginx/proxy_host/3.conf /var/lib/docker/volumes/nginx-proxy-manager_nginx-data/_data/nginx/proxy_host/51.conf /var/lib/docker/volumes/nginx-proxy-manager_nginx-data/_data/nginx/proxy_host/54.conf"
|
|
stdin, stdout, stderr = c.exec_command(remove_files_cmd)
|
|
stdout.channel.recv_exit_status()
|
|
print("Removed 3.conf, 51.conf, 54.conf")
|
|
|
|
print("3. Testing Nginx configuration syntax inside container...")
|
|
test_cmd = "docker exec $(docker ps -q -f name=nginx-proxy-manager_app | head -n1) nginx -t"
|
|
stdin, stdout, stderr = c.exec_command(test_cmd)
|
|
test_out = stdout.read().decode('utf-8')
|
|
test_err = stderr.read().decode('utf-8')
|
|
print("nginx -t:\n", test_out, test_err)
|
|
|
|
if "successful" in test_err or "successful" in test_out:
|
|
print("4. Reloading Nginx...")
|
|
stdin, stdout, stderr = c.exec_command("docker exec $(docker ps -q -f name=nginx-proxy-manager_app | head -n1) nginx -s reload")
|
|
stdout.channel.recv_exit_status()
|
|
print("Nginx reloaded successfully!")
|
|
|
|
c.close()
|
|
|