backup: 2026-04-20 17:44

This commit is contained in:
Dmitry
2026-04-20 17:44:20 +03:00
parent 5a607c85f2
commit 3c680e6f68
13 changed files with 49 additions and 45 deletions
+27 -6
View File
@@ -2,6 +2,15 @@
Мой репозиторий конфигурационных файлов. Мой репозиторий конфигурационных файлов.
## Установка ssh-ключей через bitwarden-cli
```bash
bw config server https://pass.ada-dev.ru
bw login
bw get item <название ключа> | jq -r '.sshKey.privateKey' > ~/.ssh/id_ed25519
```
## Установка ## Установка
```bash ```bash
@@ -20,6 +29,7 @@ stow -t ~ */
После синхронизации dotfiles резервные копии начнут создаваться автоматически по расписанию. Возможные команды: После синхронизации dotfiles резервные копии начнут создаваться автоматически по расписанию. Возможные команды:
**Статус и информация:** **Статус и информация:**
```bash ```bash
resticprofile status # список всех профилей и их статуса resticprofile status # список всех профилей и их статуса
resticprofile profiles # показать все доступные профили resticprofile profiles # показать все доступные профили
@@ -27,6 +37,7 @@ resticprofile show [profile] # подробно о профиле
``` ```
**Создание резервной копии вручную:** **Создание резервной копии вручную:**
```bash ```bash
resticprofile backup # backup для всей группы 'all' resticprofile backup # backup для всей группы 'all'
resticprofile -n dotfiles backup # backup определённого профиля (напр. dotfiles) resticprofile -n dotfiles backup # backup определённого профиля (напр. dotfiles)
@@ -34,24 +45,28 @@ resticprofile -n projects backup # backup проектов
``` ```
**Просмотр снимков:** **Просмотр снимков:**
```bash ```bash
resticprofile snapshots # список всех снимков resticprofile snapshots # список всех снимков
resticprofile -n dotfiles snapshots # снимки конкретного профиля resticprofile -n dotfiles snapshots # снимки конкретного профиля
``` ```
**Очистка старых снимков:** **Очистка старых снимков:**
```bash ```bash
resticprofile forget # удалить старые снимки согласно политике resticprofile forget # удалить старые снимки согласно политике
resticprofile -n dotfiles forget # очистить конкретный профиль resticprofile -n dotfiles forget # очистить конкретный профиль
``` ```
**Восстановление данных:** **Восстановление данных:**
```bash ```bash
resticprofile -n dotfiles restore latest /tmp/restore # восстановить в /tmp/restore resticprofile -n dotfiles restore latest /tmp/restore # восстановить в /tmp/restore
resticprofile -n dotfiles restore <snapshot-id> /path # конкретный снимок resticprofile -n dotfiles restore <snapshot-id> /path # конкретный снимок
``` ```
**Проверка целостности:** **Проверка целостности:**
```bash ```bash
resticprofile -n dotfiles check # проверить репозиторий resticprofile -n dotfiles check # проверить репозиторий
``` ```
@@ -59,19 +74,21 @@ resticprofile -n dotfiles check # проверить репозиторий
### На новой машине ### На новой машине
1. **Клонизация dotfiles:** 1. **Клонизация dotfiles:**
```bash ```bash
git clone <repository-url> ~/.dotfiles git clone <repository-url> ~/.dotfiles
cd ~/.dotfiles cd ~/.dotfiles
mkdir -p ~/.ssh/sockets mkdir -p ~/.ssh/sockets
``` ```
2. **Развёртывание конфигов (stow):** 2. **Развёртывание конфигов (stow):**
```bash ```bash
stow -t ~ */ stow -t ~ */
``` ```
Это разместит конфиги из `restic/.config/resticprofile/` в `~/.config/resticprofile/`
Это разместит конфиги из `restic/.config/resticprofile/` в `~/.config/resticprofile/`
3. **Установка rclone и resticprofile** (если нет): 3. **Установка rclone и resticprofile** (если нет):
```bash ```bash
# rclone (для работы с облаком) # rclone (для работы с облаком)
curl https://rclone.org/install.sh | sudo bash curl https://rclone.org/install.sh | sudo bash
@@ -79,8 +96,10 @@ resticprofile -n dotfiles check # проверить репозиторий
# resticprofile (управление бэкапами) # resticprofile (управление бэкапами)
# или через пакетный менеджер вашей системы # или через пакетный менеджер вашей системы
``` ```
t t
4. **Настройка rclone** (нужно один раз): 4. **Настройка rclone** (нужно один раз):
```bash ```bash
rclone config rclone config
# Добавить remote 'yadisk' для Яндекс.Диска # Добавить remote 'yadisk' для Яндекс.Диска
@@ -89,14 +108,15 @@ t
5. **Установка пароля для репозитория restic:** 5. **Установка пароля для репозитория restic:**
Убедитесь, что файл `~/.config/resticprofile/pass.txt` содержит пароль для шифрования бэкапов (он же, что на основной машине). Убедитесь, что файл `~/.config/resticprofile/pass.txt` содержит пароль для шифрования бэкапов (он же, что на основной машине).
6. **Проверка подключения к существующему репозиторию:** 6. **Проверка подключения к существующему репозиторию:**
```bash ```bash
resticprofile -n dotfiles snapshots # проверить доступ к репозиторию resticprofile -n dotfiles snapshots # проверить доступ к репозиторию
``` ```
Если вывод показывает список снимков — подключение работает.
Если вывод показывает список снимков — подключение работает.
7. **Восстановление данных из последних бэкапов:** 7. **Восстановление данных из последних бэкапов:**
```bash ```bash
# Восстановить kritical данные (dotfiles, конфиги, SSH) # Восстановить kritical данные (dotfiles, конфиги, SSH)
resticprofile -n dotfiles restore latest / resticprofile -n dotfiles restore latest /
@@ -104,8 +124,8 @@ t
# Или выборочно в временную папку для проверки # Или выборочно в временную папку для проверки
resticprofile -n dotfiles restore latest /tmp/restore resticprofile -n dotfiles restore latest /tmp/restore
``` ```
8. **Включение в systemd** (опционально, для автозапуска): 8. **Включение в systemd** (опционально, для автозапуска):
```bash ```bash
resticprofile install resticprofile install
resticprofile schedule resticprofile schedule
@@ -114,7 +134,7 @@ t
### Структура профилей ### Структура профилей
| Профиль | Источник | Частота | Назначение | | Профиль | Источник | Частота | Назначение |
|---------|----------|---------|-----------| | ------------------ | ------------------------------ | ---------------------------------------------- | -------------------------------------------------------------- |
| **dotfiles** | ~/.dotfiles, ~/.config, ~/.ssh | Каждые 6 часов | Критичные конфигурационные файлы | | **dotfiles** | ~/.dotfiles, ~/.config, ~/.ssh | Каждые 6 часов | Критичные конфигурационные файлы |
| **projects** | ~/Documents/Projects | Каждый час | Код и проекты (меняются часто) | | **projects** | ~/Documents/Projects | Каждый час | Код и проекты (меняются часто) |
| **vaults** | ~/Documents/Vaults | Каждый час | Важные данные и пароли | | **vaults** | ~/Documents/Vaults | Каждый час | Важные данные и пароли |
@@ -122,6 +142,7 @@ t
| **pictures** | ~/Pictures, ~/Videos | По групповому расписанию | Фотографии и видео | | **pictures** | ~/Pictures, ~/Videos | По групповому расписанию | Фотографии и видео |
**Политика хранения:** **Политика хранения:**
- Последние 10 снимков (общая) - Последние 10 снимков (общая)
- Ежедневные (7 дней) - Ежедневные (7 дней)
- Еженедельные (4 недели) - Еженедельные (4 недели)
+1 -1
View File
@@ -205,7 +205,7 @@
[credential] [credential]
# Кэшировать пароли на 1 час # Кэшировать пароли на 1 час
helper = "!f() { /home/ada/.vscode-server/bin/e7fb5e96c0730b9deb70b33781f98e2f35975036/node /tmp/vscode-remote-containers-c2ca9419-d1b5-464d-a579-9a0e513fd732.js git-credential-helper $*; }; f" helper = "!f() { /home/ada/.vscode-server/bin/560a9dba96f961efea7b1612916f89e5d5d4d679/node /tmp/vscode-remote-containers-b98ef833-2311-4179-921f-998f5b0fa50b.js git-credential-helper $*; }; f"
# ═══ URL shortcuts ══════════════════════════════════════════ # ═══ URL shortcuts ══════════════════════════════════════════
+1 -1
View File
@@ -12,7 +12,7 @@ Host *
# Использовать только явно заданные ключи # Использовать только явно заданные ключи
IdentitiesOnly yes IdentitiesOnly yes
IdentityAgent ~/.bitwarden-ssh-agent.sock # IdentityAgent ~/.bitwarden-ssh-agent.sock
# Таймауты подключения # Таймауты подключения
ConnectTimeout 10 ConnectTimeout 10
+1 -6
View File
@@ -1,9 +1,4 @@
Host ada-pc
HostName 192.168.1.100
User ada
IdentityFile ~/.ssh/keys/ada-pc.pub
Host ada-x1 Host ada-x1
HostName 192.168.1.101 HostName 192.168.1.101
User ada User ada
IdentityFile ~/.ssh/keys/adax1.pub IdentityFile ~/.ssh/keys/id_ed25519
+9 -6
View File
@@ -3,27 +3,28 @@ Host vps vps-ada
HostName 157.22.231.198 HostName 157.22.231.198
Port 3422 Port 3422
User ada User ada
IdentityFile /home/ada/.ssh/keys/homelab_ssh.pub IdentityFile /home/ada/.ssh/id_ed25519_hl
ServerAliveInterval 30
ServerAliveCountMax 3
# ZimaOS
Host docker-host Host docker-host
HostName 100.70.131.10 HostName 100.70.131.10
User ada User ada
IdentityFile ~/.ssh/keys/homelab_ssh.pub IdentityFile ~/.ssh/keys/id_ed25519_hl
SetEnv TERM=xterm-256color SetEnv TERM=xterm-256color
ProxyJump vps ProxyJump vps
Host pve Host pve
HostName 100.68.130.76 HostName 100.68.130.76
User root User root
IdentityFile ~/.ssh/keys/homelab_ssh.pub IdentityFile ~/.ssh/id_ed25519_hl
SetEnv TERM=xterm-256color SetEnv TERM=xterm-256color
# ProxyJump vps # ProxyJump vps
Host openclaw Host openclaw
Hostname 192.168.1.20 Hostname 192.168.1.20
User openclaw User openclaw
IdentityFile ~/.ssh/keys/adax1.pub IdentityFile ~/.ssh/id_ed25519
SetEnv TERM=xterm-256color SetEnv TERM=xterm-256color
ProxyJump pve ProxyJump pve
@@ -31,5 +32,7 @@ Host git.ada-dev.ru
HostName 100.70.131.10 HostName 100.70.131.10
Port 2222 Port 2222
User git User git
IdentityFile /home/ada/.ssh/keys/adax1.pub IdentityFile /home/ada/.ssh/id_ed25519_hl
ServerAliveInterval 30
ServerAliveCountMax 3
ProxyJump vps ProxyJump vps
+1 -10
View File
@@ -5,13 +5,4 @@ Host ru-vps
Port 3422 Port 3422
ServerAliveInterval 30 ServerAliveInterval 30
ServerAliveCountMax 3 ServerAliveCountMax 3
IdentityFile /home/ada/.ssh/id_ed25519_homelab IdentityFile /home/ada/.ssh/id_ed25519_hl
Host fl-vps
HostName 89.167.32.245
Port 4322
User ada
IdentityFile /home/ada/.ssh/id_ed25519_flvpn
ProxyJump ru-vps
ServerAliveInterval 30
ServerAliveCountMax 3
-1
View File
@@ -1 +0,0 @@
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIH50axSCXZiDkpnbggASg1P+EfAKhdExahLOXKe0VxqS ada-pc
-1
View File
@@ -1 +0,0 @@
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIWNsUQmppB6cQccXX1ZaBbFIcmM6RmghsTVbG9TgoZB adax1
-1
View File
@@ -1 +0,0 @@
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMwZ10/S25oSZsJNdWWMwfelPDM4VcZMGHQ9PDxW1A1G autossh-proxy
-1
View File
@@ -1 +0,0 @@
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIApx18Rmr32XqE+XnHl+sJkZGFWvyQ+uMGfOic2TdYju fl-vpn
-1
View File
@@ -1 +0,0 @@
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICmj/O+dwIiuFW0VVYnbX/PUComP1h5VrCBoMTIP3j0Z homelab_ssh
-1
View File
@@ -1 +0,0 @@
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJoW3axMmMF1+sffBSKK/K388I1TdLqXcJbXlJd6/BI1 key_vps
+1 -1
View File
@@ -59,7 +59,7 @@ alias localip="ip -4 addr show | grep -oP '(?<=inet\s)\d+(\.\d+){3}' | grep -v 1
# Proxy # Proxy
# Включение прокси (HTTP, HTTPS и SOCKS5h для DNS через прокси) # Включение прокси (HTTP, HTTPS и SOCKS5h для DNS через прокси)
alias proxy-on='export http_proxy="http://127.0.0.1:2080" https_proxy="http://127.0.0.1:2080" ALL_PROXY="socks5://127.0.0.1:2080" all_proxy="socks5://127.0.0.1:2080" && echo "󰖟 Proxy enabled (127.0.0.1:2080)"' alias proxy-on='export http_proxy="http://127.0.0.1:7897" https_proxy="http://127.0.0.1:7897" ALL_PROXY="socks5://127.0.0.1:7897" all_proxy="socks5://127.0.0.1:7897" && echo "󰖟 Proxy enabled (127.0.0.1:7897)"'
# Полное отключение всех переменных прокси # Полное отключение всех переменных прокси
alias proxy-off='unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY all_proxy ALL_PROXY && echo "󰖪 Proxy disabled"' alias proxy-off='unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY all_proxy ALL_PROXY && echo "󰖪 Proxy disabled"'