#!/bin/bash # Configuration LOG_FILE="/root/backup.log" MYSQL_BACKUP_SCRIPT="/root/backup_mysql.sh" UPLOADER_BINARY="/root/uploader-linux-amd64" # MinIO Credentials (can be modified here or passed via env) MINIO_ENDPOINT="http://107.173.50.22:5017" MINIO_ACCESS_KEY="WyJYxDobmp9glIXVAteC" MINIO_SECRET_KEY="TNO0ZJ4AH5QupFwDtiLxavUeMVmz2fo1YXRGsI7c" MINIO_BUCKET="backup" # Directories to backup (comma separated) # Example: "/root/vpn_server,/etc/nginx/conf.d" DIRS_TO_BACKUP="/root/db_backups,/etc/nginx/conf.d" echo "========================================================" >> "$LOG_FILE" echo "[$(date)] Starting Daily Backup Task..." >> "$LOG_FILE" # 1. Execute MySQL Backup if [ -f "$MYSQL_BACKUP_SCRIPT" ]; then echo "[$(date)] Running MySQL backup script..." >> "$LOG_FILE" # Pass credentials to the MySQL script via environment variables if needed, # but currently backup_mysql.sh calls uploader internally. # We should update backup_mysql.sh to use these credentials too, or rely on them being embedded/env. # For now, let's export them so child processes can see them if they use os.Getenv export MINIO_ENDPOINT export MINIO_ACCESS_KEY export MINIO_SECRET_KEY export MINIO_BUCKET bash "$MYSQL_BACKUP_SCRIPT" >> "$LOG_FILE" 2>&1 if [ $? -eq 0 ]; then echo "[$(date)] MySQL backup script finished." >> "$LOG_FILE" else echo "[$(date)] Error: MySQL backup script failed!" >> "$LOG_FILE" fi else echo "[$(date)] Error: MySQL backup script not found at $MYSQL_BACKUP_SCRIPT" >> "$LOG_FILE" fi # 2. Execute File/Directory Backup using Go Uploader if [ -f "$UPLOADER_BINARY" ]; then echo "[$(date)] Running Directory backup..." >> "$LOG_FILE" chmod +x "$UPLOADER_BINARY" # Run uploader with explicit flags "$UPLOADER_BINARY" \ -dir "$DIRS_TO_BACKUP" \ -bucket "$MINIO_BUCKET" \ -endpoint "$MINIO_ENDPOINT" \ -access-key "$MINIO_ACCESS_KEY" \ -secret-key "$MINIO_SECRET_KEY" \ >> "$LOG_FILE" 2>&1 if [ $? -eq 0 ]; then echo "[$(date)] Directory backup finished." >> "$LOG_FILE" else echo "[$(date)] Error: Directory backup failed!" >> "$LOG_FILE" fi else echo "[$(date)] Error: Uploader binary not found at $UPLOADER_BINARY" >> "$LOG_FILE" fi echo "[$(date)] Daily Backup Task Completed." >> "$LOG_FILE" echo "========================================================" >> "$LOG_FILE"