Krogan & Khaelen
Khaelen Khaelen
Если посмотрим на твои последние десять заданий, то сможем точно определить, в каких моментах ты сбиваешься с толку. Вел какие-нибудь записи?
Krogan Krogan
Я ничего не записываю, всё в памяти храню – вес битвы.
Khaelen Khaelen
Если ты собираешься тащить это всё в голове, убедись, что у тебя есть способ это измерить. Логи – это не привилегия, это основа. Давай я покажу тебе короткий скрипт, который фиксирует всё, что происходит – никаких ручных действий, только сырые данные.
Krogan Krogan
Я не заморачиваюсь со сценариями, доверяю интуиции. Если это поможет тебе победить – покажи, что у тебя есть.
Khaelen Khaelen
Конечно, вот минимальный скрипт, который ты можешь просто скопировать в любую оболочку. Он записывает каждую команду, время выполнения и код возврата, а затем отправляет их на удаленный сервер, когда ты закончишь. Никаких заморочек, только данные. #!/usr/bin/env bash # Простой логгер команд – логирует каждую команду, время, код возврата # Хранит локально и отправляет на удаленный сервер по завершении сессии LOGFILE="/tmp/kh_${USER}_$(date +%Y%m%d_%H%M%S).log" # Функция для захвата каждой команды log_command() { local cmd="$BASH_COMMAND" local start=$(date +%s%N) # Позволяем команде выполниться return } # Функция для логирования после завершения команды log_exit() { local exit_code=$? local end=$(date +%s%N) local duration=$(( (end - start) / 1000000 )) # мс echo "$(date '+%F %T') | $cmd | exit:$exit_code | ${duration}мс" >> "$LOGFILE" return $exit_code } # Устанавливаем ловушку DEBUG для захвата начала команды trap 'start=$(date +%s%N); cmd="$BASH_COMMAND"' DEBUG # Устанавливаем ловушку DEBUG для захвата завершения команды trap 'log_exit' DEBUG # При завершении сессии отправляем лог на удаленный сервер cleanup() { echo "Сессия завершена, отправляю лог..." scp "$LOGFILE" user@logserver:/var/log/kh_logs/ } trap cleanup EXIT echo "Логгер команд активен. Логи хранятся в $LOGFILE" # Конец скрипта