| 1 | #!/bin/bash
|
| 2 | # Startup command for Pterodactyl: "./start.sh"
|
| 3 | # Don't forget to give execute permissions (chmod +x start.sh)
|
| 4 |
|
| 5 | # Exit on error
|
| 6 | set -e
|
| 7 |
|
| 8 | # static variables
|
| 9 | PREFIX="\033[90m[\033[32mstart.sh\033[90m]\033[0m"
|
| 10 |
|
| 11 |
|
| 12 | ######
|
| 13 | # cleanup logs
|
| 14 | ######
|
| 15 | echo -e "${PREFIX} ๐งน Deleting logs older than 30 days..."
|
| 16 | find ./logs -type f -mtime +30 -name '*.log.gz' -exec rm -f {} \;
|
| 17 |
|
| 18 | ######
|
| 19 | # cleanup worlds
|
| 20 | ######
|
| 21 | echo -e "${PREFIX} ๐ Starting region cleanup for world"
|
| 22 | echo -e "${PREFIX} ๐ Ensuring backup folder exists..."
|
| 23 | mkdir -p ./world/region_backups
|
| 24 | echo -e "${PREFIX} ๐ฆ Moving region files older than 90 days to backup folder..."
|
| 25 | find ./world/region -type f -name '*.mca' -mtime +90 | while read -r file; do
|
| 26 | mv -fv "$file" ./world/region_backups/
|
| 27 | touch ./world/region_backups/"$(basename "$file")"
|
| 28 | done
|
| 29 |
|
| 30 | echo -e "${PREFIX} ๐ Starting region cleanup for world_the_end"
|
| 31 | echo -e "${PREFIX} ๐ Ensuring backup folder exists..."
|
| 32 | mkdir -p ./world_the_end/DIM1/region_backups
|
| 33 | echo -e "${PREFIX} ๐ฆ Moving region files older than 7 days to backup folder..."
|
| 34 | find ./world_the_end/DIM1/region -type f -name '*.mca' -mtime +7 | while read -r file; do
|
| 35 | mv -fv "$file" ./world_the_end/DIM1/region_backups/
|
| 36 | touch ./world_the_end/DIM1/region_backups/"$(basename "$file")"
|
| 37 | done
|
| 38 |
|
| 39 | echo -e "${PREFIX} ๐งน Deleting backup region files older than 7 days..."
|
| 40 | find ./world/region_backups -type f -name '*.mca' -mtime +7 -exec rm -fv {} \;
|
| 41 | find ./world_the_end/DIM1/region_backups -type f -name '*.mca' -mtime +7 -exec rm -fv {} \;
|
| 42 |
|
| 43 | ######
|
| 44 | # Start the Server
|
| 45 | ######
|
| 46 | echo -e "${PREFIX} ๐ Starting Minecraft server..."
|
| 47 | java -Xms128M -XX:MaxRAMPercentage=95.0 -XX:+AlwaysPreTouch -XX:+DisableExplicitGC -XX:+ParallelRefProcEnabled -XX:+PerfDisableSharedMem -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1HeapRegionSize=8M -XX:G1HeapWastePercent=5 -XX:G1MaxNewSizePercent=40 -XX:G1MixedGCCountTarget=4 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1NewSizePercent=30 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:G1ReservePercent=20 -XX:InitiatingHeapOccupancyPercent=15 -XX:MaxGCPauseMillis=200 -XX:MaxTenuringThreshold=1 -XX:SurvivorRatio=32 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar server.jar nogui
|