get-logs/lic_log_new.sh

115 lines
4.3 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# скрипт сбора информации о лицензии
# версия от 07/02/25
PLATFORM="";for ONE in vm dci;do test -d /opt/ispsystem/${ONE} && PLATFORM=${ONE};done
test -z "${PLATFORM}" && (echo "No ISPsystem Software found" && exit)
LOGDIR="${HOME}/license-logs" && rm -rf ${LOGDIR} && mkdir -p ${LOGDIR}
PRMT="[$(whoami)@$(hostname -s) ]"
newlog() {
LOGINFO=${LOGDIR}/$1 && date > ${LOGINFO}
}
cmdlog() {
test -z "${LOGINFO}" && return
local CMD=$*;(echo "${PRMT} ${CMD}";echo;eval ${CMD};echo) >> ${LOGINFO}
}
#about host
newlog hostinfo_${PLATFORM}.log
cmdlog hostnamectl
#about astra
if [ -e '/etc/astra_version' ]; then
cmdlog cat /etc/*release
cmdlog cat /etc/astra_version /etc/astra_license
astra-modeswitch getname
fi
#about host
cmdlog lscpu
cmdlog timedatectl
cmdlog free -m
cmdlog df -h --exclude tmpfs --exclude devtmpfs --exclude squashfs --exclude overlay
cmdlog lsblk
cmdlog cat /etc/fstab
cmdlog cat /etc/hosts
cmdlog ip -br a
cmdlog ip route
#about docker
cmdlog "docker exec -it vm_box bash -c 'printenv LICENSE_AUTH_TOKEN'"
cmdlog "docker exec -it vm_box bash -c 'env | grep -i proxy'"
cmdlog docker version
cmdlog docker info
cmdlog docker system df
cmdlog docker images
cmdlog docker ps
cmdlog "docker inspect --format ' {{.Name}} - {{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)"
#check internet settings
cmdlog ping -c 3 ya.ru
cmdlog ping -c 3 license6.ispsystem.com
cmdlog ping -c 3 download.ispsystem.com
cmdlog curl -k -o /dev/null https://speedtest.selectel.ru/10MB
cmdlog cat /etc/resolv.conf
cmdlog "env | grep -i proxy"
cmdlog curl -s --connect-timeout 60 ifconfig.me
installer=$(which ${PLATFORM})
cmdlog stat $installer
cmdlog md5sum $installer
cmdlog "${PLATFORM} -v"
cmdlog "systemctl status ${PLATFORM}"
#about vault
vault=$(docker ps --format '{{.Names}}' --filter name=vault)
vault_dir="${LOGDIR}/vault" && mkdir -p ${vault_dir}
cmdlog docker exec -it ${vault} supervisorctl status
journalctl CONTAINER_NAME=${vault} > ${vault_dir}/journalctl_vault.log 2>&1
docker cp ${vault}:/var/log/. ${vault_dir}
#about license
license=$(docker ps --format '{{.Names}}' --filter name=license)
cmdlog docker exec -it ${license} supervisorctl status
lic_dir="${LOGDIR}/${PLATFORM}_license_files" && mkdir -p ${lic_dir}
echo -e "\nlicense logs\n" >> ${LOGDIR}/license_info.log
${PLATFORM} license logs >> ${LOGDIR}/license_logs.log 2>&1
${PLATFORM} license info >> ${LOGDIR}/license_info.log 2>&1
${PLATFORM} license check >> ${LOGDIR}/license_info.log 2>&1
cp -r /opt/ispsystem/license/. ${lic_dir}
docker cp ${license}:/var/log/. ${lic_dir}
echo -e "\nvault/v4/value/license_token\n" >> ${LOGDIR}/license_info.log
docker exec -it ${license} curl --connect-timeout 60 -k -# -X GET -H "internal-auth: on" -H "service: support" -H "content-type: application/json" -o- "http://localhost:1500/vault/v4/value/license_token" >>${LOGDIR}/license_info.log 2>&1
TOKEN=$(docker exec -it ${license} curl -k -# -X GET -H "internal-auth: on" -H "service: support" -H "content-type: application/json" -o- "http://localhost:1500/vault/v4/value/license_token" 2>&1 | sed 's/{\"value\"\://' | sed 's/}//')
echo -e "\ncurl https://license6.ispsystem.com/lic6/check\n" >> ${LOGDIR}/license_info.log 2>&1
curl --connect-timeout 60 -vvv -k "https://license6.ispsystem.com/lic6/check" -H "X-auth-token:$TOKEN" >> ${LOGDIR}/license_info.log 2>&1
echo -e "\ncurl http://127.0.0.1:1500/license/v4/license\n" >> ${LOGDIR}/license_info.log
docker exec -it ${license} curl --connect-timeout 60 -k -X GET -H "Internal-Auth: on" -o- "http://127.0.0.1:1500/license/v4/license" >> ${LOGDIR}/license_info.log 2>&1
echo -e "\ncurl http://127.0.0.1:1500/vm/v3/get_license\n" >> ${LOGDIR}/license_info.log
docker exec -it ${license} curl --connect-timeout 60 -k -H GET -H "Internal-Auth: on" -o- "http://127.0.0.1:1500/vm/v3/get_license" >> ${LOGDIR}/license_info.log 2>&1
journalctl CONTAINER_NAME=${license} > ${lic_dir}/journalctl_license.log 2>&1
docker logs ${license} > ${lic_dir}/license_stdout.log 2>&1
cp /opt/ispsystem/${PLATFORM}/config.json ${LOGDIR}
cp /opt/ispsystem/${PLATFORM}/install.log ${LOGDIR}
cp /opt/ispsystem/${PLATFORM}/docker-compose.yaml ${LOGDIR}
ARCNAME=$(date +"${HOME}/license-logs-%Y_%m_%d_%H_%M_%S.tar.gz")
tar -cvzf ${ARCNAME} -C ${LOGDIR} .
echo -e "\nPlease send this logs archive to technical support\n"
du -h ${ARCNAME}