Tired of the backup plugins that are either too buggy or over-encumbered? As a server owner, I find this script irreplaceable as all other solutions I've been able to locate are java-based and plugins. INSTALLATION: Simply drop this script (without an extension) in your LINUX server's /etc/cron.hourly directory (or if you prefer daily, /etc/cron.daily) Now includes MPSay, a custom plugin that allows /say to be isolated to single worlds, using /mpsay [world] [message]. CONFIGURATION: Setting any of the _message variables to nothing (ie. "backup_message" => "",) will disable the message from being sent to your server. Code: #-> Leaving a _message option blank("") will disable the message entirely. :) my %Config = ( "username" => "minecraft", "chown_to_user" => "minecraft", "chown_to_group" => "minecraft", "mc_dir" => "/home/minecraft/", "worlds" => ["world", "other_world", "creative", "survival"], "backup_dir" => "/home/minecraft/backups/", "max_backups" => 48, "say_command" => "broadcast", "saving_message" => "Beginning World Save", "backup_message" => "", "backup_end_message" => "", # To disable any of the options below, set them to 'undef' # (without 's) not 0 or wonky things COULD possibly happen. "multiworld" => 1, "skip_counter" => undef, #any valid number, 1, 2, 5, 30, etc. "save" => 1, "backup" => 1, "symlink" => 1, "report_stats" => 1, "perworld_reports" => 1, # Options below are unchangable. Please, please do not change them. "mpsay_installed" => undef, #Determined automatically for safety "chown_uid_gid" => , #Determined automatically for safety ); username: This should be the username under which your MineCraft server is running. chown_to_user: will chown the backups to the user specified chown_to_group: will chown the backups to the group specified. mc_dir: Obviously, the directory where your server is located. (ie. /home/minecraft/ - INCLUDE /'s) worlds: Create a list of your worlds here, exactly as demonstrated above. backup_dir: Where the backup files should be placed.. Again, INCLUDE ALL /'s! max_backups: The script will automatically remove the oldest backup(s) if more than this number is found in backup_dir. say_command: Use say, msg [playername], or, as is default; broadcast. saving_message: Set to "" to disable. The text sent to the game before saving. backup_message: Set to "" to disable. Text sent to the game before backing up the world directory. backup_end_message: Set to "" to disable. Text sent to the game when the backup is complete. multiworld: For safety's sake, I'd just leave this enabled, even if you only run one world. skip_counter: undef to disable. Otherwise, makes the script run at intervals of cron time. save: undef to disable. Disables saving. backup: undef to disable. Disables backups. symlink: undef to disable. Disables generation of symlinks. report_stats: Will report info relevant to the script. (Num. of files processed, archive size and the time it took to complete the backup.) perworld_stats: If MPSay is intalled, will report stats to each world as it's backed up. mpsay_installed: DO NOT CHANGE. chown_uid_gid: DO NOT CHANGE. NOTICE: I claim absolutely zero responsibility for any damage this script may cause to your system, MineCraft (both server and client) installations, loss of information or whathaveyou. This script is minimal and I'm SURE there are bound to be bugs, though none I'm currently aware of. I'll maintain the script as much as possible. Lastly, it's in Perl because I've mad experience (14 years now) with the language, my bashfoo is weak and I avoid Java if at all possible. DOWNLOAD: Both the script and the associated plugin are attached to this post. Please report any bugs you find, I'll be happy to fix them as soon as I'm able. SUGGESTION: I seriously advise configuring the script as you see fit, dropping it into /etc/cron.hourly/ and running it with the command: sudo perl cronjob_v2 while watching the output both in SSH and in-game, just to make sure it's functioning to your preference.