|
|
|
@ -428,6 +428,7 @@ aptGetWasUpdated=0
|
|
|
|
|
freshInstall=0
|
|
|
|
|
cachedMenuDomain=''
|
|
|
|
|
lastTimeSpaceInfo=0
|
|
|
|
|
diagnosticsSizeOk=0
|
|
|
|
|
|
|
|
|
|
MIKRUS_APIKEY=''
|
|
|
|
|
MIKRUS_HOST=''
|
|
|
|
@ -1532,7 +1533,7 @@ cleanup_menu() {
|
|
|
|
|
local savedB=$((nowB - lastTimeB))
|
|
|
|
|
local savedTxt=$(echo "$savedB" | numfmt --to iec-i --suffix=B)
|
|
|
|
|
|
|
|
|
|
if (( savedB < 1)); then
|
|
|
|
|
if ((savedB < 1)); then
|
|
|
|
|
savedTxt="---"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
@ -1606,8 +1607,8 @@ cleanup_menu() {
|
|
|
|
|
update_menu() {
|
|
|
|
|
while :; do
|
|
|
|
|
local CHOICE=$(whiptail --title "Aktualizuj" --menu "\n" 11 40 4 \
|
|
|
|
|
"S)" "Aktualizuj system" \
|
|
|
|
|
"N)" "Aktualizuj to narzędzie" \
|
|
|
|
|
"S)" "Aktualizuj system" \
|
|
|
|
|
"K)" "Aktualizuj kontenery" \
|
|
|
|
|
"M)" "Powrót do menu" \
|
|
|
|
|
--ok-button="$uni_select" --cancel-button="$uni_back" \
|
|
|
|
@ -1755,29 +1756,17 @@ get_domain_status() {
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
send_diagnostics() {
|
|
|
|
|
LOG_KEY=$(<$LOG_ENCRYPTION_KEY_FILE)
|
|
|
|
|
gather_diagnostics() {
|
|
|
|
|
|
|
|
|
|
yesnodlg "Wysyłać diagnostykę?" \
|
|
|
|
|
"$uni_send" "$uni_resign" \
|
|
|
|
|
"Czy chcesz zgromadzić i wysłać sobie mailem dane diagnostyczne?" \
|
|
|
|
|
"\n$(
|
|
|
|
|
pad_multiline \
|
|
|
|
|
"\n${uni_bullet}diagnostyka zawiera logi i informacje o serwerze i usługach" \
|
|
|
|
|
"\n${uni_bullet}wysyłka na e-mail na który zamówiono serwer Mikr.us" \
|
|
|
|
|
"\n${uni_bullet}dane będą skompresowane i zaszyfrowane" \
|
|
|
|
|
"\n${uni_bullet}maila prześlij dalej do zaufanej osoby wspierającej" \
|
|
|
|
|
"\n${uni_bullet_pad}(z którą to wcześniej zaplanowano i uzgodniono!!!)" \
|
|
|
|
|
"\n${uni_bullet}hasło przekaż INNĄ DROGĄ (komunikatorem, SMSem, osobiście)" \
|
|
|
|
|
"\n\n${uni_bullet_pad}Hasło do logów: $LOG_KEY"
|
|
|
|
|
)"
|
|
|
|
|
local maxNsLogs=$1
|
|
|
|
|
local maxDbLogs=$2
|
|
|
|
|
local curr_time=$3
|
|
|
|
|
|
|
|
|
|
if ! [ $? -eq 1 ]; then
|
|
|
|
|
diagnosticsSizeOk=0
|
|
|
|
|
|
|
|
|
|
ohai "Zbieranie diagnostyki"
|
|
|
|
|
|
|
|
|
|
local domain=$(get_td_domain)
|
|
|
|
|
local curr_time=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
|
|
|
|
|
local ns_tag=$(dotenv-tool -r get -f $ENV_FILE_DEP "NS_NIGHTSCOUT_TAG")
|
|
|
|
|
local mikrus_h=$(hostname)
|
|
|
|
|
|
|
|
|
@ -1806,7 +1795,6 @@ send_diagnostics() {
|
|
|
|
|
echo " Watchdog: $(get_watchdog_status "$(get_watchdog_status_code)" "$uni_watchdog_ok")"
|
|
|
|
|
} >>$SUPPORT_LOG
|
|
|
|
|
|
|
|
|
|
ohai "Zbieranie informacji o zasobach"
|
|
|
|
|
local spaceInfo=$(get_space_info)
|
|
|
|
|
local remainingTxt=$(echo "$spaceInfo" | awk '{print $3}' | numfmt --to iec-i --suffix=B)
|
|
|
|
|
local totalTxt=$(echo "$spaceInfo" | awk '{print $2}' | numfmt --to iec-i --suffix=B)
|
|
|
|
@ -1846,24 +1834,75 @@ send_diagnostics() {
|
|
|
|
|
echo "$LOG_DIVIDER"
|
|
|
|
|
echo " Nightscout log"
|
|
|
|
|
echo "$LOG_DIVIDER"
|
|
|
|
|
timeout -k 15 10 docker logs ns-server --tail 500 >>$SUPPORT_LOG 2>&1
|
|
|
|
|
timeout -k 15 10 docker logs ns-server --tail "$maxNsLogs" >>$SUPPORT_LOG 2>&1
|
|
|
|
|
echo "$LOG_DIVIDER"
|
|
|
|
|
echo " MongoDB database log"
|
|
|
|
|
echo "$LOG_DIVIDER"
|
|
|
|
|
timeout -k 15 10 docker logs ns-database --tail 100 >>$SUPPORT_LOG 2>&1
|
|
|
|
|
timeout -k 15 10 docker logs ns-database --tail "$maxDbLogs" >>$SUPPORT_LOG 2>&1
|
|
|
|
|
} >>$SUPPORT_LOG
|
|
|
|
|
|
|
|
|
|
ohai "Kompresowanie i szyfrowanie raportu"
|
|
|
|
|
|
|
|
|
|
gzip $SUPPORT_LOG
|
|
|
|
|
gzip -9 $SUPPORT_LOG
|
|
|
|
|
|
|
|
|
|
local logkey=$(<$LOG_ENCRYPTION_KEY_FILE)
|
|
|
|
|
|
|
|
|
|
gpg --passphrase "$logkey" --batch --quiet --yes -a -c "$SUPPORT_LOG.gz"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
retry_diagnostics() {
|
|
|
|
|
local maxNsLogs=$1
|
|
|
|
|
local maxDbLogs=$2
|
|
|
|
|
local curr_time=$3
|
|
|
|
|
|
|
|
|
|
if ((diagnosticsSizeOk == 0)); then
|
|
|
|
|
|
|
|
|
|
ohai "Sprawdzanie rozmiaru raportu"
|
|
|
|
|
|
|
|
|
|
local logSize=$(stat --printf="%s" "$SUPPORT_LOG.gz.asc")
|
|
|
|
|
local allowedTxt=$(echo "18000" | numfmt --to si --suffix=B)
|
|
|
|
|
local currentTxt=$(echo "$logSize" | numfmt --to si --suffix=B)
|
|
|
|
|
|
|
|
|
|
if ((logSize > 18000)); then
|
|
|
|
|
msgerr "Zebrana diagnostyka jest zbyt duża do wysłania (${currentTxt})"
|
|
|
|
|
ohai "Spróbuję zebrać mniej danych aby zmieścić się w limicie (${allowedTxt})"
|
|
|
|
|
gather_diagnostics "$maxNsLogs" "$maxDbLogs" "$curr_time"
|
|
|
|
|
else
|
|
|
|
|
diagnosticsSizeOk=1
|
|
|
|
|
msgok "Raport ma rozmiar ${currentTxt} i mieści się w limicie ${allowedTxt} dla usługi pusher-a"
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
send_diagnostics() {
|
|
|
|
|
LOG_KEY=$(<$LOG_ENCRYPTION_KEY_FILE)
|
|
|
|
|
|
|
|
|
|
yesnodlg "Wysyłać diagnostykę?" \
|
|
|
|
|
"$uni_send" "$uni_resign" \
|
|
|
|
|
"Czy chcesz zgromadzić i wysłać sobie mailem dane diagnostyczne?" \
|
|
|
|
|
"\n$(
|
|
|
|
|
pad_multiline \
|
|
|
|
|
"\n${uni_bullet}diagnostyka zawiera logi i informacje o serwerze i usługach" \
|
|
|
|
|
"\n${uni_bullet}wysyłka na e-mail na który zamówiono serwer Mikr.us" \
|
|
|
|
|
"\n${uni_bullet}dane będą skompresowane i zaszyfrowane" \
|
|
|
|
|
"\n${uni_bullet}maila prześlij dalej do zaufanej osoby wspierającej" \
|
|
|
|
|
"\n${uni_bullet_pad}(z którą to wcześniej zaplanowano i uzgodniono!!!)" \
|
|
|
|
|
"\n${uni_bullet}hasło przekaż INNĄ DROGĄ (komunikatorem, SMSem, osobiście)" \
|
|
|
|
|
"\n\n${uni_bullet_pad}Hasło do logów: $LOG_KEY"
|
|
|
|
|
)"
|
|
|
|
|
|
|
|
|
|
if ! [ $? -eq 1 ]; then
|
|
|
|
|
|
|
|
|
|
local curr_time=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
|
|
|
|
|
|
|
|
|
|
gather_diagnostics 500 100 "$curr_time"
|
|
|
|
|
retry_diagnostics 200 50 "$curr_time"
|
|
|
|
|
retry_diagnostics 100 50 "$curr_time"
|
|
|
|
|
retry_diagnostics 50 50 "$curr_time"
|
|
|
|
|
|
|
|
|
|
ohai "Wysyłanie maila"
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
local sentStatus=$({
|
|
|
|
|
echo "Ta wiadomość zawiera poufne dane diagnostyczne Twojego serwera Nightscout."
|
|
|
|
|
echo "Mogą one pomóc Tobie lub zaufanej osobie w identyfikacji problemu."
|
|
|
|
|
echo " "
|
|
|
|
@ -1877,12 +1916,21 @@ send_diagnostics() {
|
|
|
|
|
echo " "
|
|
|
|
|
echo " "
|
|
|
|
|
cat "$SUPPORT_LOG.gz.asc"
|
|
|
|
|
} | pusher "Diagnostyka_serwera_Nightscout_-_$curr_time"
|
|
|
|
|
} | pusher "Diagnostyka_serwera_Nightscout_-_$curr_time")
|
|
|
|
|
|
|
|
|
|
local regexEm='Email sent'
|
|
|
|
|
if [[ "$sentStatus" =~ $regexEm ]]; then
|
|
|
|
|
okdlg "Diagnostyka wysłana" \
|
|
|
|
|
"Sprawdź swoją skrzynkę pocztową,\n" \
|
|
|
|
|
"otrzymanego maila przekaż zaufanemu wspierającemu.\n\n" \
|
|
|
|
|
"Komunikatorem lub SMS przekaż hasło do logów:\n\n$LOG_KEY"
|
|
|
|
|
else
|
|
|
|
|
msgerr "Błąd podczas wysyłki maila: $sentStatus"
|
|
|
|
|
okdlg "Błąd wysyłki maila" \
|
|
|
|
|
"Nieststy nie udało się wysłać diagnostyki" \
|
|
|
|
|
"${NL}zgłoś poniższy błąd twórcom narzędzia (na grupie Technologie Diabetyka)" \
|
|
|
|
|
"${TL}$sentStatus"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|