Инструменты пользователя

Инструменты сайта


scripts:hosters

Вытягиваем хостеров из базы 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
scripts/hosters.txt · Последнее изменение: 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki