pulse-monitor/backup.sh

63 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
# Backup script for pulse-monitor project
# Creates a backup directory with today's date and copies all relevant files
DATE=$(date +%Y%m%d)
BACKUP_DIR="backup_${DATE}"
# Check if backup already exists
if [ -d "$BACKUP_DIR" ]; then
echo "Backup directory $BACKUP_DIR already exists."
read -p "Overwrite? (y/n) " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
echo "Backup cancelled."
exit 1
fi
rm -rf "$BACKUP_DIR"
fi
# Create backup directory
mkdir -p "$BACKUP_DIR"
# Copy relevant files
echo "Creating backup in $BACKUP_DIR..."
# Go source files
cp -v *.go "$BACKUP_DIR/" 2>/dev/null
# Markdown documentation
cp -v *.md "$BACKUP_DIR/" 2>/dev/null
# Configuration files
cp -v *.yaml "$BACKUP_DIR/" 2>/dev/null
cp -v *.yml "$BACKUP_DIR/" 2>/dev/null
# Shell scripts (except this one to avoid recursion issues)
for f in *.sh; do
if [ "$f" != "backup.sh" ]; then
cp -v "$f" "$BACKUP_DIR/" 2>/dev/null
fi
done
# Build script
cp -v build.sh "$BACKUP_DIR/" 2>/dev/null
# Makefile if exists
cp -v Makefile "$BACKUP_DIR/" 2>/dev/null
# Go module files
cp -v go.mod "$BACKUP_DIR/" 2>/dev/null
cp -v go.sum "$BACKUP_DIR/" 2>/dev/null
# Training digits directory
if [ -d "training_digits" ]; then
cp -rv training_digits "$BACKUP_DIR/" 2>/dev/null
fi
echo ""
echo "✓ Backup complete: $BACKUP_DIR"
echo "Files backed up:"
ls -la "$BACKUP_DIR/"