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