Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- require('MulticraftAPI.php');
- $api = new MulticraftAPI('http://<your multicraft url>/api.php', '<your username>', '<your api key>');
- function getData($result) {
- if (!$result['success']) {
- die($result['errors'][0]);
- }
- return $result['data'];
- }
- $date = date('YmdHis');
- exec('mkdir /tmp/minecraft-backups-' . $date);
- $servers = getData($api->listServers());
- foreach ($servers['Servers'] as $server_id => $server_name) {
- print("Backing up server " . $server_name . " (id " . $server_id . ")\n");
- print(" Disabling automatic saving...\n");
- $api->sendConsoleCommand($server_id, 'save-on');
- $api->sendConsoleCommand($server_id, 'save-all');
- $api->sendConsoleCommand($server_id, 'save-off');
- sleep(10);
- print(" Compressing server directory...\n");
- exec('mkdir /tmp/minecraft-backups-' . $date . '/' . $server_name);
- exec('tar czf /tmp/minecraft-backups-' . $date . '/' . $server_name . '/' . $date . '.tar.gz /<your multicraft path>/servers/server' . $server_id . '/* 2>/dev/null');
- print(" Enabling automatic saving...\n");
- $api->sendConsoleCommand($server_id, 'save-on');
- }
- print("Sending backups to backup server...\n");
- exec('RSYNC_PASSWORD="<your rsync password>" rsync -rt /tmp/minecraft-backups-' . $date . '/* rsync://<your rsync url>/');
- exec('rm -rf /tmp/minecraft-backups-' . $date);
- print("Backup complete.\n");
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement