36 lines
1.0 KiB
Go
36 lines
1.0 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"os/exec"
|
|
"strings"
|
|
)
|
|
|
|
func runVerify(prodSSH string) error {
|
|
if prodSSH == "" {
|
|
return fmt.Errorf("prod-ssh required for verify")
|
|
}
|
|
pre := sshPG(prodSSH, "SELECT count(*) FROM mint_orders WHERE star_id != 999900")
|
|
fmt.Printf(" real mint_orders (non-loadtest): %s\n", pre)
|
|
|
|
conn := sshPG(prodSSH, "SELECT count(*) FROM pg_stat_activity")
|
|
fmt.Printf(" PG active conn: %s\n", conn)
|
|
|
|
out, err := exec.Command("ssh", prodSSH, "docker ps --format '{{.Names}} {{.Status}}'").Output()
|
|
if err != nil {
|
|
return fmt.Errorf("docker ps: %w", err)
|
|
}
|
|
fmt.Printf(" 容器状态:\n%s\n", out)
|
|
|
|
disk := sshPG(prodSSH, "")
|
|
_ = disk
|
|
return nil
|
|
}
|
|
|
|
func sshPG(ssh, query string) string {
|
|
cmd := exec.Command("ssh", ssh,
|
|
fmt.Sprintf(`export PGPASSWORD="${DB_PASSWORD:-postgres123}"; PG=$(docker ps --filter 'name=postgres' --format '{{.Names}}' | grep -v exporter | head -1); docker exec -e PGPASSWORD="$PGPASSWORD" "$PG" psql -U postgres -d topfans -t -c "%s"`, query))
|
|
out, _ := cmd.Output()
|
|
return strings.TrimSpace(string(out))
|
|
}
|