Это старая версия документа!
Install
Действия на стороне ubuntu
Создаем файл скрипта
sudo nano /root/scripts/n8n_backup.sh
Вставляем скрипт
#!/bin/bash BACKUP_DIR="/root/backups/n8n" ARCHIVE_DIR="/root/backups" TIMESTAMP=$(date +%F) MAX_BACKUPS=10 mkdir -p "$BACKUP_DIR" mkdir -p "$ARCHIVE_DIR" cd /root/n8n_ssl || exit docker-compose down # Копируем всю папку .n8n и конфиги в BACKUP_DIR cp -r /root/.n8n "$BACKUP_DIR/.n8n_backup_$TIMESTAMP" cp docker-compose.yml "$BACKUP_DIR/docker-compose_$TIMESTAMP.yml" cp .env "$BACKUP_DIR/.env_$TIMESTAMP" 2>/dev/null # Создаём архив из содержимого BACKUP_DIR, архив в ARCHIVE_DIR tar -czvf "$ARCHIVE_DIR/n8n_backup_$TIMESTAMP.tar.gz" -C "$BACKUP_DIR" . # Удаляем временные неархивированные файлы из BACKUP_DIR rm -rf "$BACKUP_DIR/.n8n_backup_$TIMESTAMP" rm -f "$BACKUP_DIR/docker-compose_$TIMESTAMP.yml" rm -f "$BACKUP_DIR/.env_$TIMESTAMP" docker-compose up -d # Ротация: удаляем старые архивы в ARCHIVE_DIR, чтобы осталось не более MAX_BACKUPS cd "$ARCHIVE_DIR" || exit BACKUPS_COUNT=$(ls -1 n8n_backup_*.tar.gz 2>/dev/null | wc -l) if [ "$BACKUPS_COUNT" -gt "$MAX_BACKUPS" ]; then TO_DELETE=$((BACKUPS_COUNT - MAX_BACKUPS)) ls -1t n8n_backup_*.tar.gz | tail -n "$TO_DELETE" | xargs rm -f fi
Делаем файл исполняемым
chmod +x /root/scripts/n8n_backup.sh