PerfectBackup
Najprostszy sposób na tworzenie kopii zapasowych serwera i ich przywracanie, za pomocą poleceń w grze.
- Dostępne pliki
- 1
- Obsługiwane wersje
- 1
- Najnowszy plik
- 17.11.2016
Tworzenie kopii zapasowych twojego serwera to jedna z najważniejszych rzeczy do zrobienia jako właściciel. Dlatego stworzyłem dla Ciebie idealne narzędzie – dla Ciebie i dla mnie.
Ten plugin prawdopodobnie jest najłatwiejszym pluginem do tworzenia kopii zapasowych Twojego serwera, jaki istnieje!
Jednym poleceniem (/backup) możesz zapisać cały swój serwer (lub tylko jego część).
Następnie innym poleceniem (/restore) możesz przywrócić starą kopię zapasową!
Dzięki temu pluginowi nie musisz nawet uruchamiać CraftBukkit, aby przywrócić kopię zapasową!
Możesz uruchomić plik JAR za pomocą Javy w ten sposób:
“ java -jar PerfectBackup <backup_path> <server_path> [log] ”
Z backup_path podajesz ścieżkę do folderu/zipa kopii zapasowej,
server_path podaje ścieżkę do katalogu serwera,
log to wartość logiczna (true/false) określająca, czy ma wyświetlać log debugowania (domyślnie true).
To przywróci kopię zapasową folderu/zipa na Twój serwer, bez konieczności uruchamiania CraftBukkit.
Można go używać w mini-grach, gdy chcesz, aby serwer resetował się automatycznie po każdej grze.
Możesz także zmieniać nazwy swoich plików kopii zapasowej i przenosić je*. Będą nadal działać.
* Jeśli je przeniesiesz, komenda w grze /backups nie będzie ich już pokazywać.
Ten plugin dodaje trzy podstawowe komendy:
- /backup: Tworzy kopię zapasową serwera.
- /backups: Wyświetla listę lokalnych kopii zapasowych.
- /restore [id]: Przywraca kopię zapasową.
- /delbackup [id]: Usuwa lokalną kopię zapasową.
/testftp: Testuje połączenie FTP.

# Config File # The automatic backup system. # Players with permission PerfectBackup.warning will be warned on automatic backup. # interval: 2 h # Interval format: # <amount> <t/s/m/h/d> # t = Ticks, s = Seconds, m = Minutes, h = Hours, d = Days crontask: '0 0 4 * * *' # This would make it every day at 4 AM # CronTask format: # * * * * * * # | | | | | | # | | | | | +–––– Day of the Week (1-7) # | | | | +–––––– Month (1-12) # | | | +–––––––– Day of the Month (1-31) # | | +–––––––––– Hour (0-23) # | +–––––––––––– Minute (0-59) # +––––––––––––– Second (0-59) # A few more examples... # crontask: '0 0 * * * *' This would make it every hour # crontask: '0 0 4 * * 7' This would make it every sunday at 4 AM # crontask: '0 0 4 1 * *' This would make it every first of the month at 4 AM # The format for backup names. # If two backups have the same name, it will append " (1)", " (2)" etc. backupformat: 'PerfectBackup {DATE}' # The format for dates. # MM = month, DD = Day, YYYY = Year, HH = 12h Hours, hh = 24h Hours, mm = Minutes, ss = Seconds, ms = Milliseconds, AM = AM/PM dateformat: 'MM-DD-YYYY hhh mmm sss' # e.g. 03-10-2016 11h 47m 24s # Whether the backups should be in a zip file or in a folder. zipbackups: true # The folder where to store the backups locally. localpath: 'plugins/PerfectBackup/backups' # The maximum backups stored. Will delete older backups when reached. (≤ 0 to disable) # Note: this will only work with local backups (fallbacks included). maxbackups: -1 # Whether or not the plugin should broadcast when automatic backups start/end. # If this is set to false, only players with the PerfectBackup.warning permission will see it. broadcast: false # Whether or not the plugin should broadcast when manual backups start/end. # If this is set to false, only players with the PerfectBackup.warning permission will see it. manualbroadcast: true # Whether or not you should see detailed information while creating a backup. debug: false # Whether or not the server should be restarted when a backup is restored. # This will run the command line "cd dirname" and "java -server -jar jarfile" # dirname being the directory to the server and jarfile the first .JAR file found in the server directory restorerestart: true # FTP settings and configuration. # Different modes (when to use FTP): # - NEVER (disable) # - FALLBACK (when an error occurs) # - LIMIT (move files when maxbackups is reached) # - FIRST (use ftp unless an error occurs) # - ALWAYS (only save to ftp, never use local) # - BOTH (save to both ftp and local) ftp: mode: NEVER host: 'localhost' port: 21 user: 'PerfectUser' pass: 'P3rf3c7P455w0rd' path: '~/PerfectBackups/' # What you want in the backup. backup: jarfile: false # The .jar file of your server (e.g. craftbukkit.jar) properties: true # The server.properties file ops: true # The ops.json file whitelist: false # The whitelist.json file spigotyml: true # If on spigot, the spigot.yml file bukkityml: true # The bukkit.yml file aliases: false # The commands.yml file eula: false # The eula.txt file metrics: false # The PluginMetrics folder logs: false # The logs folder, with all the zips (WARNING! This can make your backups way slower and very heavy!) pluginjars: true # The .jar files for the plugins pluginconfs: true # The data folder of each plugin worlds: # Use [] for no world, and - '*' for all the worlds. - 'world' - 'world_nether' - 'world_the_end' other: # Any other file you want to backup, using "!" before will prevent it from backupping (IMPORTANT! Use / for directories!) - 'plugins/PluginMetrics' - '!plugins/Essentials' - '!plugins/WorldEdit' - '!plugins/PerfectBackup/backups'
W tej konfiguracji (to domyślna), widać:
Interwał
To jest czas między kolejnymi automatycznymi kopiami zapasowymi.
Musi mieć format: liczba + spacja + jednostka.
Dostępne jednostki to t (ticki), s (sekundy), m (minuty), h (godziny) i d (dni).
Jeżeli podasz nieprawidłową wartość (np. none, lub pozostawisz pustą), automatyczne kopie zapasowe zostaną wyłączone.
Domyślnie: "2 h" (2 godziny).
Zadanie Cron
Oto 6 składników zadania cron:
1/ Sekunda (0-59)
2/ Minuta (0-59)
3/ Godzina (0-23)
4/ Dzień miesiąca (1-31)
5/ Miesiąc (1-12)
6/ Dzień tygodnia (1-7)
Domyślnie: "0 0 4 * * *" (codziennie o 4:00).
Możesz również użyć na przykład:
crontask: '0 0 * * * *' (To spowoduje, że będzie co godzinę)
crontask: '0 0 4 * * 7' (To spowoduje, że co niedzielę o 4:00)
crontask: '0 0 4 1 * *' (To spowoduje, że co pierwszy dzień miesiąca o 4:00)
Format kopii zapasowej
To jest format nazw kopii zapasowych, gdy są zapisywane.
Jeśli kilka kopii zapasowych ma taką samą nazwę, druga dostanie dopisek "_1", trzecia "_2", itd.
Użyj {DATE}, aby wstawić datę, w formacie ustawionym w dateformat.
Domyślnie: "PerfectBackup {DATE}".
Format daty
To jest format daty używany w formacie nazwy kopii zapasowej.
Możesz użyć na przykład:
24h: 'MM-DD-YYYY hhh mmm sss' (domyślnie)
AM/PM (12h): 'MM-DD-YYYY HHh mmm sss AM'
Kopie zapasowe ZIP
Jeśli to ustawione na true, kopie zapasowe będą przechowywane w plikach ZIP.
Jeśli ustawione na false lub inną wartość, będą zapisywane w zwykłych folderach.
Domyślnie: true.
Ścieżka lokalna
Folder, w którym będą przechowywane kopie zapasowe lokalnie. Domyślnie: "plugins/PerfectBackup/backups".
Maksymalna liczba kopii zapasowych
Maksymalna liczba kopii zapasowych przechowywanych lokalnie.
Po osiągnięciu limitu najstarsze kopie zapasowe będą usuwane.
Domyślnie: -1 (brak limitu).
Powiadamianie
Ręczne powiadamianie
Debugowanie
Jeśli ustawione na true, podczas tworzenia kopii zapasowej będą wyświetlane szczegółowe informacje (przydatne do debugowania).
Jeśli nie, wyświetlane będą tylko istotne informacje (start, błędy, wynik).
Domyślnie: false.
Restart po przywróceniu
Jeśli ustawione na true, serwer zostanie zrestartowany po przywróceniu kopii zapasowej.
Dzięki temu łatwiej, bo nie trzeba ręcznie restartować serwera.
UWAGA! To może powodować problemy z konsolą na niektórych usługach hostingowych.
Wykonywane to jest dwoma poleceniami:
- cd <dirname> (dirname to katalog serwera)
- java -server -jar <jarfilepath> (jarfilepath to ścieżka do pierwszego pliku JAR w katalogu serwera)
Domyślnie ustawione na true, ale nie zawsze zalecane jest mieć to włączone.
FTP
To miejsce, w którym konfiguruje się przechowywanie kopii zapasowych na FTP.
- Tryb: Kiedy FTP powinno być używane (NEVER/FALLBACK/LIMIT/FIRST/ALWAYS/BOTH).
- Host: Adres hosta serwera FTP.
- Port: Port serwera FTP (domyślnie 21).
- Użytkownik: Użytkownik używany do logowania na serwer FTP.
- Hasło: Hasło używane do uwierzytelniania jako powyższy użytkownik.
- Ścieżka: Katalog, w którym kopie zapasowe będą przechowywane na serwerze.
Kopia zapasowa
To miejsce, w którym konfiguruje się, co ma być kopiowane, a co nie.
- Plik JAR: Czy plik JAR serwera ma być uwzględniony w kopii zapasowej.
- Właściwości serwera: Czy plik server.properties ma być uwzględniony w kopii zapasowej.
- OPS: Czy plik ops.json ma być uwzględniony w kopii zapasowej.
- Whitelist: Czy plik whitelist.json ma być uwzględniony w kopii zapasowej.
- Spigot YML: Czy plik spigot.yml ma być uwzględniony w kopii zapasowej.
- Bukkit YML: Czy plik bukkit.yml ma być uwzględniony w kopii zapasowej.
- Aliases: Czy plik commands.yml ma być uwzględniony w kopii zapasowej.
- EULA: Czy plik eula.txt ma być uwzględniony w kopii zapasowej.
- Metrics: Czy folder Metrics ma być uwzględniony w kopii zapasowej.
- Logs: Czy folder logs ma być uwzględniony w kopii zapasowej (UWAGA! To może spowolnić i znacznie zwiększyć rozmiar kopii zapasowych!).
- Plugin JARs: Czy pliki JAR wtyczek mają być uwzględnione w kopii zapasowej.
- Plugin Configurations: Czy dane folderów wtyczek mają być uwzględnione w kopii zapasowej.
- Worlds: Światy, które będą kopiowane, użyj [] dla none, a - '*' dla wszystkich światów.
- Other Files: Dowolny inny plik, który chcesz zbackupować, używając "!" przed nim, zapobiega kopiowaniu. Używaj "/" do oddzielania katalogów.
There are four permission nodes in this plugin, for the four commands:
- PerfectBackup.backup: Pozwala na użycie /backup.
- PerfectBackup.list: Pozwala na użycie /backups.
- PerfectBackup.restore: Pozwala na użycie /restore.
PerfectBackup.testftp: Pozwala na użycie /testftp.

TODO List
- Dodaj polecenie /testftp, aby przetestować połączenie FTP.
- Dodaj obsługę połączeń SFTP i innych protokołów zdalnych.
- Dodaj zdalne kopie zapasowe do poleceń /backups, /restore i /delbackup.
- Dodaj więcej obsług formatów cron (co najmniej \",\", \"-\" i \"/\").
- Dodaj ustawienie "dirtyonly", które nie kopiuje plików, które nie były zmienione od ostatniej kopii zapasowej.
- Dodaj polecenie, które całkowicie przywróci kopię zapasową (usuwa wszystkie stare pliki i przywraca tylko te, które były zabezpieczone w poprzednich kopiach zapasowych).
- Dodaj polecenie przywracania tylko niektórych plików, takich jak mapy, a nawet regiony w mapach.
Jeśli chcesz, aby coś zostało dodane lub zmienione, albo masz pytanie, napisz mi w komentarzach!
Znane błędy
Jeśli znajdziesz błąd, proszę otwórz zgłoszenie opisujące problem, abym mógł go naprawić!
Ten plugin działa dość prosto, ale ma kilka skomplikowanych funkcji.
Na przykład zipowanie i dezipowanie pliku zajęło mi sporo czasu, aby to zrozumieć.
Musiałem również uczynić plugin w uruchamialny plik JAR, aby można go było uruchomić do przywracania kopii zapasowych.
W moim kodzie mam pięć klas:
- Klasę MetricsLite, autorstwa Hidendra
- Główną klasę, PerfectBackup, dla wszystkich poleceń, konfiguracji i automatycznego backupu.
- API CronRunnable, które stworzyłem, wykonujące Runnable, gdy dopasowane zostanie crontask.
- Klasę BackupRestorer, z metodą main(String[] args), uruchamianą po uruchomieniu JAR.
- Ostatnia, ale nie mniej ważna, klasa BackupUtils, obsługująca wszystko inne, w tym tworzenie/przywracanie kopii zapasowych, formatowanie dat, FTP i pliki: (de)zipowanie, kopiowanie/przenoszenie, usuwanie.
To tylko wyjaśnienie, byś wiedział dokładnie, co dzieje się na Twoim serwerze.
Nie pozwalam na kopiowanie tego pluginu ani żadnej jego części.
Jeśli go zmodyfikujesz, nie będziesz mieć absolutnie żadnego wsparcia i gwarancji.

Pomóż mi
Jeśli lubisz moje wtyczki, udostępniaj je, pobieraj je, i rozważ wsparcie za pomocą przycisku w prawym górnym rogu tej strony.
Dziękuję za całe wsparcie, jakie mi dawasz, i mam nadzieję, że moje wtyczki będą nadal pomagać Ci w przyszłości.
Staram się utrzymywać je maksymalnie zaktualizowane, ale czasem nie mam czasu na natychmiastowe zrobienie tego, więc może to być nieco opóźnione.
Ale nie zapomnij ich aktualizować i uzyskać najnowsze funkcje na swoich serwerach!
Pytania i odpowiedzi (Q&A)
Nie mam tu nic więcej do powiedzenia. Myślę jednak, że Q&A byłoby odpowiednie, więc oto:
Q: Czy nadal pracujesz nad aktualizacją tej wtyczki?
A: Niestety, nie. Większość moich publicznych wtyczek nie jest aktualizowana często, ponieważ nie mam zbyt dużo czasu na to ze względu na studia i prywatne projekty.
Ale słucham pomysłów, które proponujesz i wprowadzam je tak szybko, jak to możliwe (w kilka godzin dla wtyczek premium).
Q: Czy istnieje jakiś materiał wideo, żebym mógł zobaczyć, jak działa ta wtyczka?
A: Tak, AbsintoJ był na tyle uprzejmy, że stworzył wideo.
Q: Czy to działa w 1.7 i 1.8?
A: Powinno działać, ale ponieważ jest zaprojektowane dla 1.8, nie testowałem tego na 1.7.
Q: Dlaczego widzę [Metrics] w konsoli?
A: Służy to do zbierania statystyk o mojej wtyczce, używam MetricsLite od Hidendra
Q: Auto restart po przywróceniu nie działa, czemu?
A: To może być spowodowane przez usługę hostingową, mogą blokować polecenia, których używam.
Lub może to być dlatego, że masz inny plik JAR, który nie jest JAR-em serwera w katalogu głównym serwera.
Q: Dlaczego "PerfectBackup"?
A: Ponieważ to idealne narzędzie do tworzenia i przywracania kopii zapasowych jednym poleceniem.
Nie na temat
Q: Dlaczego to w ogóle stworzyłeś tę wtyczkę? / Co skłoniło Cię do tworzenia wtyczek?
A:Uwielbiam tworzyć rzeczy, a kodowanie to moja ulubiona aktywność, a że kocham także Minecraft, połączyłem obie rzeczy i zacząłem tworzyć wtyczki.
Wczoraj, gdy obudziłem się, poczułem się znudzony. Więc to stworzyłem, i voila.
Q: Jak długo zajmuje Ci kodowanie wtyczki?
A: Ta wtyczka początkowo zajęła mi jeden dzień, ale utrzymuję i pracuję nad nimi regularnie.
Niektóre mogą zająć mi nawet trzy lub cztery dni (a mini-gry mogą trwać ponad tydzień).
Inne pytania?
Jeśli masz pytanie dotyczące tej wtyczki lub czegokolwiek innego:
- Wyślij do mnie wiadomość prywatną (PM), a dodam Q + A tutaj.
- Zadaj mi pytanie w komentarzach poniżej, a odpowiem.
- Otwórz zgłoszenie, jeśli to sugestia dotycząca tej wtyczki lub raport błędu.
Opis projektu pochodzi z CurseForge i został udostępniony po polsku. Szczegóły konfiguracji, zależności oraz aktualne komunikaty autora sprawdź na w źródłowym katalogu CurseForge.
PerfectBackup.jar 17.11.2016
Jak bezpiecznie sprawdzić ten plugin
Wybierz zgodny plik
Oznaczenia wersji pochodzą z metadanych autora. Dobierz również właściwe oprogramowanie serwera i Javę.
Zachowaj kopię
Przed pierwszym startem skopiuj świat, konfigurację oraz dane pozostałych pluginów.
Przeczytaj log
Po uruchomieniu sprawdź brakujące zależności i pierwszy błąd związany z nazwą pluginu.
