У мене є скрипт [1], який виконується демоном Postgres (архіватором WAL) і не працює з кодом виходу 12; див. [2]. Але якщо я виконую той самий скрипт на сеансі термінал / ssh, це успішно; див. [3].
Користувач BasketCase на IRC каналі #rsync freenode намагався діагностувати його, але не зміг дістатися. Див. [4] для розмови.
Це відбувається не на всіх машинах, якими він користується, але це вже другий раз, коли я стикався з цим.
Будь-яка допомога буде високо оцінена.
Заздалегідь спасибі.
[1] Сценарій архівування WAL
#!/bin/bash
# $1 is the %p substituted by postgres in archive_command
# $2 is the %f substituted by postgres in archive_command
# This script backs up the WAL file to every replica, and
# exits with the last failure code, if any.
final_exit_code=0
replicas=$(grep REPLICA /some/file | sort | uniq | cut -d = -f 2-)
for replica_url in $replicas; do
echo Sending WAL file to $replica_url
rsync --timeout=10 -avz -e 'ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ConnectTimeout=10 -i /opt/PostgresPlus/CloudDB/data/cluster_ssh.key' "$1" root@$replica_url:/mnt/pcs/wal_archive/"$2"
exit_code=$?
if [ $exit_code -ne 0 ] ; then final_exit_code=$exit_code ; fi
done
exit $final_exit_code
[2] Надсилання файлу WAL до 10.33.177.184 rsync: з'єднання несподівано закрите (0 байтів отримано до цього часу) [відправник] rsync помилка: помилка в потоці даних протоколу rsync (код 12) в io.c (600) [sender = 3.0. 6] LOG: команда архіву не вдалася з кодом виходу 12 ДЕТАЛІ: Невдалою командою архіву було: ./wal_archive.sh pg_xlog / 0000000100000005000000EE 0000000100000005000000EE
[3] $ ./wal_archive.sh pg_xlog / 0000000100000005000000EE 0000000100000005000000EE Надсилання файлу WAL до 03.03.177.184 Попередження: Постійно додано '10 .33.177.184 '(RSA) до списку відомих хостів. надсилання додаткового списку файлів 0000000100000005000000EE
надіслано 5180930 байт отримано 31 байт 941992,91 байт / сек, загальний розмір 16777216 прискорення 3,24
su
) обліковий запис демона postgres? (2) Який дистрибутив Linux ви використовуєте?