# Backuper

## 简单 Paper/Folia 备份插件
支持 **FTP/GOOGLE DRIVE/SFTP**



---
[](https://bstats.org/plugin/bukkit/Backuper)
---
## 页面
* [

](https://backuper-mc.com)[ Backuper](https://backuper-mc.com)
* [

](https://github.com/DVDishka/Backuper)[ GitHub](https://github.com/DVDishka/Backuper)
* [

](https://modrinth.com/plugin/backuper)[ Modrinth](https://modrinth.com/plugin/backuper)
* [

](https://hangar.papermc.io/Collagen/Backuper)[ Hangar](https://hangar.papermc.io/Collagen/Backuper)
---
## 版本号变更
### Backuper-X.Y.Z(A)
* **X** - 更改 **X** 号意味着有一些不兼容向后兼容的重大变更。在切换到此版本之前,您应该检查 `Incompatible version changes` 段落。
* **Y** - 更改 **Y** 号意味着版本包含有向后兼容的重大更改
* **Z** - 更改 **Z** 号意味着版本包含小的更改或改进,具有向后兼容性
* **A** - 更改 **A** 字母意味着版本包含错误修复或安全/稳定性改进。 通常这些是热修复
---
## 不兼容版本变更
### 1.x.x - 2.x.x
* 完全改变的权限系统。 查看 `Permissions` 部分以了解更改
* 完全改变的命令命名。 查看 `Commands` 部分以了解更改
### 2.x.x - 3.x.x
* 更改了权限系统。 现在有不同的存储权限
* 使用 `/backuper backup` 命令时,您需要指定存储 (`/backuper backup
`)
---
## 基本设置
#### 使用插件/Backuper/config.yml 配置插件
1. 自动备份默认启用。 要更改备份间隔,请更改 `backup.backupPeriod` 选项。 要禁用自动备份,请更改 `backup.autoBackup` 选项
2. 如果您想每天指定时间进行一次备份,请更改 `backup.backupTime` 选项
3. 如果要在自动备份后重启服务器,请使用 `backup.afterBackup` 选项
4. 要设置要存储的最大备份数量,请更改 `local.maxBackupsNumber`/`ftp.maxBackupsNumber`/`sftp.maxBackupsNumber`/`googleDrive.maxBackupsNumber`
5. 要设置要存储的最大备份权重,请更改 `local.maxBackupsWeight`/`ftp.maxBackupsWeight`/`sftp.maxBackupsWeight`/`googleDrive.maxBackupsWeight`
**要设置 FTP/GOOGLE DRIVE/SFTP 存储,请查看下面的 `Configuration` 部分**
**要配置插件,最好查看完整的 `Configuration` 部分,那里有很多有用的选项**
---
## Google Drive 设置

1. 启用 Google Drive 存储并在 **config.yml** 中自定义设置。(检查 `Configuration/GOOGLE DRIVE storage settings` 部分)
2. 使用 `/backuper account googleDrive link` 命令将您的 Google 帐户链接到 Backuper
---
## 配置
### 备份设置
* `Auto backup` - **(true/false)** - 默认启用自动备份,每隔一定时间备份一次 **(当禁用时,备份将仅通过 `/backuper backup` 命令运行)**
* `Backup File Name Format` - **(Date Time format)** - 设置备份文件名的格式 **(查看 java.time 文档)**。 必须包含日期和时间的 信息
* `Add directory to backup` - **(List of paths)** - 您想要备份的文件夹/文件的完整目录路径。 世界文件夹将自动备份,因此您不需要在这些文件夹中指定世界文件夹(例如,您可以指定“plugins”,“config”)。 您也可以使用“*”指定所有文件。
* `Exclude Directory From Backup` - **(List of paths)** - 您想要排除在备份之外的文件夹/文件的完整目录路径。 如果您想从 **folder1** 备份所有内容,但排除 **folder1/file1**,您可以将 **folder1** 指定在 `addDirectoryToBackup` 中,并将 **folder1/file1** 指定在 `excludeDirectoryFromBackup` 中。(`backupsFolder` 目录将自动排除以防止循环)
* `Backup period` - **(>= 1 Minutes or -1)** - 服务器将在多长时间后进行自动备份 **(要更改此值,您需要将 `backupTime` 设置为 -1 并且 `autoBackup` 设置为 true)**
* `backup time` - **(0 - 23 or -1)** - 每日固定备份时间。 自动备份将在每天的此时间进行。(`backupPeriod` 将自动设置为 24 小时)。 **-1 禁用时间固定**
* `Delete broken backups` - **(true/false)** - 有时创建备份时可能会发生错误。 启用此选项时,此类备份将被删除
* `Skip duplicate backup` - **(true/false)** - 如果世界自从上次备份以来没有更改,则备份将跳过。即使世界没有更改,`AfterBackup` **仍然会执行**
* `After backup` - **(NOTHING/STOP/RESTART)** - **自动** 备份后服务器将执行什么操作
* `Set worlds read only` - **(true/false)** - **(推荐 True)** backuper 将所有世界文件夹标记为**只读**,以防止可能导致备份崩溃的文件夹更改。 **True** 值可能会导致备份期间出现 **访问被拒绝** 错误 **(您应该忽略它)**
### 本地存储设置
* `Enabled` - **(true/false)** - 启用本地存储以通过 Backuper 使用它
* `Auto Backup` - **(true/false)** - 启用自动备份,备份将保存到指定的本地存储。 仅当 `local.enabled: true` 和 `backup.autoBackup: true` 时有效
* `Backups folder` - **(Path)** - 备份将存储的完整目录
* `Max backups number` - **(>= 1 or 0)** - 本地存储中保留的最大备份数量 **(0 - 无限制)**
* `Max backup weight` - **(>= 1 or 0)** - 本地存储中存储的最大备份权重 **(MB)** **(0 - 无限制)**
* `Zip archive` - **(true/false)** - 您是否想以 ZIP 档案的形式存储备份在本地存储中?
* `Zip compression level` - **(0 - 9)** - 档案压缩级别。 更高的值可以减小文件大小,但也可以增加压缩和解压缩所需的时间
### GOOGLE DRIVE 存储设置
* `Enabled` - **(true/false)** - 启用 GOOGLE DRIVE 存储以通过 Backuper 使用它
* `Auto Backup` - **(true/false)** - 启用自动备份,备份将保存到指定的本地存储。 仅当 `googleDrive.enabled: true` 和 `backup.autoBackup: true` 时有效
* `Backups folder ID` - **(ID)** - 备份将存储的 GOOGLE DRIVE 文件夹 ID
* `Create Backuper Folder` - **(true/false)** - 您希望 Backuper 在指定的 `backupsFolderId` 目录中创建其自己的文件夹来存储备份吗
* `Max backups number` - **(>= 1 or 0)** - GOOGLE DRIVE 存储中保留的最大备份数量 **(0 - 无限制)**
* `Max backup weight` - **(>= 1 or 0)** - GOOGLE DRIVE 存储中存储的最大备份权重 **(MB)** **(0 - 无限制)**
* `ZIP archive` - **(true/false)** - 您是否想以 ZIP 档案的形式将备份存储在 GoogleDrive 上?
* `ZIP compression level` - **(0 - 9)** - 档案压缩级别。 更高的值可以减小文件大小,但也可以增加压缩和解压缩所需的时间
#### 身份验证
* `Token Folder Path` - **(Path)** - 您希望存储 Google 身份验证令牌的目录
### FTP 存储设置
* `Enabled` - **(true/false)** - 启用 FTP 存储以通过 Backuper 使用它
* `Auto Backup` - **(true/false)** - 启用自动备份,备份将保存到指定的 FTP 服务器。 仅当 `ftp.enabled: true` 和 `backup.autoBackup: true` 时有效
* `Backups folder` - **(Path)** - FTP 服务器备份将存储的目录
* `Path separator symbol` - **(Symbol)** - FTP 服务器上使用的路径分隔符符号。 例如 UNIX 系统的 `/` 和 windows 系统的 `\`
* `Max backups number` - **(>= 1 or 0)** - FTP 服务器上保留的最大备份数量 **(0 - 无限制)**
* `Max backup weight` - **(>= 1 or 0)** - FTP 服务器上存储的最大备份权重 **(MB)** **(0 - 无限制)**
* `ZIP archive` - **(true/false)** - 您是否想以 ZIP 档案的形式将备份存储在 FTP 服务器上?
* `ZIP compression level` - **(0 - 9)** - 档案压缩级别。 更高的值可以减小文件大小,但也可以增加压缩和解压缩所需的时间
#### 身份验证
* `Address` - **(Address)** - FTP 服务器地址
* `Port` - **(Port)** - FTP 服务器端口
* `Username` - **(Username)** - 用于身份验证的 FTP 服务器用户名
* `Password` - **(Password)** - 用于身份验证的 FTP 服务器密码
### SFTP 存储设置
* `Enabled` - **(true/false)** - 启用 SFTP 存储以通过 Backuper 使用它
* `Auto Backup` - **(true/false)** - 启用自动备份,备份将保存到指定的 SFTP 服务器。 仅当 `sftp.enabled: true` 和 `backup.autoBackup: true` 时有效
* `Backups folder` - **(Path)** - SFTP 服务器备份将存储的目录
* `Path separator symbol` - **(Symbol)** - SFTP 服务器上使用的路径分隔符符号。 例如 UNIX 系统的 `/` 和 windows 系统的 `\`
* `Max backups number` - **(>= 1 or 0)** - SFTP 服务器上保留的最大备份数量 **(0 - 无限制)**
* `Max backup weight` - **(>= 1 or 0)** - SFTP 服务器上存储的最大备份权重 **(MB)** **(0 - 无限制)**
* `ZIP archive` - **(true/false)** - 您是否想以 ZIP 档案的形式将备份存储在 SFTP 服务器上?
* `ZIP compression level` - **(0 - 9)** - 档案压缩级别。 更高的值可以减小文件大小,但也可以增加压缩和解压缩所需的时间
#### 身份验证
* `Address` - **(Address)** - SFTP 服务器地址
* `Port` - **(Port)** - SFTP 服务器端口
* `Auth type` - **(password/key)** - SFTP 服务器身份验证类型
* `Username` - **(Username)** - 用于身份验证的 SFTP 服务器用户名
* `Password` - **(Password)** - 用于身份验证的 SFTP 服务器密码
* `Key file path` - **(Path)** - 如果 `authType: key`,则指向密钥文件的本地路径
* `Use known hosts file` - **(true/false)** - 您想指定本地 knownHostsFile 吗?
* `Known hosts file path` - **(Path)** - 如果 `useKnownHostsFile: true`,则指向本地 knownHostsFile 的路径
### 服务器设置
* `Alert time before restart` - **(> 0 or -1)** - 在服务器重启前 `alertTimeBeforeRestart` 秒向所有玩家发送通知。 -1 禁用通知
* `Alert only server restart` - **(true/false)** - 仅在服务器重启或备份后停止时发送通知
* `Alert backup message` - **(String)** - 备份警报消息。 (%d 是秒数的占位符)
* `Alert backup restart message` - **(String)** - 备份和重启警报消息。 (%d 是秒数的占位符)
* `Size cache file` - **(Path)** - 备份大小缓存文件路径
* `Check updates` - **(true/false)** - 检查 Backuper 的新版本以保持最新
* `Better logging` - **(true/false)** - 改进的日志记录(用于调试的统计信息和其他信息,您可能不需要它)
---
## 命令
#### `storage` 参数负责例如 **local**、**GOOGLE DRIVE**、**FTP**、**SFTP** 等存储。 要使用这些参数,必须启用相应的存储。 使用 `-` 作为多个存储于一个命令的连接符。 **(例如:`local`、`ftp-googleDrive`、`local-ftp-sftp`)**
#### `service` 参数负责例如 **GOOGLE DRIVE** 等存储提供商的服务。 要使用这些参数,必须启用相应的存储
* `/backuper backup ` - 用于手动备份服务器的命令。 `stopRestartServer` 参数表示重启后服务器将执行什么操作。 `stopRestartServer` 参数可以采用 **STOP** 或 **RESTART** 形式,也可以**不带参数**
* `/backuper backup ` - 带延迟手动备份服务器的命令 **(延迟以秒为单位 > 0)**。 `storage` 和 `stopRestartServer` 参数与上面的命令相同,并且也可以**不带参数**
* `/backuper list ` - 用于查看备份列表的命令 **(单击备份以打开其菜单)**
* `/backuper menu ` - 打开指定备份的菜单的命令
* `/backuper menu delete` - 删除指定备份的命令
* `/backuper menu toZIP` - **仅适用于 LOCAL 存储** - 将指定备份转换为 ZIP 档案的命令
* `/backuper menu unZIP` - **仅适用于 LOCAL 存储** - 将指定备份从 ZIP 档案转换为文件夹的命令
* `/backuper menu copyToFtp` - **仅适用于 LOCAL 存储** - 将指定备份复制到 **FTP** 存储的命令,从 **local** 存储复制
* `/backuper menu copyToSftp` - **仅适用于 LOCAL 存储** - 将指定备份复制到 **SFTP** 存储的命令,从 **local** 存储复制
* `/backuper menu copyToGoogleDrive` - **仅适用于 LOCAL 存储** - 将指定备份复制到 **GOOGLE DRIVE** 存储的命令,从 **local** 存储复制
* `/backuper menu copyToLocal` - **仅适用于 FTP/GOOGLE DRIVE/SFTP 存储** - 将指定备份复制到 **LOCAL** 存储的命令,从 **FTP/GOOGLE DRIVE/SFTP** 存储复制
* `/backuper account link` - 用于将 `service` 账户链接到 Backuper 以使用此存储提供商的命令
* `/backuper config reload` - 重新加载配置文件命令
* `/backuper task status` - 获取任务当前进度的命令
* `/backuper task cancel` - 取消当前任务的命令
---
## 权限
### 基本权限
* `backuper.backup` - 用于使用 `/backuper backup ` 命令,不带 `stopRestartServer` 参数的权限
* `backuper.backup.stop` - 用于使用 `/backuper backup ` 命令带 **STOP** 参数的权限 (`backuper.backup` 权限 required)
* `backuper.backup.restart` - 用于使用 `/backuper backup ` 命令带 **RESTART** 参数的权限 (`backuper.backup` 权限 required)
### 本地存储权限
* `backuper.local.list` - 用于使用 `/backuper list local` 和 `/backuper menu local` 命令的权限
* `backuper.local.list.tozip` - 将本地存储中的备份转换为 ZIP 档案的权限 (`backuper.local.list` 权限 required)
* `backuper.local.list.unzip` - 将本地存储中的备份从 ZIP 档案转换为文件夹的权限 (`backuper.local.list` 权限 required)
* `backuper.local.list.delete` - 删除本地存储中的备份的权限 (`backuper.local.list` 权限 required)
* `backuper.local.list.copytoftp` - 将备份从本地复制到 FTP 存储的权限 (`backuper.local.list` 权限 required)
* `backuper.local.list.copytosftp` - 将备份从本地复制到 SFTP 存储的权限 (`backuper.local.list` 权限 required)
### GOOGLE DRIVE 存储权限
* `backuper.googledrive.account` - 用于管理已链接的 Google 帐户(使用 link 命令)的权限
* `backuper.googledrive.list` - 用于使用 `/backuper list googleDrive` 和 `/backuper menu googleDrive` 命令的权限
* `backuper.googledrive.list.delete` - 删除 GOOGLE DRIVE 存储中的备份的权限 (`backuper.googleDrive.list` 权限 required)
* `backuper.googledrive.list.copytolocal` - 将备份从 GOOGLE DRIVE 复制到本地存储的权限 (`backuper.googleDrive.list` 权限 required)
### SFTP 存储权限
* `backuper.sftp.list` - 用于使用 `/backuper list sftp` 和 `/backuper menu sftp` 命令的权限
* `backuper.sftp.list.delete` - 删除 SFTP 存储中的备份的权限 (`backuper.sftp.list` 权限 required)
* `backuper.sftp.list.copytolocal` - 将备份从 SFTP 复制到本地存储的权限 (`backuper.sftp.list` 权限 required)
### FTP 存储权限
* `backuper.ftp.list` - 用于使用 `/backuper list ftp` 和 `/backuper menu ftp` 命令的权限
* `backuper.ftp.list.delete` - 删除 FTP 存储中的备份的权限 (`backuper.ftp.list` 权限 required)
* `backuper.ftp.list.copytolocal` - 将备份从 FTP 复制到本地存储的权限 (`backuper.ftp.list` 权限 required)
### 其他权限
* `backuper.config.reload` - 用于使用 `/backuper config reload` 命令的权限 (`backuper.config` 权限 required)
* `backuper.status` - 用于使用 `/backuper status` 命令的权限
---
## 注意事项
* **请在** [GitHub](https://github.com/DVDishka/Backuper/issues) **上报告任何问题**
* RESTART 选项可能无法正常工作,因此最好使用带有启动脚本的 STOP ([start script](https://flags.sh/) 自动重启 ON)
* 如果备份损坏并且您的 `backup.backupTime` 设置为 -1,则可以重置备份时间。 然后,下一次备份将在服务器启动时发生,之后每次备份都将在 `backup.backupPeriod` 后发生