backup: 2026-04-20 17:44
This commit is contained in:
@@ -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,24 +96,27 @@ resticprofile -n dotfiles check # проверить репозиторий
|
|||||||
# resticprofile (управление бэкапами)
|
# resticprofile (управление бэкапами)
|
||||||
# или через пакетный менеджер вашей системы
|
# или через пакетный менеджер вашей системы
|
||||||
```
|
```
|
||||||
|
|
||||||
t
|
t
|
||||||
4. **Настройка rclone** (нужно один раз):
|
4. **Настройка rclone** (нужно один раз):
|
||||||
```bash
|
|
||||||
|
```bash
|
||||||
rclone config
|
rclone config
|
||||||
# Добавить remote 'yadisk' для Яндекс.Диска
|
# Добавить remote 'yadisk' для Яндекс.Диска
|
||||||
# Использовать OAuth или AppPassword для авторизации
|
# Использовать OAuth или AppPassword для авторизации
|
||||||
```
|
```
|
||||||
|
|
||||||
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
@@ -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 ══════════════════════════════════════════
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ Host *
|
|||||||
# Использовать только явно заданные ключи
|
# Использовать только явно заданные ключи
|
||||||
IdentitiesOnly yes
|
IdentitiesOnly yes
|
||||||
|
|
||||||
IdentityAgent ~/.bitwarden-ssh-agent.sock
|
# IdentityAgent ~/.bitwarden-ssh-agent.sock
|
||||||
|
|
||||||
# Таймауты подключения
|
# Таймауты подключения
|
||||||
ConnectTimeout 10
|
ConnectTimeout 10
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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 +0,0 @@
|
|||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIH50axSCXZiDkpnbggASg1P+EfAKhdExahLOXKe0VxqS ada-pc
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIWNsUQmppB6cQccXX1ZaBbFIcmM6RmghsTVbG9TgoZB adax1
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMwZ10/S25oSZsJNdWWMwfelPDM4VcZMGHQ9PDxW1A1G autossh-proxy
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIApx18Rmr32XqE+XnHl+sJkZGFWvyQ+uMGfOic2TdYju fl-vpn
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICmj/O+dwIiuFW0VVYnbX/PUComP1h5VrCBoMTIP3j0Z homelab_ssh
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJoW3axMmMF1+sffBSKK/K388I1TdLqXcJbXlJd6/BI1 key_vps
|
|
||||||
@@ -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"'
|
||||||
|
|||||||
Reference in New Issue
Block a user