СОРМ ЯХОНТ (Норси-Транс)
Cайт: https://norsi-trans.ru/
Настройки
Типы выгрузок
Поддерживаемые типы выгрузки (request):
- abonents - Информация о пользователях по заключенным договорам по передаче данных
- doc_types - Типы документов, удостоверяющих личность
- pay_types - Способы оплаты (пополнения баланса)
- balance-fillup - Пополнение баланса личного счета абонента (обобщенная информация)
- supplement-services - Список ДВО (дополнительные услуги/сервисы по передаче данных)
- services - Активированные пользователями дополнительные услуги/сервисы по передаче данных
- ip-numbering-plan - IP-план адресации
- gates - IP шлюзы
- basic-stations - Информация о базовых станциях сетей радиосвязи и параметрах антенных систем (wi-fi)
Скрипт выгрузки
Скрипты дорабатываются и могут изменяться!
Для отправки на удаленный сервер используется команда ftp
#!/bin/bash EXTRA="" API_URL="https://admin.ispnet.demo" API_NAME="yahont" API_KEY="0123456789" API_REQUESTS=( abonents doc_types ) FTP_UPLOAD=0 FTP_APP=$(which ftp) REMOTE_ADDRESS="192.168.0.1" REMOTE_USER="ftpuser" REMOTE_PASS="ftpass" UPLOAD_DIR="/ISP" FILE="" ARCHIVE_OLD_FILES=0 ARCHIVE_DIR="/home/sorm/archive" LOCAL_DIR="/home/sorm/downloads" declare -A dict_dirs dict_dirs["abonents"]="/ISP/abonents/abonents" dict_dirs["doc_types"]="/ISP/dictionaries/doc-types" dict_dirs["pay_types"]="/ISP/dictionaries/pay-types" dict_dirs["balance-fillup"]="/ISP/payments/balance-fillup" dict_dirs["supplement-services"]="/ISP/dictionaries/supplement-services" dict_dirs["services"]="/ISP/abonents/services" dict_dirs["ip-numbering-plan"]="/ISP/dictionaries/ip-numbering-plan" dict_dirs["gates"]="/ISP/dictionaries/gates" dict_dirs["basic-stations"]="/ISP/dictionaries/basic-stations" WGET_APP="wget --content-disposition --no-check-certificate -q" function download() { # $1 - filename # $2 - url $WGET_APP -O "${LOCAL_DIR}/$1" "$2" } function ftpupload() { $FTP_APP -n "${REMOTE_ADDRESS}" <<END_SCRIPT quote USER $REMOTE_USER quote PASS $REMOTE_PASS binary cd $UPLOAD_DIR put $FILE quit END_SCRIPT } if [ ! -d "${LOCAL_DIR}" ]; then mkdir -p "${LOCAL_DIR}" fi rm -f ${LOCAL_DIR}/* if [ "${FTP_UPLOAD}" -eq 1 ]; then if ! command -v ftp &>/dev/null; then echo "ftp command no found! exit" exit fi fi cd $LOCAL_DIR if [ "$#" -gt 0 ]; then if [ "$1" == "ACTIVATE" ]; then FILE="balance-fillup.csv" download "${FILE}" "${API_URL}/ajax/index/${API_NAME}/?key=${API_KEY}&request=balance-fillup${EXTRA}" UPLOAD_DIR="${dict_dirs["balance-fillup"]}" else FILE="$1.csv" download "$1.csv" "${API_URL}/ajax/index/${API_NAME}/?key=${API_KEY}&request=$1${EXTRA}" UPLOAD_DIR="${dict_dirs["$1"]}" fi ftpupload else for REQUEST in ${API_REQUESTS[*]}; do FILE="${REQUEST}_$(date +%d%m%Y%H%M%S).csv" download "${FILE}" "${API_URL}/ajax/index/${API_NAME}/?key=${API_KEY}&request=${REQUEST}${EXTRA}" UPLOAD_DIR="${dict_dirs["${REQUEST}"]}" ftpupload done fi # check local archive if [ "$ARCHIVE_OLD_FILES" -eq 1 ]; then if [ ! -d "$ARCHIVE_DIR" ]; then mkdir -p $ARCHIVE_DIR fi /bin/cp -fR $LOCAL_DIR/* $ARCHIVE_DIR/ fi
CRON
# ежедневная выгрузка 00 06 * * * root /root/unloading.sh