33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
import paramiko, os
|
|
|
|
c = paramiko.SSHClient()
|
|
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
|
c.connect("140.44.4.71", username="root", key_filename=r'C:\Users\Snarf\.ssh\id_ed25519_snarfnet', timeout=10)
|
|
|
|
sftp = c.open_sftp()
|
|
|
|
remote_dir = "/var/lib/docker/volumes/nginx-proxy-manager_nginx-data/_data/topology"
|
|
c.exec_command(f"mkdir -p {remote_dir}")
|
|
|
|
local_html = os.path.abspath("docs/snarfnet_homelab_topology.html")
|
|
local_png = os.path.abspath("docs/snarfnet_homelab_topology.png")
|
|
|
|
print(f"Uploading HTML ({os.path.getsize(local_html)} bytes)...")
|
|
sftp.put(local_html, f"{remote_dir}/snarfnet_homelab_topology.html")
|
|
|
|
print(f"Uploading PNG ({os.path.getsize(local_png)} bytes)...")
|
|
sftp.put(local_png, f"{remote_dir}/snarfnet_homelab_topology.png")
|
|
|
|
sftp.close()
|
|
|
|
# Verify files inside container
|
|
stdin, stdout, stderr = c.exec_command("docker exec $(docker ps -q --filter name=nginx-proxy-manager_app) ls -la /data/topology")
|
|
print("Container /data/topology:")
|
|
print(stdout.read().decode())
|
|
|
|
# Check md5sum locally and remotely
|
|
stdin, stdout, stderr = c.exec_command(f"md5sum {remote_dir}/*")
|
|
print("Remote md5sum:\n", stdout.read().decode())
|
|
|
|
c.close()
|