Когда нужно хранить несколько срезов состояния проекта или конфигов, удобно использовать ротацию директорий. Это быстрый, прозрачный и полностью файловый способ отката.
Предположим, у нас есть рабочая директория
current/ и несколько ее копий:snapshot1/ - свежий слепокsnapshot2/ - предыдущийlast-good/ - стабильная проверенная версияРотация выглядит так:
snapshot2 ← snapshot1 ← current
🛠 Скрипт ротации
BASE="/opt/myapp"
rotate() {
cd "$BASE" || exit 1
rm -rf snapshot2
mv snapshot1 snapshot2 2>/dev/null || true
cp -a current snapshot1
# Обновление last-good, если тесты прошли
if bash run_tests.sh; then
rm -rf last-good
cp -a current last-good
fi
}
rotate
➕ Преимущества
cp -a быстрее архивации;можно открыть любой снапшот обычным
ls/cd;откат в 1 команду:
cp -a last-good currentработает для конфигов, кода и сервисов.
BashTex 📱 #bash