Add three scripts to simplify CodiMD database access via port-forward: - db-port-forward.sh: Start SSH tunnel and kubectl port-forward - db-port-forward-stop.sh: Stop port-forward processes - db-status.sh: Check port-forward status Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
52 lines
1.5 KiB
Bash
Executable File
52 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
# 啟動 CodiMD 資料庫 Port Forward
|
|
|
|
DB_SVC="codimd-db"
|
|
DB_NAMESPACE="default"
|
|
LOCAL_PORT="5432"
|
|
REMOTE_PORT="5432"
|
|
REMOTE_HOST="ubuntu@192.168.42.120"
|
|
|
|
echo "=== 啟動 CodiMD 資料庫 Port Forward ==="
|
|
|
|
# 檢查是否已經在運行
|
|
if pgrep -f "port-forward.*${DB_SVC}" > /dev/null; then
|
|
echo "⚠️ Port-forward 已經在運行中"
|
|
echo " 使用 ./db-port-forward-stop.sh 來停止"
|
|
exit 1
|
|
fi
|
|
|
|
# 透過 SSH 執行 kubectl port-forward
|
|
ssh -L ${LOCAL_PORT}:localhost:${REMOTE_PORT} ${REMOTE_HOST} \
|
|
"sudo kubectl port-forward -n ${DB_NAMESPACE} svc/${DB_SVC} ${LOCAL_PORT}:${REMOTE_PORT}" \
|
|
&
|
|
|
|
PF_PID=$!
|
|
echo $PF_PID > /tmp/codimd-db-port-forward.pid
|
|
|
|
# 等待 port 開始監聽
|
|
echo "⏳ 等待 port-forward 建立..."
|
|
for i in {1..10}; do
|
|
if nc -z localhost ${LOCAL_PORT} 2>/dev/null; then
|
|
echo "✅ Port-forward 已建立: localhost:${LOCAL_PORT} -> ${DB_SVC}:${REMOTE_PORT}"
|
|
echo " PID: $PF_PID"
|
|
echo ""
|
|
echo "現在可以使用 cli-anything-codimd:"
|
|
echo ""
|
|
echo " cli-anything-codimd admin list-users \\"
|
|
echo " --db-type postgresql \\"
|
|
echo " --db-host localhost \\"
|
|
echo " --db-name codimd \\"
|
|
echo " --db-user codimd \\"
|
|
echo " --db-password 8xG94tL0uKlGiBEd"
|
|
echo ""
|
|
echo "停止方式: ./db-port-forward-stop.sh"
|
|
exit 0
|
|
fi
|
|
sleep 1
|
|
done
|
|
|
|
echo "❌ Port-forward 建立失敗"
|
|
rm -f /tmp/codimd-db-port-forward.pid
|
|
exit 1
|