vm:n8n:local_backup

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
vm:n8n:local_backup [2025/08/07 13:29] – создано adminvm:n8n:local_backup [2025/08/10 19:51] (текущий) admin
Строка 1: Строка 1:
-12+====== Install ====== 
 + 
 +**Действия на стороне ubuntu** 
 + 
 +Создаем папки и файл скрипта 
 + 
 +<code>sudo mkdir -p /opt/n8n/backups 
 +sudo chown -R $USER:$USER /opt/n8n/backups 
 +sudo nano /opt/n8n/backups/n8n_backup.sh</code> 
 + 
 +Вставляем скрипт\\ 
 +Обрати внимание на\\ 
 +**BACKUP_DIR="/opt/n8n/backups/temp"\\ 
 +ARCHIVE_DIR="/opt/n8n/backups"\\ 
 +MAX_BACKUPS=10\\ 
 +cd /opt/n8n || exit\\ 
 +cp -r /opt/n8n/n8n_data "$BACKUP_DIR/.n8n_backup_$TIMESTAMP"** 
 + 
 +<code>#!/bin/bash 
 + 
 +BACKUP_DIR="/opt/n8n/backups/temp" 
 +ARCHIVE_DIR="/opt/n8n/backups" 
 +TIMESTAMP=$(date +%F) 
 +MAX_BACKUPS=10 
 + 
 +mkdir -p "$BACKUP_DIR" 
 +mkdir -p "$ARCHIVE_DIR" 
 + 
 +cd /opt/n8n || exit 
 +docker-compose down 
 + 
 +# Копируем всю папку n8n и конфиги в BACKUP_DIR 
 +cp -r /opt/n8n/n8n_data "$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 
 +</code> 
 + 
 +Делаем файл исполняемым 
 +<code>chmod +x /opt/n8n/backups/n8n_backup.sh</code> 
 + 
 +Добавьте запуск скрипта в cron для автоматического выполнения по расписанию:\\ 
 +<code>sudo crontab -e</code> 
 + 
 +Добавьте строчку\\ 
 +0 4 * * * /opt/n8n/backups/n8n_backup.sh >> /opt/n8n/backups/n8n_backup.log 2>&
 + 
  • vm/n8n/local_backup.1754573369.txt.gz
  • Последнее изменение: 2025/08/07 13:29
  • admin