BTRFS/Автоматизация обслуживания: различия между версиями
Braumann (обсуждение | вклад) Новая страница: «Если вы уже знаете, как проверять и обслуживать систему '''Btrfs''' вручную, то следующий логичный шаг — сделать это автоматически. Linux умеет выполнять задания сам, по расписанию, и всё, что нужно — один небольшой скрипт и два конфигурационных файла. = '''Авт...» |
Braumann (обсуждение | вклад) мНет описания правки |
||
| (не показаны 4 промежуточные версии этого же участника) | |||
| Строка 1: | Строка 1: | ||
Если вы уже знаете, как проверять и обслуживать систему ''' | {| style="width:100%; margin-top:1em; font-size:95%;" | ||
| style="text-align:left;" | [[BTRFS/Обслуживание|← Назад: Обслуживание]] | |||
|} | |||
<div style="border: 2px solid #f39c12; background-color: #fff3cd; padding: 0.5em; margin-bottom: 1em;"> | |||
⚠️ '''Эта статья находится в разработке.''' Содержание может измениться в ближайшее время. | |||
</div> | |||
Если вы уже знаете, как проверять и обслуживать систему '''BTRFS''' вручную, то следующий логичный шаг — сделать это автоматически. | |||
Linux умеет выполнять задания сам, по расписанию, и всё, что нужно — один небольшой скрипт и два конфигурационных файла. | Linux умеет выполнять задания сам, по расписанию, и всё, что нужно — один небольшой скрипт и два конфигурационных файла. | ||
| Строка 5: | Строка 13: | ||
'''Автоматизация''' — это когда система сама: | '''Автоматизация''' — это когда система сама: | ||
* проверяет файловую систему (scrub) | * проверяет файловую систему (scrub) | ||
* балансирует данные (balance) | * балансирует данные (balance) | ||
* очищает свободное место на SSD (fstrim) | * очищает свободное место на SSD (fstrim) | ||
Пользователю больше не нужно помнить о ежемесячном обслуживании — всё выполняется в фоне, без вмешательства. | Пользователю больше не нужно помнить о ежемесячном обслуживании — всё выполняется в фоне, без вмешательства. | ||
| Строка 13: | Строка 21: | ||
== '''Подготовка скрипта обслуживания''' == | == '''Подготовка скрипта обслуживания''' == | ||
Создадим простой скрипт, который выполняет три базовые команды для ухода за | Создадим простой скрипт, который выполняет три базовые команды для ухода за BTRFS. | ||
Откройте терминал и создайте файл: | Откройте терминал и создайте файл: | ||
| Строка 68: | Строка 76: | ||
Что это значит: | Что это значит: | ||
* | * <code>'''[Unit]'''</code> — описание задачи, которое видит systemd. | ||
* | * <code>'''[Service]'''</code> — сам сервис. | ||
Тип `oneshot` означает, что команда запускается один раз и завершается. | Тип `oneshot` означает, что команда запускается один раз и завершается. | ||
| Строка 97: | Строка 105: | ||
Объяснение параметров: | Объяснение параметров: | ||
* | * <code>'''OnCalendar=weekly'''</code> — запускать каждую неделю (по умолчанию — по понедельникам). | ||
* | * <code>'''Persistent=true'''</code> — если компьютер был выключен в момент запуска, задание выполнится при следующем включении. | ||
== '''Активация таймера''' == | == '''Активация таймера''' == | ||
| Строка 148: | Строка 156: | ||
на, например: | на, например: | ||
* | * <code>'''OnCalendar=daily'''</code> — ежедневно; | ||
* | * <code>'''OnCalendar=monthly'''</code> — раз в месяц; | ||
* | * <code>'''OnCalendar=Sun 03:00'''</code> — каждое воскресенье в 3 утра. | ||
После редактирования перезапустите таймер: | После редактирования перезапустите таймер: | ||
| Строка 189: | Строка 197: | ||
== '''Заключение''' == | == '''Заключение''' == | ||
Теперь ваша система ''' | Теперь ваша система '''BTRFS''' полностью автономна: она сама следит за своим здоровьем, проверяет и очищает диск, не требуя вашего участия. | ||
Такое решение особенно полезно для ноутбуков и рабочих станций, которые часто остаются включёнными на ночь. | Такое решение особенно полезно для ноутбуков и рабочих станций, которые часто остаются включёнными на ночь. | ||
{| style="width:100%; margin-top:1em; font-size:95%;" | |||
| style="text-align:left;" | [[BTRFS/Обслуживание|← Назад: Обслуживание]] | |||
|} | |||
Текущая версия от 15:34, 14 ноября 2025
| ← Назад: Обслуживание |
⚠️ Эта статья находится в разработке. Содержание может измениться в ближайшее время.
Если вы уже знаете, как проверять и обслуживать систему BTRFS вручную, то следующий логичный шаг — сделать это автоматически. Linux умеет выполнять задания сам, по расписанию, и всё, что нужно — один небольшой скрипт и два конфигурационных файла.
Автоматизация обслуживания
Автоматизация — это когда система сама:
- проверяет файловую систему (scrub)
- балансирует данные (balance)
- очищает свободное место на SSD (fstrim)
Пользователю больше не нужно помнить о ежемесячном обслуживании — всё выполняется в фоне, без вмешательства.
Подготовка скрипта обслуживания
Создадим простой скрипт, который выполняет три базовые команды для ухода за BTRFS.
Откройте терминал и создайте файл:
sudo nano /usr/local/bin/btrfs-maintain.sh
Вставьте туда следующий код:
#!/bin/bash # Еженедельное обслуживание Btrfs btrfs scrub start -Bd / btrfs balance start -dusage=50 -musage=50 / fstrim -av
Сохраните файл и сделайте его исполняемым:
sudo chmod +x /usr/local/bin/btrfs-maintain.sh
Пояснение:
#!/bin/bash— сообщает системе, что это скрипт Bash.btrfs scrub start -Bd /— проверяет целостность данных.btrfs balance start -dusage=50 -musage=50 /— перераспределяет данные и метаданные.fstrim -av— очищает неиспользуемые блоки SSD (аналог TRIM).
Теперь у нас есть готовый инструмент обслуживания.
Создание systemd-сервиса
Чтобы Linux понимал, как запускать наш скрипт, нужно создать сервис.
Создайте файл:
sudo nano /etc/systemd/system/btrfs-maintain.service
Добавьте в него:
[Unit] Description=Еженедельное обслуживание Btrfs Documentation=man:btrfs(8) [Service] Type=oneshot ExecStart=/usr/local/bin/btrfs-maintain.sh
Что это значит:
[Unit]— описание задачи, которое видит systemd.[Service]— сам сервис.
Тип `oneshot` означает, что команда запускается один раз и завершается.
Создание таймера systemd
Теперь создадим "будильник", который будет запускать сервис каждую неделю.
Откройте новый файл:
sudo nano /etc/systemd/system/btrfs-maintain.timer
Вставьте туда:
[Unit] Description=Таймер для еженедельного обслуживания Btrfs [Timer] OnCalendar=weekly Persistent=true [Install] WantedBy=timers.target
Объяснение параметров:
OnCalendar=weekly— запускать каждую неделю (по умолчанию — по понедельникам).Persistent=true— если компьютер был выключен в момент запуска, задание выполнится при следующем включении.
Активация таймера
Включаем наш таймер:
sudo systemctl enable --now btrfs-maintain.timer
Теперь система будет автоматически запускать обслуживание каждую неделю.
Чтобы убедиться, что всё работает, выполните:
systemctl list-timers | grep btrfs
Вы увидите строчку примерно такую:
btrfs-maintain.timer loaded active waiting Mon 2025-11-03 00:00:00 MSK Mon 2025-10-27 00:00:00 MSK
Это значит, что всё настроено, и таймер запланирован.
Проверка работы вручную
Вы можете запустить обслуживание вручную, не дожидаясь таймера:
sudo systemctl start btrfs-maintain.service
После завершения команд можно просмотреть журнал:
sudo journalctl -u btrfs-maintain.service
Отключение или изменение расписания
Если вы хотите изменить расписание, откройте файл `/etc/systemd/system/btrfs-maintain.timer` и замените строку:
OnCalendar=weekly
на, например:
OnCalendar=daily— ежедневно;OnCalendar=monthly— раз в месяц;OnCalendar=Sun 03:00— каждое воскресенье в 3 утра.
После редактирования перезапустите таймер:
sudo systemctl daemon-reload sudo systemctl restart btrfs-maintain.timer
Альтернатива: cron (для старых систем
Если по какой-то причине systemd-таймеры недоступны, можно использовать старый способ — cron.
Создайте задачу:
sudo crontab -e
Добавьте строку:
@weekly /usr/local/bin/btrfs-maintain.sh
Это даст тот же эффект, но без systemd.
Проверка результата
Через неделю можно посмотреть, как прошла последняя операция scrub:
sudo btrfs scrub status /
Если видите "no errors found", всё отлично — автоматическое обслуживание работает.
Заключение
Теперь ваша система BTRFS полностью автономна: она сама следит за своим здоровьем, проверяет и очищает диск, не требуя вашего участия. Такое решение особенно полезно для ноутбуков и рабочих станций, которые часто остаются включёнными на ночь.
| ← Назад: Обслуживание |