Advertisement
kerbo_

railroader_backup.sh

Feb 12th, 2025
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.58 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # Colors
  4. RED="\e[0;91m"
  5. GREEN="\e[0;92m"
  6. YELLOW="\e[0;93m"
  7. NC="\e[0m"
  8.  
  9. # CHANGE ME
  10. railroaderDir="/opt/games/steam/steamapps/compatdata/1683150/pfx/drive_c/users/steamuser/AppData/LocalLow/Giraffe Lab LLC/Railroader/Saves"
  11. backupDir="/data/backup/savegames/Railroader"
  12.  
  13. dateString=$(date +"%Y-%m-%d_%H-%M")
  14.  
  15. if [[ ! -d "$backupDir" ]]; then
  16.     mkdir "$backupDir"
  17.     if [[ ! -d "$backupDir" ]]; then
  18.         echo "Error creating backup directory: $backupDir"
  19.         exit 1
  20.     fi
  21. fi
  22.  
  23. cd "$railroaderDir" || exit 1
  24.  
  25. saves=(*.shortsave)
  26.  
  27. for save in "${saves[@]}"; do
  28.     if [[ ! "$save" =~ "_auto" && -f "$save" ]]; then
  29.         save_hash=$(md5sum "$save" | cut -d' ' -f1)
  30.         backup_file=$(ls "${backupDir}" | grep "${save}-" 2>/dev/null | tail -n1)
  31.         backup="${backupDir}/${backup_file}"
  32.         backup_hash=""
  33.         if [[ -n "$backup" ]]; then
  34.             backup_hash=$(md5sum "$backup" | cut -d' ' -f1)        
  35.         fi
  36.         #echo save: $save
  37.         #echo backup: $backup
  38.         #echo save_hash: $save_hash
  39.         #echo backup_hash: $backup_hash
  40.         if [[ "$backup_hash" == "$save_hash" ]]; then
  41.             echo -e "${GREEN}$save matches latest backup, no backup needed${NC}"
  42.         else
  43.             cp "$save" "${backupDir}/${save}-${dateString}"
  44.             RET=$?
  45.             if [[ $RET -eq 0 ]]; then
  46.                 echo -e "${YELLOW}Copied $save to ${backupDir}/${save}-${dateString}${NC}"
  47.             else
  48.                 echo -e "${RED}Error! cp returned $RET for $save${NC}"
  49.             fi
  50.         fi
  51.     fi
  52. done
  53.  
  54.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement