Skip to content

Commit aafe4f2

Browse files
gpas45claude
andcommitted
pgsql: добавлен pgpro-diag.sh — сбор данных по шаблонным экземплярам postgrespro-<ver>@<порт>
Диагностика для подстройки pg-server-manager.sh под штатную шаблонную схему: шаблонный юнит, per-instance drop-in/EnvironmentFile, resolved PGDATA/PGPORT, список @-экземпляров и каталоги данных. Вывод в /root/pgpro-diag-<ver>.txt. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 9a97fdf commit aafe4f2

1 file changed

Lines changed: 62 additions & 0 deletions

File tree

pgsql/pgpro-diag.sh

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
#!/bin/bash
2+
#
3+
# pgpro-diag.sh — диагностика шаблонных экземпляров Postgres Pro 1C.
4+
# Собирает в один файл всё, что нужно, чтобы подстроить pg-server-manager.sh
5+
# под штатную шаблонную схему postgrespro-<ver>@<порт>.
6+
#
7+
# Запуск: ./pgpro-diag.sh # релиз по умолчанию 1c-18
8+
# ./pgpro-diag.sh 1c-17 # другой релиз
9+
# Результат: /root/pgpro-diag-<ver>.txt
10+
#
11+
VER="${1:-1c-18}"
12+
OUT="/root/pgpro-diag-${VER}.txt"
13+
14+
# первый существующий @-экземпляр как образец
15+
SAMPLE=$(systemctl list-units --all --type=service "postgrespro-${VER}@*" --no-legend --no-pager 2>/dev/null \
16+
| awk '{print $1}' | sed 's/\.service$//' | head -n1)
17+
18+
{
19+
echo "############ Postgres Pro diag: ver=${VER} sample=${SAMPLE:-<нет>} $(date) ############"
20+
21+
echo; echo "=== 1. шаблонный юнит ==="
22+
systemctl cat "postgrespro-${VER}@.service" 2>&1
23+
24+
if [[ -n "$SAMPLE" ]]; then
25+
echo; echo "=== 2. полный конфиг экземпляра ${SAMPLE} (шаблон + drop-in) ==="
26+
systemctl cat "${SAMPLE}.service" 2>&1
27+
echo; echo "=== 3. drop-in каталог ${SAMPLE} ==="
28+
ls -la "/etc/systemd/system/${SAMPLE}.service.d/" 2>&1
29+
echo; echo "=== 3b. содержимое drop-in файлов ==="
30+
for f in "/etc/systemd/system/${SAMPLE}.service.d/"*.conf; do
31+
[[ -e "$f" ]] || continue
32+
echo "--- $f ---"; cat "$f" 2>&1
33+
done
34+
echo; echo "=== 4. resolved Environment/ExecStart/EnvironmentFiles ${SAMPLE} ==="
35+
systemctl show "${SAMPLE}" -p Environment -p EnvironmentFiles -p ExecStart -p ExecStartPre -p FragmentPath -p DropInPaths --no-pager 2>&1
36+
echo; echo "=== 4b. реальный -D из работающего процесса ==="
37+
pid=$(systemctl show "${SAMPLE}" -p MainPID --value 2>/dev/null)
38+
if [[ "$pid" =~ ^[0-9]+$ && "$pid" -gt 0 ]]; then
39+
tr '\0' ' ' < "/proc/$pid/cmdline" 2>/dev/null; echo
40+
else echo "процесс не запущен (MainPID=$pid)"; fi
41+
fi
42+
43+
echo; echo "=== 5. per-instance файлы в /etc/default ==="
44+
ls -la /etc/default/ 2>/dev/null | grep -i postgrespro
45+
echo; echo "=== 5b. общий EnvironmentFile /etc/default/postgrespro-${VER} ==="
46+
cat "/etc/default/postgrespro-${VER}" 2>&1
47+
48+
echo; echo "=== 6. все @-экземпляры (active/enabled) ==="
49+
systemctl list-units --all --type=service "postgrespro-${VER}@*" --no-legend --no-pager 2>&1 | awk '{print $1, $3, $4}'
50+
echo "--- enabled-симлинки ---"
51+
ls -la /etc/systemd/system/*.wants/postgrespro-"${VER}"@*.service 2>&1
52+
53+
echo; echo "=== 7. каталоги данных /var/lib/pgpro/${VER} ==="
54+
ls -la "/var/lib/pgpro/${VER}/" 2>&1
55+
56+
echo; echo "=== 8. содержимое scripts/ ==="
57+
ls -la "/var/lib/pgpro/${VER}/scripts/" 2>&1
58+
59+
echo; echo "############ конец ############"
60+
} > "$OUT" 2>&1
61+
62+
echo "Готово. Пришли файл: $OUT"

0 commit comments

Comments
 (0)