Инструменты пользователя

Инструменты сайта


support:terminals:selfservice_ticket_office

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
support:terminals:selfservice_ticket_office [2025/07/18 11:38] – удалено - внешнее изменение (Дата неизвестна) 127.0.0.1support:terminals:selfservice_ticket_office [2025/07/18 17:49] (текущий) aservice
Строка 1: Строка 1:
 +====== Касса самообслуживания ======
 +Self-Service Ticket Office
  
 +Тестирование железа с записью лога оперативная память/диски/нагрузка
 +{{ :support:terminals:kso_autotest.zip |}}
 +
 +{{:support:terminals:windowsterminal_61ieccfkip.png?400|}}
 +
 +
 +<code bash>
 +curl -O https://as-wiki.ru/_media/support/terminals/kso_autotest.zip && unzip -o kso_autotest.zip && chmod +x kso_autotest.sh && ./kso_autotest.sh
 +</code>
 +
 +
 +++++kso_autotest.sh|
 +<code bash kso_autotest.sh>
 +#!/bin/bash
 +# == KSO Auto Test Script с Меню ==
 +# Автор: takraztak | Дата: 2025-07-18
 +
 +LOG_DIR="/var/log"
 +LAST_LOG=""
 +LAST_ERR=""
 +
 +find_last_logs() {
 +    LAST_LOG=$(ls -t "$LOG_DIR"/kso_test_*.log 2>/dev/null | head -n1)
 +    LAST_ERR=$(ls -t "$LOG_DIR"/kso_test_*.err.log 2>/dev/null | head -n1)
 +}
 +
 +run_tests() {
 +    TIMESTAMP=$(date '+%Y-%m-%d_%H-%M-%S')
 +    LOGFILE="$LOG_DIR/kso_test_$TIMESTAMP.log"
 +    ERRFILE="$LOG_DIR/kso_test_$TIMESTAMP.err.log"
 +
 +    log() {
 +        echo -e "$1" | tee -a "$LOGFILE"
 +    }
 +
 +    log "=== ТЕСТ СИСТЕМЫ КСО ==="
 +    log "⏱ Время запуска: $(date)"
 +
 +    log "\n[1] Включение стандартных репозиториев..."
 +    RETRIES=5
 +    while [ ! -f /etc/apt/sources.list-back ] && [ $RETRIES -gt 0 ]; do
 +        log " ⏳ Ожидание файла /etc/apt/sources.list-back... (осталось попыток: $RETRIES)"
 +        sleep 1
 +        RETRIES=$((RETRIES - 1))
 +    done
 +
 +    if [ -f /etc/apt/sources.list-back ]; then
 +        cp /etc/apt/sources.list-back /etc/apt/sources.list 2>>"$ERRFILE"
 +        log " → Репозитории восстановлены."
 +    else
 +        log " ! Файл /etc/apt/sources.list-back не найден. Прерывание."
 +        echo "Отсутствует sources.list-back" >> "$ERRFILE"
 +        return 1
 +    fi
 +
 +    log "\n[2] Обновление списка пакетов..."
 +    apt update >> "$LOGFILE" 2>>"$ERRFILE" || return 1
 +
 +    log "\n[3] Установка необходимых пакетов..."
 +    apt install -y stress memtester mc wget tar >> "$LOGFILE" 2>>"$ERRFILE" || return 1
 +
 +    log "\n[4] Загрузка и установка HDSentinel..."
 +    cd /tmp || return 1
 +    wget -q https://www.hdsentinel.com/hdslin/hdsentinel_gui64bit.tar.xz
 +    if [ -f hdsentinel_gui64bit.tar.xz ]; then
 +        tar -xf hdsentinel_gui64bit.tar.xz
 +        cd HDSentinel_GUI || return 1
 +        ./install.sh >> "$LOGFILE" 2>>"$ERRFILE"
 +        log " → HDSentinel установлен."
 +    else
 +        log " ! Не удалось загрузить HDSentinel."
 +        echo "Ошибка: HDSentinel не загружен" >> "$ERRFILE"
 +        return 1
 +    fi
 +
 +    log "\n[5] Отключение репозиториев..."
 +    rm -f /etc/apt/sources.list 2>>"$ERRFILE"
 +    log " → sources.list удалён."
 +
 +    log "\n=== ЗАПУСК ТЕСТОВ ==="
 +
 +    log "\n[✓] Проверка SSD через HDSentinel:"
 +    /usr/share/bin/HDSentinel | tee -a "$LOGFILE" || echo "Ошибка запуска HDSentinel" >> "$ERRFILE"
 +
 +    MEM_TOTAL_KB=$(grep MemTotal /proc/meminfo | awk '{print $2}')
 +    MEM_FREE_KB=$(grep MemAvailable /proc/meminfo | awk '{print $2}')
 +    MEM_TEST_MB=$((MEM_FREE_KB / 1024 - 200))
 +
 +    if (( MEM_TEST_MB < 512 )); then
 +        log "\n[✗] Недостаточно памяти для memtester: всего ${MEM_TEST_MB} MB"
 +    else
 +        log "\n[✓] Тест памяти через memtester (~${MEM_TEST_MB} MB):"
 +        memtester "${MEM_TEST_MB}M" 1 | tee -a "$LOGFILE" 2>>"$ERRFILE"
 +    fi
 +
 +    log "\n[✓] Тест стабильности под нагрузкой (stress 10 минут)..."
 +    stress -c 4 -m 5 -i 10 -t 600 >> "$LOGFILE" 2>>"$ERRFILE"
 +    log " → stress завершён."
 +
 +    log "\n=== ТЕСТ ЗАВЕРШЁН ==="
 +    log "📁 Лог: $LOGFILE"
 +    log "⚠️ Ошибки (если были): $ERRFILE"
 +    log "⏱ Завершено: $(date)"
 +}
 +
 +menu() {
 +    while true; do
 +        find_last_logs
 +        echo -e "\n╔══════════════════════════════════════════════╗"
 +        echo   "║         KSO АВТОТЕСТ: МЕНЮ ДЕЙСТВИЙ         ║"
 +        echo   "╠══════════════════════════════════════════════╣"
 +        echo   "║ 1 - Запустить полный тест                   ║"
 +        echo   "║ 2 - Показать последний лог                  ║"
 +        echo   "║ 3 - Показать ошибки из последнего лога      ║"
 +        echo   "║ 0 - Выход                                   ║"
 +        echo   "╠══════════════════════════════════════════════╣"
 +        echo   "║ 🔍 Навигация по логам (less):               ║"
 +        echo   "║ q - выйти     / - поиск     n - далее       ║"
 +        echo   "║ G - конец     g - начало    ↑/↓ - прокрутка ║"
 +        echo   "╚══════════════════════════════════════════════╝"
 +        read -rp "Выбор: " choice
 +
 +        case "$choice" in
 +            1)
 +                run_tests
 +                ;;
 +            2)
 +                if [ -n "$LAST_LOG" ]; then
 +                    less "$LAST_LOG"
 +                else
 +                    echo "❌ Лог не найден"
 +                fi
 +                ;;
 +            3)
 +                if [ -n "$LAST_ERR" ]; then
 +                    less "$LAST_ERR"
 +                else
 +                    echo "❌ Лог ошибок не найден"
 +                fi
 +                ;;
 +            0)
 +                break
 +                ;;
 +            *)
 +                echo "Неверный выбор."
 +                ;;
 +        esac
 +    done
 +}
 +
 +menu
 +
 +</code>++++
 +Сделать исполняемым\\
 +''chmod +x kso_autotest.sh''\\
 +Запустить\\
 +''sudo ./kso_autotest.sh''\\