Minecraft(我的世界)中文论坛

标题: [原创][PCD] Wayback —— 备份插件[全版本]

作者:  咕     时间: 2018-8-2 10:14
标题: [原创][PCD] Wayback —— 备份插件[全版本]
本帖最后由 PQguanfang 于 2020-3-30 22:30 编辑

Wayback

备份插件


特性


各个功能

备份
把每一段时间服务器的所有/部分进行保存,以便哪天耍脱了可以回到过去(插件名即为此意)

增量备份
腐竹老爷的服很大,端很大,备份的文件可能很多,那么每次只对有更改的文件进行备份,就可以显著减少每次备份所需的磁盘空间。
经过我的精密测算,每个小时备份一次,一个备份文件按照我的小破测试端大概要 5kb,如果玩家比较刺激可能会大一些,算起来一个月只需要 3.5 mb 的存储空间。
Nukkit 的地图文件和别的会小很多,所以密度可以大一些


回滚
哪家熊孩子把服毁了,你使用 /wayback rollback 命令将服务器恢复到熊孩子进服以前,并添加黑名单。

使用
下载 Wayback 放入 /plugins 文件夹,启动服务器。

截图




配置文件


命令
/wayback task list - 列出所有命令
/wayback rollback - 回滚到某个备份点
/wayback conf enc/unenc - 加密或解密配置文件


说明
1. 回滚的时候会直接暴力停掉服务器,不要惊慌,正常操作
2. 如果使用 Windows 这类非 Unix 系统,可能在回滚的时候会提示文件被占用,这意味着文件真的被占用了
  2.1 解决方案1 更换 Linux
3. 如果启用了加密配置文件,你写在配置文件里的密码就不会被别人看到,但是每次启动服务器都必须输入一遍密码
  3.1 这个输入密码的过程可能重复很多次,如果提示密码错误可以试着再输一遍
  3.2 如果密码忘了按照提示输入之后会提示原来的没了,这意味着原来的真的没了,你就得重新配置一遍
4. 回滚的时候注意一下有没有正在运行的任务,虽然就算有一般也不会造成什么问题,但是可能会生成一些多余的备份
5. 增量备份的第一个压缩包会大一些,这样子就算哪家的孩子给你全删了也能恢复
  5.1 不用增量备份每个包都那么大


下载
WaybackN-1.0-SNAPSHOT.jar (277.52 KB, 下载次数: 641)
由于没有祖传 TabooLib 支持,重写了大量代码,还打了几个库,所以插件比较大

更新记录
版本号为 年份.主版本.补丁



本插件所用所有代码均为原创,不存在借用/抄袭等行为


作者: 神奈川归尘    时间: 2018-8-2 10:36
地图回档 玩家身上的物品还在吗?
作者:  咕     时间: 2018-8-2 10:37
逗比的幻影 发表于 2018-8-2 10:36
地图回档 玩家身上的物品还在吗?

整个端回到某个时间点
作者: 神奈川归尘    时间: 2018-8-2 10:37
Italiangun 发表于 2018-8-2 10:37
整个端回到某个时间点

了解。。
作者: MuChenyu    时间: 2018-8-2 10:48
支持,挺不错的!
作者: 枫林1    时间: 2018-8-2 10:49
挺好的,支持一下
作者: ROF    时间: 2018-8-2 11:24
支持意大利炮。
字体很舒服。

作者: Actahedral    时间: 2018-8-2 11:31
分类错误,这不是[教程]
作者: TheSheep_y    时间: 2019-9-15 12:28
emmm,抱走了
作者: lihaoxuam    时间: 2019-9-25 19:31
本帖最后由 lihaoxuam 于 2019-9-25 20:07 编辑

能否使用Onedrive这类的云盘服务来保存备份呢?我看到配置文件里有onedrive一项,如何使用呢?
作者: 敬天爱岷    时间: 2019-9-28 19:36
本帖最后由 敬天爱岷 于 2019-9-28 19:38 编辑

报错:文件被锁定

19:30:52 [INFO ] [Wayback] 正在压缩 players/LOCK
> net.lingala.zip4j.exception.ZipException: java.io.IOException: 另一个程序已锁定文件的一部分,进程无法访问。
        at net.lingala.zip4j.zip.ZipEngine.addStreamToZip(ZipEngine.java:245)
        at net.lingala.zip4j.core.ZipFile.addStream(ZipFile.java:395)
        at com.ilummc.wayback.compress.ZipCompressor$ZipArchive.write(ZipCompressor.java:78)
        at com.ilummc.wayback.tasks.IncrementalFileLocalTransferTask.zip(IncrementalFileLocalTransferTask.java:114)
        at com.ilummc.wayback.tasks.IncrementalFileLocalTransferTask.zip(IncrementalFileLocalTransferTask.java:111)
        at com.ilummc.wayback.tasks.IncrementalFileLocalTransferTask.execute(IncrementalFileLocalTransferTask.java:85)
        at com.ilummc.wayback.schedules.PeriodSchedule$SimplePeriodSchedule.execute(PeriodSchedule.java:76)
        at com.ilummc.wayback.schedules.ProgressedSchedule.run(ProgressedSchedule.java:21)
        at com.ilummc.wayback.schedules.PeriodSchedule.run(PeriodSchedule.java:48)
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
        at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(Unknown Source)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: 另一个程序已锁定文件的一部分,进程无法访问。
        at java.io.FileInputStream.readBytes(Native Method)
        at java.io.FileInputStream.read(Unknown Source)
        at net.lingala.zip4j.zip.ZipEngine.addStreamToZip(ZipEngine.java:234)

作者: CHD1    时间: 2019-10-6 17:26
不错呀很棒,终于不用担心惹
作者: innc    时间: 2019-10-26 21:30
可以关闭每次备份的时候备份了哪些文件的显示吗,文件多了,console就感觉特别乱,最好能合并显示备份了多少个文件,这个功能能作为一个配置选项就好了
作者: lihaoxuam    时间: 2020-2-26 14:24
插件报错
  1. com.ilummc.wayback.WaybackException
  2. at com.ilummc.wayback.policy.RetryPolicy$SimpleRetry.accept(RetryPolicy.java:46)
  3. at com.ilummc.wayback.tasks.IncrementalFileLocalTransferTask.execute(IncrementalFileLocalTransferTask.java:72)
  4. at com.ilummc.wayback.schedules.PeriodSchedule$SimplePeriodSchedule.execute(PeriodSchedule.java:76)
  5. at com.ilummc.wayback.schedules.ProgressedSchedule.run(ProgressedSchedule.java:21)
  6. at com.ilummc.wayback.schedules.PeriodSchedule.run(PeriodSchedule.java:48)
  7. at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
  8. at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
  9. at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
  10. at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
  11. at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
  12. at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
  13. at java.lang.Thread.run(Thread.java:748)
复制代码

报完错就进入下一次备份倒计时了,此次没有备份
作者: 一只鸽纸    时间: 2020-3-3 13:50
请问面板服能用吗
作者: Mike01    时间: 2020-3-30 21:45
牛!!!!!!!!
作者: h1234hh    时间: 2020-3-30 22:39
报错,提示另一个程序已锁定文件的一部分,进程无法访问。
作者: 13711296064    时间: 2020-4-28 12:54
支持别的核心吗?例如Cat
作者: 1481802977    时间: 2020-7-6 10:08
为什么我放进去没有反应呀。。。