136 lines
5.7 KiB
Markdown
136 lines
5.7 KiB
Markdown
# Dotfiles
|
|
|
|
Мой репозиторий конфигурационных файлов.
|
|
|
|
## Установка
|
|
|
|
```bash
|
|
git clone <repository-url> ~/.dotfiles
|
|
cd ~/.dotfiles
|
|
mkdir -p ~/.ssh/sockets
|
|
stow -t ~ */
|
|
```
|
|
|
|
## Resticprofile: Резервные копии
|
|
|
|
Конфигурация автоматического резервного копирования данных на Яндекс.Диск через rclone.
|
|
|
|
### На уже настроенной машине
|
|
|
|
После синхронизации dotfiles резервные копии начнут создаваться автоматически по расписанию. Возможные команды:
|
|
|
|
**Статус и информация:**
|
|
```bash
|
|
resticprofile status # список всех профилей и их статуса
|
|
resticprofile profiles # показать все доступные профили
|
|
resticprofile show [profile] # подробно о профиле
|
|
```
|
|
|
|
**Создание резервной копии вручную:**
|
|
```bash
|
|
resticprofile backup # backup для всей группы 'all'
|
|
resticprofile -n dotfiles backup # backup определённого профиля (напр. dotfiles)
|
|
resticprofile -n projects backup # backup проектов
|
|
```
|
|
|
|
**Просмотр снимков:**
|
|
```bash
|
|
resticprofile snapshots # список всех снимков
|
|
resticprofile -n dotfiles snapshots # снимки конкретного профиля
|
|
```
|
|
|
|
**Очистка старых снимков:**
|
|
```bash
|
|
resticprofile forget # удалить старые снимки согласно политике
|
|
resticprofile -n dotfiles forget # очистить конкретный профиль
|
|
```
|
|
|
|
**Восстановление данных:**
|
|
```bash
|
|
resticprofile -n dotfiles restore latest /tmp/restore # восстановить в /tmp/restore
|
|
resticprofile -n dotfiles restore <snapshot-id> /path # конкретный снимок
|
|
```
|
|
|
|
**Проверка целостности:**
|
|
```bash
|
|
resticprofile -n dotfiles check # проверить репозиторий
|
|
```
|
|
|
|
### На новой машине
|
|
|
|
1. **Клонизация dotfiles:**
|
|
```bash
|
|
git clone <repository-url> ~/.dotfiles
|
|
cd ~/.dotfiles
|
|
mkdir -p ~/.ssh/sockets
|
|
```
|
|
|
|
2. **Развёртывание конфигов (stow):**
|
|
```bash
|
|
stow -t ~ */
|
|
```
|
|
Это разместит конфиги из `restic/.config/resticprofile/` в `~/.config/resticprofile/`
|
|
|
|
3. **Установка rclone и resticprofile** (если нет):
|
|
```bash
|
|
# rclone (для работы с облаком)
|
|
curl https://rclone.org/install.sh | sudo bash
|
|
|
|
# resticprofile (управление бэкапами)
|
|
# или через пакетный менеджер вашей системы
|
|
```
|
|
t
|
|
4. **Настройка rclone** (нужно один раз):
|
|
```bash
|
|
rclone config
|
|
# Добавить remote 'yadisk' для Яндекс.Диска
|
|
# Использовать OAuth или AppPassword для авторизации
|
|
```
|
|
|
|
5. **Установка пароля для репозитория restic:**
|
|
Убедитесь, что файл `~/.config/resticprofile/pass.txt` содержит пароль для шифрования бэкапов (он же, что на основной машине).
|
|
|
|
6. **Проверка подключения к существующему репозиторию:**
|
|
```bash
|
|
resticprofile -n dotfiles snapshots # проверить доступ к репозиторию
|
|
```
|
|
Если вывод показывает список снимков — подключение работает.
|
|
|
|
7. **Восстановление данных из последних бэкапов:**
|
|
```bash
|
|
# Восстановить kritical данные (dotfiles, конфиги, SSH)
|
|
resticprofile -n dotfiles restore latest /
|
|
|
|
# Или выборочно в временную папку для проверки
|
|
resticprofile -n dotfiles restore latest /tmp/restore
|
|
```
|
|
|
|
8. **Включение в systemd** (опционально, для автозапуска):
|
|
```bash
|
|
resticprofile install
|
|
resticprofile schedule
|
|
```
|
|
|
|
### Структура профилей
|
|
|
|
| Профиль | Источник | Частота | Назначение |
|
|
|---------|----------|---------|-----------|
|
|
| **dotfiles** | ~/.dotfiles, ~/.config, ~/.ssh | Каждые 6 часов | Критичные конфигурационные файлы |
|
|
| **projects** | ~/Documents/Projects | Каждый час | Код и проекты (меняются часто) |
|
|
| **vaults** | ~/Documents/Vaults | Каждый час | Важные данные и пароли |
|
|
| **files** | ~/Documents/Files | Ежедневно в 02:15 | Документы |
|
|
| **pictures** | ~/Pictures, ~/Videos | По групповому расписанию | Фотографии и видео |
|
|
|
|
**Политика хранения:**
|
|
- Последние 10 снимков (общая)
|
|
- Ежедневные (7 дней)
|
|
- Еженедельные (4 недели)
|
|
- Ежемесячные (6 месяцев)
|
|
- Профиль `dotfiles`: более агрессивная политика (28 часов, 30 дней, 12 месяцев)
|
|
|
|
### Полезные параметры конфига
|
|
|
|
- `check-before: false` — не проверять целостность перед бэкапом (для скорости)
|
|
- `use-fs-snapshot: false` — не использовать снимки файловой системы
|
|
- `.resticignore` — исключает тяжёлые зависимости (node_modules, venv, target и т.д.)
|