50 lines
1.4 KiB
Bash
Executable File
50 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
# Setup backup script and cron job
|
|
|
|
set -e
|
|
|
|
echo "Setting up backup system..."
|
|
|
|
# Create backup directory
|
|
mkdir -p /backups/explorer
|
|
chown explorer:explorer /backups/explorer
|
|
|
|
# Create backup script
|
|
cat > /usr/local/bin/explorer-backup.sh << 'EOF'
|
|
#!/bin/bash
|
|
BACKUP_DIR="/backups/explorer"
|
|
DATE=$(date +%Y%m%d_%H%M%S)
|
|
mkdir -p $BACKUP_DIR
|
|
|
|
# Backup database
|
|
echo "Backing up database..."
|
|
pg_dump -U explorer explorer | gzip > $BACKUP_DIR/db_$DATE.sql.gz
|
|
|
|
# Backup configuration
|
|
echo "Backing up configuration..."
|
|
tar -czf $BACKUP_DIR/config_$DATE.tar.gz \
|
|
/home/explorer/explorer-monorepo/.env \
|
|
/etc/nginx/sites-available/explorer \
|
|
/etc/systemd/system/explorer-*.service \
|
|
/etc/cloudflared/config.yml 2>/dev/null || true
|
|
|
|
# Cleanup old backups (keep 30 days)
|
|
echo "Cleaning up old backups..."
|
|
find $BACKUP_DIR -type f -mtime +30 -delete
|
|
|
|
echo "Backup completed: $DATE"
|
|
EOF
|
|
|
|
chmod +x /usr/local/bin/explorer-backup.sh
|
|
chown explorer:explorer /usr/local/bin/explorer-backup.sh
|
|
|
|
# Add to crontab (daily at 2 AM)
|
|
(crontab -l 2>/dev/null | grep -v explorer-backup.sh; echo "0 2 * * * /usr/local/bin/explorer-backup.sh >> /var/log/explorer-backup.log 2>&1") | crontab -
|
|
|
|
echo "Backup system configured!"
|
|
echo "Backups will run daily at 2 AM"
|
|
echo "Backup location: /backups/explorer"
|
|
echo ""
|
|
echo "To run backup manually: /usr/local/bin/explorer-backup.sh"
|
|
|