![]()
- В двух словах
- Как я сделал свой backup-скрипт и настроил автоматизацию
- Куда сохранять бэкапы?
- Как подготовить место для бэкапов
- Что сохранять и как написать свой backup.sh
- Как протестировать скрипт и включить автоматизацию через cron
- Три главных открытия, которые я сделал сам
- Никогда не запускайте скрипт без теста!
- Используйте только абсолютные пути
- Не игнорируйте комментарии в коде
В двух словах
Графические инструменты типа Déjà Dup делают бэкапы на Linux простыми и быстрыми. Но если хочется гибкости и полного контроля, стоит написать свой скрипт для резервного копирования. Такой подход позволяет самому выбирать, что копировать, куда и как часто. К тому же, это отличный повод освоить основы bash ― расскажу, как я сделал свой скрипт и настроил его автозапуск через cron.
Как я сделал свой backup-скрипт и настроил автоматизацию
Используя в скрипте абсолютные пути, вы сможете сохранять копии куда угодно — будь то локальная папка, отдельный раздел или внешний накопитель.
Куда сохранять бэкапы?
Я хотел сделать максимально простой скрипт, но при этом обязательно сохранить все важные директории Linux — на случай, если придется восстанавливать систему. Для этого я взял обычную флешку на 128 ГБ.

Топ USB-флешек 2024 года
Ищете флешку, которая не подведёт? Вот лучшие надёжные модели для любых задач.
Как подготовить место для бэкапов
Флешка, внешний диск, отдельный раздел — не принципиально, главное сразу знать точные пути и точки монтирования, чтобы потом не запутаться при написании скрипта.
В качестве основы я выбрал rsync — он идёт почти в каждом дистрибутиве Linux. Убедитесь, что он установлен, или добавьте его через пакетный менеджер.
Я создал на своей флешке папку ‘Backup’. Всё просто: через Проводник нажимаете Ctrl Shift N — или в терминале при помощи lsblk, cd и mkdir.
Что сохранять и как написать свой backup.sh
Чтобы всегда можно было восстановить систему, я сохраняю документы и ключевые системные папки — /home, /etc, /var, /usr/local, /root и /opt. Bash-скрипт удобно сделать в редакторе nano. Я создал backup.sh у себя в домашней папке. Просто копируйте код ниже в свой любимый редактор терминала:
Впишите свои абсолютные пути для BACKUP_ROOT, DEST_DIR, LOG_FILE и TMP_DIR, сохраните и закройте файл (в nano: Ctrl O Enter, затем Ctrl X). Дайте скрипту права на запуск с помощью chmod, проверьте через ls — ищите, чтобы был флаг -x.

Как протестировать скрипт и включить автоматизацию через cron
Любая стратегия резервного копирования может сломаться. Проверка скрипта — ваш шанс поймать и исправить ошибки до того, как пострадают важные файлы. В некоторых случаях для запуска может понадобиться sudo.
Если при запуске вы увидите ошибки — смотрите, что не так, терминал всё подскажет. Если ошибок нет — появятся сообщения “Начинаю копировать” и “Копирую /home…”, а на флешке уже будут новые папки.
Когда на внешний диск идёт большой поток данных, запаситесь терпением: копирование иногда длится долго. Главное — если ошибок нет, всё идёт как надо, даже если терминал ничего не пишет.
Убедившись, что всё работает, я запланировал автоматический запуск скрипта на 20:00 через cron. Команда ls показала наличие задачи, а systemctl status — что cron функционирует без сбоев.
Финальный шаг: проверьте лог-файл и убедитесь, что копирование прошло удачно сразу после 20:00 на следующий день.
Три главных открытия, которые я сделал сам
Этот проект оказался неожиданно интересным и подарил мне три важных инсайта.
Никогда не запускайте скрипт без теста!
Первый скрипт я, как водится, не проверил — и, конечно, он сломался ещё на старте. Причина банальна: неверно оформил переменную DATE. Вместо DATE=“$(date %F)” написал DATE “$(date %F)”, в итоге “command not found” на 10-й строке.
Тестирование помогает быстро найти такие опечатки и ошибки с правами, а ещё — прокачать навык работы с bash и терминалом.
Используйте только абсолютные пути
Чтобы cron работал без сбоев, используйте полные пути — и к скриптам, и к папкам. Это избавит от неочевидных проблем и сэкономит время.
Не игнорируйте комментарии в коде
Комментарии — это ваши подсказки себе на будущее (и другим тоже), чтобы даже через полгода было понятно, зачем нужен тот или иной блок кода. В bash для этого используйте символ # — посмотрите мой скрипт, я старался пояснить все ключевые моменты.

Пройдёт пара месяцев, решите что-то доработать — и без комментариев легко напутать. Не ленитесь писать пояснения, это сэкономит вам немало нервов и времени.
Вот так я автоматизировал бэкапы в Linux с помощью своего bash-скрипта — и по дороге научился многому новому. Да, тут чуть больше мороки, чем в простых графических программах, но если хотите разобраться в bash — такой опыт даст реальную пользу и для вас, и для вашей системы.
Если вам понравилась эта статья, подпишитесь, чтобы не пропустить еще много полезных статей!
Премиум подписка — это доступ к эксклюзивным материалам, чтение канала без рекламы, возможность предлагать темы для статей и даже заказывать индивидуальные обзоры/исследования по своим запросам!
Подробнее о том, какие преимущества вы получите с премиум подпиской, можно узнать здесь
Также подписывайтесь на нас в:
- Telegram: https://t.me/gergenshin
- Youtube: https://www.youtube.com/@gergenshin
- Яндекс Дзен: https://dzen.ru/gergen
- Официальный сайт: https://www-genshin.ru







