billing:configuration:yahont

СОРМ ЯХОНТ (Норси-Транс)

Поддерживаемые типы выгрузки (request):

  • abonents - Информация о пользователях по заключенным договорам по передаче данных
  • doc_types - Типы документов, удостоверяющих личность
  • pay_types - Способы оплаты (пополнения баланса)
  • balance-fillup - Пополнение баланса личного счета абонента (обобщенная информация)
  • supplement-services - Список ДВО (дополнительные услуги/сервисы по передаче данных)
  • services - Активированные пользователями дополнительные услуги/сервисы по передаче данных
  • ip-numbering-plan - IP-план адресации
  • gates - IP шлюзы
  • basic-stations - Информация о базовых станциях сетей радиосвязи и параметрах антенных систем (wi-fi)
Скрипты дорабатываются и могут изменяться!
#!/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
# ежедневная выгрузка
00 06 * * *	root	/root/unloading.sh
  • billing/configuration/yahont.txt
  • Последнее изменение: 12 мес. назад
  • alexd