architect/standards/REMOTE_SCRIPT.md

REMOTE SCRIPT — Стандарт удалённых скриптов

Версия: 1.0.0
Дата: 2026-03-19


Назначение

Стандарт для скриптов, которые запускаются на компьютере оператора, а результат отправляют на сервер.

Причина: Длинные inline-команды в чате ломаются при копировании. Скрипт — одна строка запуска.


Строка запуска (всегда одна)

bash <(curl -s http://91.218.142.168/files/ИМЯ_СКРИПТА.sh)

Структура скрипта

#!/bin/bash
# REMOTE SCRIPT STANDARD v1.0
# Запуск: bash <(curl -s http://91.218.142.168/files/ИМЯ.sh)
# Результат: http://91.218.142.168/files/ИМЯ.log

SERVER="http://share.0kt.ru"
LOGNAME="ИМЯ.log"
OUT=""

log() { OUT+="$1\n"; echo "$1"; }

# --- Основная логика ---
log "=== Заголовок — $(date) ==="
log "Host: $(hostname)"

# ... действия и сбор данных через log() ...

# --- Отправить результат на сервер ---
printf "%b" "$OUT" | curl -s -X POST "${SERVER}/push/${LOGNAME}" \
    -H "Content-Type: text/plain" \
    --data-binary @- > /dev/null

echo "Лог: http://91.218.142.168/files/${LOGNAME}"

Правила

Правило Описание
Одна строка запуска Всегда bash <(curl -s http://91.218.142.168/files/ИМЯ.sh)
Имя скрипта задача_действие.sh — например chrome_fix.sh, proxy_setup.sh
Имя лога То же, но .logchrome_fix.log
Вывод через log() Всегда дублировать вывод: в консоль + в переменную OUT
Отправка в конце POST на /push/ИМЯ.log — перезаписывает предыдущий результат
Идемпотентность Скрипт можно запустить несколько раз без побочных эффектов

Мониторинг результата (сервер)

# Следить за логом в реальном времени (обновление каждые 30 сек)
bash /opt/scripts/watch_remote.sh chrome_fix.log

# Посмотреть последний результат разово
cat /var/www/html/files/chrome_fix.log

Сервер: /push эндпоинт

POST http://share.0kt.ru/push/{filename}
Content-Type: text/plain

{текст лога}

Сохраняет файл в /var/www/html/files/{filename} (перезапись).
Реализован в system/services/file-share/app.py.


Примеры скриптов

Скрипт Назначение
chrome_fix.sh Диагностика и починка Chrome
proxy_setup.sh Настройка прокси
net_diag.sh Диагностика сети

Где хранятся скрипты

/var/www/html/files/    скрипты и логи (публичный доступ)
/opt/scripts/           серверные утилиты (watch_remote.sh)