upload files

This commit is contained in:
Joseph Aquino 2026-04-14 17:15:33 +00:00
parent 88a98a9a3d
commit 0b36a9a696
2 changed files with 81 additions and 0 deletions

55
backup_foundry.sh Normal file
View File

@ -0,0 +1,55 @@
#!/bin/bash
#add more paths for different foundry instances
instances=(
"/home/ubuntu/foundryuserdata-joseph|foundry-joseph"
)
BACKUP_ROOT="/home/ubuntu/backups"
RCLONE_REMOTE="googledrive:FoundryBackups"
RETENTION_DAYS_LOCAL=7
RETENTION_DAYS_REMOTE=30
DATE=$(date +%Y-%m-%d_%H%M)
for ENTRY in "${instances[@]}"; do
SOURCE_DIR="${ENTRY%%|*}"
PM2_NAME="${ENTRY##*|}"
FOLDER_NAME=$(basename "$SOURCE_DIR")
BACKUP_DIR="$BACKUP_ROOT/$FOLDER_NAME"
FILENAME="$FOLDER_NAME-backup-$DATE.tar.gz"
mkdir -p "$BACKUP_DIR"
echo "Processing: $PM2_NAME (Folder: $FOLDER_NAME)"
echo "Stopping PM2 process: $PM2_NAME..."
pm2 stop "$PM2_NAME"
echo "Zipping files..."
tar -czf "$BACKUP_DIR/$FILENAME" -C "$SOURCE_DIR" .
TAR_EXIT_CODE=$?
echo "Restarting PM2 process: $PM2_NAME..."
pm2 start "$PM2_NAME"
if [ $TAR_EXIT_CODE -eq 0 ]; then
echo "Local backup successful: $FILENAME"
echo "Uploading to Google Drive..."
rclone copy "$BACKUP_DIR/$FILENAME" "$RCLONE_REMOTE/$FOLDER_NAME" --transfers=4 --checkers=8
echo "Cleaning remote old files..."
rclone delete "$RCLONE_REMOTE/$FOLDER_NAME" --min-age ${RETENTION_DAYS_REMOTE}d
else
echo "BACKUP FAILED for $FOLDER_NAME "
fi
echo "Cleaning local old files..."
find "$BACKUP_DIR" -type f -name "*.tar.gz" -mtime +$RETENTION_DAYS_LOCAL -delete
done
echo "All backup tasks completed."

26
git_save.sh Normal file
View File

@ -0,0 +1,26 @@
#!/bin/bash
PROJECT_DIR="/home/ubuntu/foundryuserdata-joseph"
PM2_PROCESS_NAME="foundry-joseph"
DATE=$(date '+%Y-%m-%d %H:%M')
echo "Starting Git Commit for: $PM2_PROCESS_NAME"
echo "Stopping Foundry..."
pm2 stop "$PM2_PROCESS_NAME"
cd "$PROJECT_DIR" || { echo "Directory not found! Exiting."; exit 1; }
echo "Adding files..."
git add .
echo "Committing..."
git commit -m "Snapshot: $DATE"
echo "Pushing to Remote..."
git push origin main
echo "Restarting Foundry..."
pm2 start "$PM2_PROCESS_NAME"
echo "Done!"