Files
WYF-koubo/scripts/ssh_insert_db.py
T
2026-06-19 18:45:55 +08:00

67 lines
2.1 KiB
Python

import paramiko
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect('152.136.232.83', port=22, username='root', password='Jianhua105', timeout=10)
def run(cmd):
print(f"\n>>> {cmd[:120]}")
stdin, stdout, stderr = client.exec_command(cmd, timeout=20)
out = stdout.read().decode('utf-8', errors='replace').strip()
err = stderr.read().decode('utf-8', errors='replace').strip()
if out: print(out[-600:])
if err: print(f"ERR: {err[-200:]}")
return out
# Check where sqlite3 is
run("ls /www/wwwroot/ipzhinengti/node_modules/sqlite3 2>/dev/null && echo 'FOUND' || echo 'NOT FOUND'")
run("ls /www/wwwroot/ipzhinengti/node_modules/better-sqlite3 2>/dev/null && echo 'FOUND' || echo 'NOT FOUND'")
# Check db file
run("ls -la /www/wwwroot/ipzhinengti/data/ 2>/dev/null")
# Try running from the project dir
insert_db = r'''const sqlite3 = require('sqlite3');
const path = require('path');
const dbPath = path.join(__dirname, 'data', 'database.db');
console.log('DB path:', dbPath);
const db = new sqlite3.Database(dbPath);
const configs = [
['UPDATE_COS_BUCKET', 'xiazaigengxin-1417293730'],
['UPDATE_COS_REGION', 'ap-guangzhou'],
['UPDATE_COS_PATH', 'updates']
];
let done = 0;
configs.forEach(([key, value]) => {
db.run(
'INSERT OR REPLACE INTO system_config (config_key, config_value) VALUES (?, ?)',
[key, value],
(err) => {
if (err) console.log('ERR:', key, err.message);
else console.log('OK:', key, '=', value);
done++;
if (done === configs.length) {
db.close();
console.log('ALL DONE');
}
}
);
});
'''
sftp = client.open_sftp()
with sftp.open('/www/wwwroot/ipzhinengti/insert_config.js', 'w') as f:
f.write(insert_db)
sftp.close()
run("cd /www/wwwroot/ipzhinengti && node insert_config.js")
run("rm /www/wwwroot/ipzhinengti/insert_config.js")
# Restart
run("pm2 restart user-server 2>&1")
run("sleep 3 && curl -s http://localhost:3002/api/system/config/public")
client.close()