==== Вытягиваем хостеров из базы PostgreSQL. ====
Подойдет для вытягивание данных из любых таблиц.
Подключение к БД происходит через SSH-тунель.
CNAME="description"
PARAM="ip, region, speed, gvpe_internal_ip, etc"
CONN="-U USER -h localhost -p 5433 -d DATABASE"
SERVER="mypostgres.com"
if [ $# -lt 1 ]; then
echo "USAGE: $(basename $0) [vpn node] [$PARAM]"
exit 1
elif [ $# == 1 ]; then
ssh -f -o ExitOnForwardFailure=yes -L 5433:localhost:5433 $SERVER sleep 1
psql $CONN -c "SELECT $CNAME FROM servers WHERE domain='$1.vpnunlimitedapp.com';" | head -n3 | tail -n1
exit 0
elif [[ $# == 2 && $1 == "byip" ]]; then
ssh -f -o ExitOnForwardFailure=yes -L 5433:localhost:5433 $SERVER sleep 1
psql $CONN -c "SELECT domain FROM servers WHERE ip='$2';" | head -n3 | tail -n1
exit 0
elif [ $# == 2 ]; then
ssh -f -o ExitOnForwardFailure=yes -L 5433:localhost:5433 $SERVER sleep 1
psql $CONN -c "SELECT $2 FROM servers WHERE domain='$1.vpnunlimitedapp.com';" | head -n3 | tail -n1
exit 0
else
echo "To many parameters! Must be 1 or 2. Get $#."
echo "USAGE: $(basename $0) [vpn node] [$PARAM]"
exit 1
fi
* По умолчанию скрипт вытягивает имя хостера, но можно вторым параметром задать любое из таблицы freeradius.
* Если запустить с параметром byip и следом указать ip, то скрипт вернет имя впн-ноды.
* Чтобы каждый раз не вводить пароль на доступ к базе, создаем в домашнем каталоге файл //.pgpass// с содержимым:
localhost:5433:DATABASE:USER:PASSWORD
Права на //.pgpass//
chmod 0600 ~/.pgpass