25 lines
948 B
Python
25 lines
948 B
Python
import paramiko
|
|
import sys
|
|
|
|
sys.stdout.reconfigure(encoding='utf-8')
|
|
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)
|
|
|
|
def run(cmd):
|
|
print(f"\n>>> {cmd}")
|
|
_, o, e = c.exec_command(cmd)
|
|
res = o.read().decode().strip()
|
|
err = e.read().decode().strip()
|
|
if res:
|
|
print(res)
|
|
if err:
|
|
print("[stderr]", err)
|
|
return res
|
|
|
|
run("which sqlite3 || echo 'sqlite3 not installed on host'")
|
|
run("python3 -c \"import sqlite3; con=sqlite3.connect('/mnt/nfs_shares/heimdall/www/app.sqlite'); cur=con.cursor(); print(cur.execute('PRAGMA integrity_check;').fetchall()); print('Total items:', cur.execute('SELECT count(*) FROM items;').fetchone()[0]); print('Duplicates:', cur.execute('SELECT count(*), title FROM items GROUP BY title HAVING count(*) > 1;').fetchall())\"")
|
|
|
|
c.close()
|
|
|