====== СОРМ ЯХОНТ (Норси-Транс) ====== 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}" </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