TGViewer
DevOps на минималках DevOps на минималках @devopseri · 2.78K subscribers
Post #390 650
Делаем безопасный backup конфига перед изменением!

Перед правкой nginx, systemd unit, docker-compose.yml или любого важного конфига полезно сначала сохранить копию. Это занимает секунды, но сильно упрощает откат.

Зададим путь к файлу:
file="/etc/nginx/nginx.conf"


Добавим timestamp:
stamp="$(date +%Y%m%d-%H%M%S)"


Соберём имя backup-файла:
backup="${file}.${stamp}.bak"


Перед копированием проверим, что файл существует:
test -f "$file" || {
echo "Файл не найден: $file"
exit 1
}


Теперь создаём копию с сохранением прав и владельца:
sudo cp -a "$file" "$backup"


После этого можно редактировать конфиг:
sudo nano "$file"


Если это nginx, сначала проверяем конфигурацию:
sudo nginx -t


И только потом перезагружаем сервис:
sudo systemctl reload nginx


Если что-то пошло не так, откат простой:
sudo cp -a "$backup" "$file"
sudo systemctl reload nginx


Для удобства можно посмотреть последнюю копию:
ls -lt /etc/nginx/nginx.conf.*.bak | head


Backup перед изменением конфига это маленькая привычка, которая часто экономит часы восстановления после неудачной правки.
More from @devopseri
  1. Sep 21, 2026Из вашего резюме вообще понятно, что вы умеете как DevOps-инженер? Мы разбили работу DevOp…
  2. Sep 21, 2026Настраиваем простой healthcheck для Docker-контейнера! Контейнер может быть запущен, но пр…
  3. Sep 19, 2026Когда ты уже станешь настоящим DevOps? Открываешь вакансию: Linux, Docker, Kubernetes, CI/…
  4. Sep 19, 2026Знали, зачем в Bash иногда используют exec вместо обычного запуска команды? Обычно команду…
  5. Sep 17, 2026Сколько времени вы тратите на отчеты, которые можно собрать автоматически? Если каждый мес…
  6. Sep 5, 2026Проверяем HTTP endpoint из shell-скрипта! Иногда нужно быстро понять, жив ли сервис: API,…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →