Moved from github, lost history. Starting over.
[minecraft-server-init-script.git] / README
1 Minecraft Server Script v0.3
2 Leander Hutton
3 leander@one-button.org
4
5 INTRO:
6
7 USE THIS SOFTWARE AT YOUR OWN RISK.  THIS SCRIPT IS NOT WARRANTIED TO WORK PROPERLY OR AT ALL.  WILL NOT ANY ORGANS LARGER.  MAY ACCIDENTALLY ALL THE THINGS.
8
9 This script was written to make managing a Minecraft server a little easier.  It's been changed/revised and updated over the months and it currently supports running a server from a physical disk or a RAM disk and making regular backups.    
10
11 This script is designed to work like a typical init.d script but can be run in any environment you see fit, such as Mac OS X.  You only have to have the requirements below.  
12
13 REQUIREMENTS:
14
15 bash
16 JRE
17 Mojang's official minecraft_serer.jar or CraftBukkit's latest recommended release. 
18 GNU Screen
19 pgrep
20 rsync
21 GNU tar
22 find
23 An obsession with breaking blocks
24 An understanding significant other
25 Lots of free time
26
27 USAGE:
28
29 minecraft-server {start|restart|save-all|backup|writetodisk|stop|whitelist-add|whitelist-remove|ban|ban-ip|pardon|pardon-ip}
30
31 start: starts the Minecraft server.
32 restart: shuts down and starts the server. Disconnects any connected clients. 
33 save-all: saves all of the map data to disk.
34 backup: creates date-stamped gzipped tarball backup of the server into the backup directory. 
35 writetodsik: writes data in RAM disk to disk.  Only works if you're using RAM disk.
36 stop: stops the server.  Disconnects any connected clients. 
37 whitelist-add <player>: adds player to whitelist
38 whitelist-remove <player>: removes player to whitelist
39 ban <player>: bans player
40 pardon <player>: pardons player
41 ban-ip <ip>: bans ip address
42 pardon-ip <ip>: pardons ip address
43
44 MAKE SURE YOU EDIT THESE SETTINGS AT THE TOP OF THE SCRIPT:
45
46 MINECRAFT="minecraft_server.jar" # Name of your server jar file.  This script supports vanilla and craftbukkit.
47 MCPATH="/path/to/mc/server/" # Directory on disk of your MC server. Make sure your MINECRAFT jar file is located here.
48 ARGS="-Xmx1024M -Xms1024M -jar" # Standard arguments for the minecraft server jar.  
49 USER="steve" # User your minecraft server runs under.
50 BACKUPDIR="/path/to/backups/" # Directory for backup tar files.
51
52 The defaults will not work.  Make sure the programs referenced by the script are in the appropriate location.  You may need to change those too.  The script has been setup for use on Debian out of the box.
53
54 RECOMMENDED CRON TASKS:
55
56 It is recommended that you add a few cron jobs to the user running the Minecraft server.  These are for saving the map and doing backups.  Here are some example entries for your crontab:
57
58 # Save map to disk every 30 minutes
59 */30    *       *       *       *       /etc/init.d/minecraft-server save-all $>/dev/null
60 # Do a complete backup every 6 hours
61 15      */6     *       *       *       /etc/init.d/minecraft-server backup $>/dev/null
62
63 By default the script will keep 15 days worth of backups and then start removing the oldest ones.  You can edit the DAYSOFBACKUPS varibale to keep fewer or more backups.  
64
65 RAM DISK:
66
67 If you're using a Linux host you can create a tmpfs out of RAM and mount it like so:
68
69 mkdir /var/ramdisk
70 mount -t tmpfs none /var/ramdisk -o size=512m
71
72 If you want the tmpfs setup automatically on boot at the following line to /etc/fstab:
73
74 tmpfs           /var/ramdisk    tmpfs   defaults,size=512m      0       0
75
76 Here the size option is specified in megabytes.  Make sure you create a disk with plenty of room for your map to grow.
77
78 WARNING:  tmpfs contents are COMPLETELY DESTROYED on shutdown or power loss. PLEASE USE A UPS AND DO SOME SORT OF SYNCING TO DISK!
79
80 To use this script with a RAM disk set the RAMDRIVE variable to true and set RAMDISKDIR to the tmpfs' mount point.  You can also use this script to sync the RAM disk to a hard drive. The directory it syncs to is set by the MCPATH variable.  Add the following line to your crontab to get the disk sync going every ten minutes:
81
82 */10    *       *       *       *       /etc/init.d/minecraft-server writetodisk $>/dev/null
83
84 If RAMDISK="true" is set the script will load up the files into the tmpfs on startup and back out of the tmpfs on shutdown automatically.  If it's set to false it will just run from the disk (MCPATH) like normal.