chore: remove unused file
This commit is contained in:
65
scripts/dump_k8s_databases.py
Normal file
65
scripts/dump_k8s_databases.py
Normal file
@@ -0,0 +1,65 @@
|
||||
import paramiko
|
||||
import sys
|
||||
import datetime
|
||||
|
||||
sys.stdout.reconfigure(encoding='utf-8')
|
||||
|
||||
timestamp = datetime.datetime.now().strftime("%Y%m%d_%H%M%S")
|
||||
|
||||
db_targets = [
|
||||
{
|
||||
"cluster": "aerodrome",
|
||||
"ip": "140.44.4.11",
|
||||
"namespace": "infra",
|
||||
"pod": "authentik-postgresql-0",
|
||||
"name": "authentik",
|
||||
"dump_cmd": "kubectl exec -n infra authentik-postgresql-0 -- pg_dumpall -U postgres | gzip > /var/backups/authentik_db_{timestamp}.sql.gz"
|
||||
},
|
||||
{
|
||||
"cluster": "aerodrome",
|
||||
"ip": "140.44.4.11",
|
||||
"namespace": "awx",
|
||||
"pod": "awx-postgres-15-0",
|
||||
"name": "awx",
|
||||
"dump_cmd": "kubectl exec -n awx awx-postgres-15-0 -- pg_dumpall -U postgres | gzip > /var/backups/awx_db_{timestamp}.sql.gz"
|
||||
},
|
||||
{
|
||||
"cluster": "spaceport",
|
||||
"ip": "140.44.4.41",
|
||||
"namespace": "infrastructure",
|
||||
"pod": "gitea-postgresql-0",
|
||||
"name": "gitea",
|
||||
"dump_cmd": "kubectl exec -n infrastructure gitea-postgresql-0 -- pg_dumpall -U postgres | gzip > /var/backups/gitea_db_{timestamp}.sql.gz"
|
||||
},
|
||||
{
|
||||
"cluster": "spaceport",
|
||||
"ip": "140.44.4.41",
|
||||
"namespace": "monitoring",
|
||||
"pod": "zabbix-postgresql-0",
|
||||
"name": "zabbix",
|
||||
"dump_cmd": "kubectl exec -n monitoring zabbix-postgresql-0 -- pg_dumpall -U postgres | gzip > /var/backups/zabbix_db_{timestamp}.sql.gz"
|
||||
}
|
||||
]
|
||||
|
||||
for target in db_targets:
|
||||
cluster = target["cluster"]
|
||||
ip = target["ip"]
|
||||
name = target["name"]
|
||||
print(f"[{cluster.upper()}] Backing up {name} database...")
|
||||
ssh = paramiko.SSHClient()
|
||||
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
||||
ssh.connect(ip, username='root', key_filename=r'C:\Users\Snarf\.ssh\id_ed25519_snarfnet', timeout=15)
|
||||
|
||||
cmd = f"mkdir -p /var/backups && {target['dump_cmd'].replace('{timestamp}', timestamp)}"
|
||||
stdin, stdout, stderr = ssh.exec_command(cmd, timeout=300)
|
||||
exit_status = stdout.channel.recv_exit_status()
|
||||
err = stderr.read().decode().strip()
|
||||
|
||||
if exit_status == 0:
|
||||
check_cmd = f"ls -lh /var/backups/{name}_db_{timestamp}.sql.gz"
|
||||
_, chk_out, _ = ssh.exec_command(check_cmd)
|
||||
print(f" SUCCESS: {chk_out.read().decode().strip()}")
|
||||
else:
|
||||
print(f" FAILED (exit {exit_status}): {err}")
|
||||
|
||||
ssh.close()
|
||||
Reference in New Issue
Block a user