Перейти к содержимому
GitHub

Настройка

Язык интерфейса меняется в F9 → Параметры → Язык. Выберите английский, упрощённый китайский, португальский (Португалия), испанский или русский и нажмите Enter; Esc отменяет выбор. Выбор сохраняется в config.toml как language = "en", "zh-CN", "pt", "es" или "ru". BORG_LANGUAGE переопределяет сохранённую настройку. Если не задано ни то ни другое, Borg ориентируется на LC_ALL, LC_MESSAGES или LANG, а для неподдерживаемых языков использует английский. Команды, пути, имена файлов и сочетания клавиш никогда не переводятся. Меню языка на этом сайте меняет язык руководства независимо от программы.

Настройки хранятся в ~/.config/borg-commander/config.toml или в папке, заданной $XDG_CONFIG_HOME или $BORG_CONFIG_DIR. F9 → Параметры → Настройки показывает их в виде флажков; Space или щелчок переключает настройку и сразу её сохраняет. Esc закрывает окно. Borg читает файл настройка за настройкой. Настройка, которой у него нет, или значение, которое он не может использовать, затрагивает только эту настройку: при запуске Borg сообщает, в какой она строке, и берёт для неё значение по умолчанию. Сохраняя настройку, Borg меняет только её, а остальной файл вместе с вашими комментариями оставляет таким, каким вы его написали. Настройка из более старой версии читается как та, что пришла ей на смену, и уходит из файла при следующем сохранении. Если файл вообще не является TOML, Borg запускается с настройками по умолчанию, а первая же сохранённая после этого настройка оставляет этот файл рядом с новым под именем config-unreadable.toml.

theme = "neon" # midnight, aurora, neon, classic, paper, ember, or your own
icon-style = "auto" # auto, nerd, or portable; Ghostty gets rich icons automatically
icon-spacing = 1 # spaces after an icon, 1 to 3
status-line = true
menu-bar = false # keep the menu bar visible
show-hidden = false
return-to-panels = true # return after commands launched from the panels
restore-terminal = false # bring back the shell scrollback on the next start
screensaver = true # one of five animations, picked at random
screensaver-after = 300 # seconds of idle time
update-check = true # offer a new release once a day
start-service = true # start the background service when Borg opens
graphics = "auto" # auto, kitty, sixel, iterm or off
relay = "wss://relay.example.com" # the relay for borg cloud
[plugins]
git = true
system = true
docker = true
docker-console = true # the command line follows container panels into the container
agent-log = true # keep a log of what agents do in each session
agent-cloud = true # paired computers reach this borg through borg cloud
agent-ask-reads = false # reads from another computer wait for approval
[search]
exclude = ["*.min.js", "fixtures/large"] # paths below the search folder, as in .gitignore
artifacts = true # leave out node_modules, Cargo's target and cache-tagged folders
ignore-files = true # follow .gitignore, .ignore, .rgignore and .borgignore
history = true # remember searches for Ctrl-P and Ctrl-N
[index]
roots = ["~/Projects"] # folders indexed for instant search
refresh-minutes = 15 # rebuild an index once it is this old
[folders]
hotlist = ["~/Projects", "/srv/www"] # pinned with Ctrl-\ and Insert
history = true # remember the folders the panels open
[network]
proxy-ca = "~/dev-ca" # the CA folder for captures through Borg's proxy
keep-free-mib = 1024 # stop captures before the disk has less than this free
[watch]
on = false # watch what starts, in the background service
freeze = true # stop a process a rule is sure about
learning-days = 7 # learn what is normal here before freezing anything, 365 at most
alerts-per-minute = 20 # processes written about before Borg only counts them
freezes-per-minute = 5
keep-running = ["backup-agent"] # programs Borg never freezes
[[watch.allow]]
program = "/bin/sh" # allowed starts: program, parent, user, or any of them together
parent = "nginx"
[watch.notify.telegram] # send alerts as they happen, see Alerts off the machine
token = "123456:ABC"
chat = "123456789"

В локальном терминале с поддержкой true color Borg запускается с короткой анимацией логотипа с эффектом помех; любая клавиша или щелчок её пропускает. По SSH и в терминалах без true color программа сразу открывает панели.

Через screensaver-after секунд бездействия Borg показывает одну из пяти заставок, выбранную случайно: куб, вращающийся среди звёзд; логотип с эффектом помех; часы из блочных букв логотипа, которые рвутся на части с каждой новой минутой; логотип, который закручивается в спиральную галактику и возвращается обратно; или логотип, который заново собирается доска за доской, пока старые доски складываются внизу во второй логотип. Любая клавиша или щелчок возвращают панели, и эта клавиша больше ничего не делает. Запрос агента на подтверждение сам завершает заставку, поэтому никогда не ждёт за ней.

Собственные темы кладите в ~/.config/borg-commander/themes/. Тема может расширять встроенную:

name = "Deep Space"
extends = "neon"
[styles]
cursor = { fg = "#0b0b16", bg = "#00e5ff", bold = true }
dir = { fg = "#b388ff", bold = true }

Папки панелей, положение курсора, соотношение панелей, режимы списка и сортировка сохраняются в папке состояния ~/.local/state/borg-commander или в папке, заданной $XDG_STATE_HOME или $BORG_STATE_DIR.

Во время работы Borg хранит скрипты интеграции с оболочкой и файлы, скопированные из контейнеров, в своей папке среды выполнения: $XDG_RUNTIME_DIR/borg-commander или borg-commander-<uid> во временной папке. Открыть эту папку можете только вы; если такая папка уже существует, но её создал кто-то другой или в неё могут заходить другие пользователи, Borg пропускает её и берёт новое имя. Файл TTL в ней начинается со времени, до которого папка используется: каждый работающий borg раз в час сдвигает это время на сутки вперёд, так что, когда оно прошло, папку можно удалить.

F9 → Параметры → Файлы Borg… показывает все места, где Borg хранит файлы, сколько занимает каждое и где оно находится:

  • Временные файлы: скрипты интеграции с оболочкой, запросы смены папки от оболочки, копии из контейнеров, просмотр удалённых файлов, файлы, распакованные из архивов для просмотрщика и редактора, и сертификаты прокси захвата, в папке среды выполнения.
  • Сокеты: через них агенты и зеркала подключаются к работающим сеансам; они лежат в /tmp/borg-<uid>-default или в папке /tmp/borg-<uid>-, названной по папке среды выполнения, когда задана $XDG_RUNTIME_DIR.
  • Кэши: размеры папок и индексы имён, в папке кэша (см. Сохранённые результаты подсчёта).
  • Сеансы и история: сеансы, вывод оболочки, журнал удалённого доступа, история поиска и папок, коллекции, сопряжённые компьютеры с их ключами и то, что Borg узнал о ваших дисках (drives.json), в папке состояния.
  • Настройки: config.toml и ваши темы.
  • Файлы захвата: файлы захвата трафика, которые сохранил Borg, где бы они ни лежали.

Up и Down выбирают строку, а короткая заметка под списком говорит, что хранится в выбранном месте и как долго. Enter открывает папку этого места в активной панели. Esc закрывает окно.

Borg сам убирает за собой: через 30 секунд после запуска и затем каждый час. Он удаляет только имена, которые создаёт сам, и никогда не трогает то, что менялось за последние 10 минут, поэтому запускающийся Borg сохраняет только что созданное. Удаляется вот что:

  • Папки других версий Borg в папке среды выполнения, когда из них уже не работает ни один Borg и при этом либо при запуске этого Borg не работал ни один другой, либо в них ничего не менялось 3 дня.
  • Запросы смены папки, недописанные файлы, папки удалённых консолей и сертификаты прокси захвата у завершившихся процессов Borg.
  • Копии из контейнеров, просмотр удалённых файлов и файлы, распакованные из архивов для просмотрщика и редактора, старше суток.
  • Сокеты, на которых никто не отвечает, и папки сокетов, где больше ничего не отвечает.
  • Результаты подсчёта размеров в формате Borg 0.4 и 0.5, результаты, которых больше нет в списке кэша, и индексы имён для папок, которые больше не индексируются.
  • Папки среды выполнения, которые старые версии Borg оставили открытыми для других пользователей, когда в них ничего не менялось 3 дня.

Сеансы, история, настройки и файлы захвата хранятся, пока вы их не удалите. Строка под заметкой показывает, сколько лишних файлов есть сейчас и что удалила последняя очистка. F8 удаляет лишние файлы после вопроса. В вопросе перечислены папки, где они лежат, и сразу выбрана кнопка Нет, поэтому для удаления нажмите Y.

Каждый файл захвата, который сохраняет Borg, попадает в список из 1000 последних. Окно показывает те, что ещё есть на диске, под заголовком Сохранённые файлы захвата, с размером и датой, и с пометкой с ключами, когда рядом лежит файл .keylog с тем же именем. Enter на файле захвата открывает его папку с курсором на этом файле, так что там его удаляет F8. Файлов захвата, сохранённых до того, как Borg начал вести этот список, в нём нет.

borg storage выводит те же места в терминале и сообщает, что осталось лишнего, а borg storage clean удаляет это.

О сборке, тестировании и участии в разработке см. раздел Разработка.

Руководство описывает ветку main · Borg 0.11.0 · 1f6bce6
В последнем выпуске может быть не всё, что здесь описано. Список изменений

Перевод с английского. Будем рады исправлениям. Команды и сочетания клавиш не переводятся.