MineBackup
MineBackup - Automatically save and backup your server!
Features
- Numerous backup actions: Save (default); Copy and/or Compress. The copy action creates a copy of files in backup folder while the compress action creates a zip of files in backup folder. You do not need to enable both for compress to work.
- Numerous upload actions: Dropbox; FTP. These actions will upload the latest compressed version, so you will need to be using compression.
- Maintenance action: Cleanup. With this action enabled, old backups will only be deleted as scheduled (otherwise they will be deleted after a copy/compress action).
- Each action has a configurable interval. You can even set a specific time that an action should trigger (only once per day). Every action supports either method.
- You can either enable actions globally (default for all worlds) or enable/disable actions for specific worlds. Specific worlds can even have different time intervals for each action!
- Global or per world configurable amount of backups to be kept on disc. So a world that is rarely used can be compressed every few hours and set to have less copies retained.
- Global or per world configurable broadcast of backup status.
- Setting to enable an immediate backup on server restart/reload with configurable delay. With this disabled (default), scheduled actions will occur at their proper time, but if the server was stopped during that time, then it will run as soon as possible.
- Backup actions are staggered to try to prevent low-powered servers from getting overloaded. Instead of checking every world at one time and in order, a queue is checked once a minute to see if it needs to do a backup action.
- If no one has used the world since the last backup ("not dirty") then its actions are skipped.
- Able to backup plugins/other directories with a list of excluded paths (like dynmap's /tiles) and file types.
- Customizable messages. Everything sent to players is able to be translated or changed. Including broadcast groups.
- Configuration migration with a backup copy of the original configuration.
Caution
Does your server have a single-core processor or a low amount of memory (512mb and several plugins)?
Do NOT enable compression! Only enable copy.
Does your server operate over a typical home internet connection?
Do NOT enable dropbox or ftp!
Failure to understand this will almost certainly result in all of your players being disconnected.
Notes
[v0.5+] Due to changes to the old backup deletion code, the plugin will not automatically delete any v0.4 backups. You will need to manually delete them at an appropriate time.
[v5.9.2+] If you still have the old map format (world height 128) files in your world folders, it's going to yell at you on server startup. Once you have a backup of the world, delete level.dat_mcr and the *.mcr files in the region folder. They aren't needed after the conversion and double the size/time of the backup.
[v5.9.3+] Enable 'debug' in config.yml for a detailed list of the settings that are being used as each world/plugins is loaded. (Exact times are seconds from midnight, but stored as a negative number.)
Setup & Usage
Only save is enabled by default. You need to enable either 'copy' or 'compress'.
Download
MineBackup.jar (for auto-updaters)
Source
Default Config (created first start)
Default Strings (created first start)
Dropbox Linker (Google App Engine)
Credits
ThisIsAreku for the original MineBackup. This plugin has now been completely re-imagined and rewritten. The only thing untouched and unchanged is the name itself.
how can i make that minebackup upload the backups to an ftp server?
Does it save it in the minebackup folder
@ltguide
Thanks for the response.
There were players in the main world, but even if I tried to put at least 1 person in a separate world, it sometimes backs up and sometimes doesn't, regardless of if there has been any changes or not. I'll check some other things on my end, and play around with it some more. To me it just doesn't seem like it always makes a backup and worries me, maybe you could add an option (true/false or something) to force backups of everything, even if nothing really has changed? (also I tried changing something to the main world and it still didn't work)
It seems to be working better now though, more consistent. I just restarted everything and re downloaded, I don't know what the problem was. Thanks again for your time, the plugin is great. :)
@Rayvolution
I'll consider it. Since each world gets zipped at different times, it's a bit of an issue.
@68x
Do you have both copy and compress enabled? You only need one.
@Frazimuth
I just made a fresh install of just craftbukkit.jar and minebackup.jar then pasted your config in. '/mbck now' did everything correctly. (you probably don't want both copy and compress on) Were there players in the world? It won't do anything otherwise, because it would be a waste of time if no one has used the world.
Hi, I have an issue with compressing. It only will compress my "Survival_The_End" world, which is really bugging me, I've played around with a lot of the options and I can't get it to work, the only way to get the other worlds to save any way is to disable compressing and enable copying. (just enable copying, don't have to disable compress) Is this a known bug or am I missing something? I've played around with the options like I said and I searched around but couldn't find anything, sorry if this is a known problem or if I'm wasting your time.
Here is my config, I don't have any worlds listed but I tried with/without them overriding defaults and it still doesn't work.
Thanks for your time, we can PM or something.
Edit: I'm still new to all this.. sorry if its the wrong place or something.
Is there any way of deleting the world copy (the folder) after it is compressed?
@ltguide
A command would be fine too. Although, I found it very easy to setup and mostly self explanatory. There's plenty of other plugins out there that are much much more complicated to setup, like Dynmap! :P
A simple "Compress to one file: True/False" (Defaulted to False) wouldn't be too much for the users to deal with on their end I wouldn't think.
Although personally, I'm unsure why anyone would want to breakup their backups into one file per map. Reason being, usually when a legit survival server running multiple maps has to restore the server from a backup, they have to restore all the maps (even the working/undamaged ones) to retain the continuity of the server as a whole and revert the entire server back to a previous backup. Even if it was only 1 or 2 maps that broke. So on their end, to do that means tediously unzipping every single world instead of one big file.
So maybe it should just put them all in one file be default and just allow the option to break it down for servers who want it that way?
Just my 2 cents. :)
@Rayvolution
People already complain about this being too complicated to setup :( How about as a command?
Is there anyway to make MineBackup compress *all* the worlds and plugins into one large zip file instead of 1 for each? That would be wonderful!
My server runs a *lot* of maps (40+) and if I ever have to do a full reload off a backup, that is a *lot* of files I'd have to reload one-by-one when I could just unzip the entire folder with each world in their original subfolders..
Thanks so much for fixing the config <3
Yay, update ! :D
I added some quick setup info to the top of the default config.yml, so hopefully it'll help some first time users out.
v5.9
You can enable the 'broadcast' setting globally or per-world like other default settings. The message is sent to every player regardless of their current world since any lag or such would affect everyone.
If you don't care about the Done! message, set 'action_done' to '' in strings.yml and it will not be sent.
@DanielMuhlig You should really learn the plugin before asking something.
Command is "/minebackup now" to make a backup now or use CraftBukkits built in save "/save-all"
Is it possible to force a save with a command ? It would be nive to force a save before executing some heavy WorldEdit commands e.g. /minebackup save <world>. i.e. not just expire the timer, for force a specific action.
Or how often could I set the save of my main world to? every 5 minutes? every 2? What is safe?
@ccman972
If you don't have a huge server that needs customization, just set "compress: true" or "copy: true" under default_actions. Then all your words will be backed up every hour by default. Sounds simple to me.
@Sirsnork
I'll add a command to trigger upload actions. All the actions can take a specific time or interval. You can do "ftp: 1h" if you'd like.
Hi
First, nice plugin!
I'm trying to setup backup to FTP and want to know is is possible to force a backup to FTP? Nothing I can see anywhere indicates it is, but it would make testing to see if my config is right much easier, especially as I notice comments that the ftp server must already have all the folders created. Assuming I hadn't caught that comment my backups would have failed tonight, and I would have to wait until tomorrow night to even see if it's setup properly (which I may have to do anyway if I've screwed up) :)
I'd also like to be able to specify hourly backups to FTP since the FTP server is local, but it appears you can only select a time each day for it to happen.
Thanks
@ignembestia
Did you change destination.format? This doesn't look right at all: \minebackup\Survival\Survival )-( Y: 2012 - Mo: 03 - D: 15 - H: 17 - Min: 06
I keep getting this error when the backup starts:
05:06 PM [INFO] [MineBackup] * copying worlds\Survival 05:06 PM [INFO] [MineBackup] \ failed 05:06 PM [SEVERE] [MineBackup]
-------05:06 PM [SEVERE] [MineBackup] # copy: .\Survival -> .\minebackup\Survival\Survival )-( Y: 2012 - Mo: 03 - D: 15 - H: 17 - Min: 06 05:06 PM [SEVERE] [MineBackup] java.io.FileNotFoundException: .\minebackup\Survival\Survival )-( Y: 2012 - Mo: 03 - D: 15 - H: 17 - Min: 06\data\idcounts.dat (The filename, directory name, or volume label syntax is incorrect) 05:06 PM [SEVERE] [MineBackup] java.io.FileOutputStream.open(Native Method) 05:06 PM [SEVERE] [MineBackup] java.io.FileOutputStream.<init>(Unknown Source) 05:06 PM [SEVERE] [MineBackup] ltguide.base.utils.DirUtils.copyFile(DirUtils.java:41) 05:06 PM [SEVERE] [MineBackup] ltguide.base.utils.DirUtils.copyDir(DirUtils.java:35) 05:06 PM [SEVERE] [MineBackup] ltguide.base.utils.DirUtils.copyDir(DirUtils.java:34) 05:06 PM [SEVERE] [MineBackup] ltguide.base.utils.DirUtils.copyDir(DirUtils.java:24) 05:06 PM [SEVERE] [MineBackup] ltguide.minebackup.threads.TaskProcess.process(TaskProcess.java:205) 05:06 PM [SEVERE] [MineBackup] ltguide.minebackup.threads.TaskProcess.runOnce(TaskProcess.java:122) 05:06 PM [SEVERE] [MineBackup] ltguide.minebackup.threads.TaskProcess.run(TaskProcess.java:111) 05:06 PM [SEVERE] [MineBackup] com.bergerkiller.bukkit.nolagg.examine.TimedWrapper.run(TimedWrapper.java:17) 05:06 PM [SEVERE] [MineBackup] org.bukkit.craftbukkit.scheduler.CraftWorker.run(CraftWorker.java:34) 05:06 PM [SEVERE] [MineBackup] java.lang.Thread.run(Unknown Source) 05:06 PM [SEVERE] [MineBackup]-------I don't know what is causing this. I thought maybe it was Multiverse, because it switches the world locations around, but I can't be sure.
Here's a list of my plugins:
bPermissions, NPCCreatures, Buycraft, Vault, Multiverse-Core, Restarter, TreeAssist, CloneMe, VoxelUpdate, EndReset, BetterSleep, EasyEnchant, DisguiseCraft, OpenInv, Pail, Multiverse-NetherPortals, Spout, LethalSnow, War, TerrainControl, PailPlus, MineBackup, iConomy, BookWorm, CraftBookCommon, CraftBukkitUpToDate, BKCommonLib, mcbans, Lockette, Volcano, NoLaggChunks, Orebfuscator, CreeperHeal, CraftBookMechanisms, NoLaggTNT, Multiverse-Portals, StainedGlass, NoLaggItemStacker, NoLaggExamine, GunPack, CraftBookCircuits, mcMMO, SpoutShops, NoLaggLighting, NoLaggItemBuffer, WorldEdit, NoLaggMonitor, CraftBookVehicles, CommandBook, NoLagg, WorldGuard, SpoutEssentials, MagicSpells
@ltguide Hey, I made a ticket in Github about a wierd error. Is it me or the saves and compressions aren't scheduled correctly? They seem to activate very randomly.
@allix8
Yes, this will take over saving worlds.
@Advokatt
Yep, It's working even with R0.3 #2067.