Files
SnarfCode/scripts/remove_npm_unused.py

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()