MC服务器备份脚本

前言

最近开了个mc服务器,为了提高数据的安全性,使用python写了个简单的备份脚本

备份存档数据

代码如下:

# -*- coding: utf-8 -*-import os
import zipfile
import datetime# 设置备份目录和备份文件名
backup_dir = "/home/minecraft/backups"
server_path = "/data/server"def backup_minecraft_server():# 切换到服务器目录os.chdir(server_path)# 备份world世界world_backup_file = "world_{}.zip".format(datetime.datetime.now().strftime('%Y-%m-%d_%H-%M-%S'))with zipfile.ZipFile(os.path.join(backup_dir, world_backup_file), "w", zipfile.ZIP_DEFLATED) as archive:for root, dirs, files in os.walk("world"):for file in files:archive.write(os.path.join(root, file))# 备份world_nether世界nether_backup_file = "world_nether_{}.zip".format(datetime.datetime.now().strftime('%Y-%m-%d_%H-%M-%S'))with zipfile.ZipFile(os.path.join(backup_dir, nether_backup_file), "w", zipfile.ZIP_DEFLATED) as archive:for root, dirs, files in os.walk("world_nether"):for file in files:archive.write(os.path.join(root, file))# 备份world_the_end世界end_backup_file = "world_the_end_{}.zip".format(datetime.datetime.now().strftime('%Y-%m-%d_%H-%M-%S'))with zipfile.ZipFile(os.path.join(backup_dir, end_backup_file), "w", zipfile.ZIP_DEFLATED) as archive:for root, dirs, files in os.walk("world_the_end"):for file in files:archive.write(os.path.join(root, file))# 合并备份文件merged_backup_file = "minecraft_backup_{}.zip".format(datetime.datetime.now().strftime('%Y-%m-%d_%H-%M-%S'))with zipfile.ZipFile(os.path.join(backup_dir, merged_backup_file), "w", zipfile.ZIP_DEFLATED) as archive:archive.write(os.path.join(backup_dir, world_backup_file), arcname="world.zip")archive.write(os.path.join(backup_dir, nether_backup_file), arcname="world_nether.zip")archive.write(os.path.join(backup_dir, end_backup_file), arcname="world_the_end.zip")# 删除临时备份文件os.remove(os.path.join(backup_dir, world_backup_file))os.remove(os.path.join(backup_dir, nether_backup_file))os.remove(os.path.join(backup_dir, end_backup_file))# 删除7天前的备份for file_name in os.listdir(backup_dir):file_path = os.path.join(backup_dir, file_name)if os.path.isfile(file_path):file_time = datetime.datetime.fromtimestamp(os.path.getmtime(file_path))if (datetime.datetime.now() - file_time).days > 7:os.remove(file_path)if __name__ == "__main__":backup_minecraft_server()

添加定时任务

0 3 * * * python /path/to/backup.py

每天凌晨三点备份 

后续添加

1.异地备份(OSS对象存储)

2.查看备份日志

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/624785.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通过浏览器判断是否安装APP

场景 求在分享出来的h5页面中,有一个立即打开的按钮,如果本地安装了我们的app,那么点击就直接唤本地app,如果没有安装,则跳转到下载。 移动端 判断本地是否安装了app 首先我们可以确认的是,在浏览器中无…

微服务自动化docker-compose

一、docker-compose介绍 Docker Compose是一个用来定义和运行多个复杂应用的Docker编排工具。例如,一个使用Docker容器的微服务项目,通常由多个容器应用组成。那么部署时如何快速启动各个微服务呢,一个个手动启动?假如有上百个微服…

解决RecyclerView刷新,数据显示错乱

【问题现象】 做一个条目展示的的项目用到RecyclerView,在界面中有收藏和取消收藏的功能,第一个出现的问题就是点击按钮收藏或者取消收藏后,按钮的状态发生了改变,但是当收藏或者取消收藏的条目上下滑动滑出屏幕外再次进入时&…

在检验试验台底座应注意哪几个方面——河北北重

试验台铁底座检验标准主要包括以下几个方面: 外观检验:检查试验台铁底座的外观是否完好,表面是否平整,是否有裂纹、破损等缺陷。 尺寸检验:检查试验台铁底座的长度、宽度、高度等尺寸是否符合设计要求。 材质检验&am…

1. Java Config配置Bean

1. Java Config配置Bean Java 5 的推出,加上当年基于纯 Java Annotation 的依赖注入框架 Guice 的出现,使得 Spring 框架及其社区也“顺应民意”,推出并持续完善了基于 Java 代码和 Annotation 元信息的依赖关系绑定描述方式,即 …

计算机毕业设计 | SpringBoot+vue校园问卷调查系统(附源码)

1,绪论 研究目的 在进入21世纪以后,互联网得到了蓬勃的发展,电子问卷调查也开始逐渐流行起来。传统纸质问卷和电子问卷相比较后,传统问卷还存在很多弊端: 问卷分发起来比较困难,并且分发试卷耗费大量的金…

What is `@Component` does?

Component 是Spring注解,用于标记Java类为Spring容器管理的一个Bean(组件) 当Spring通过类路径扫描机制发现带有 Component 注解的类时,会自动将其纳入到Spring IoC容器中进行实例化、配置和管理。 使用样例 基本的Component注…

CSS 基本选择器 复合选择器

文章目录 基本选择器标记选择器类别选择器ID选择器测试基本选择器 复合选择器交集选择器并集选择器后代选择器全选选择器测试复合选择器 基本选择器 准备几个HTML标签用来测试 <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"U…

智能小程序能做什么?

一. 自定义Tab页 涂鸦提供了丰富的场景化、个性化的 ToC 智能服务&#xff0c;不仅可以快速低成本的自由搭建出更多智能服务&#xff0c;还为你提供了基于小程序技术方案的可自主可控的自定义开发链路&#xff0c;为拓展更多品牌化、个性化、差异化智能服务提供生态基础。 我…

Javaweb之SpringBootWeb案例的详细解析

SpringBootWeb案例 前面我们已经讲解了Web前端开发的基础知识&#xff0c;也讲解了Web后端开发的基础(HTTP协议、请求响应)&#xff0c;并且也讲解了数据库MySQL&#xff0c;以及通过Mybatis框架如何来完成数据库的基本操作。 那接下来&#xff0c;我们就通过一个案例&#xf…

word无法插入方程式(方程式反灰)

word无法插入方程式&#xff08;方程式反灰&#xff09; 来自实测>插入方程式&#xff0c;反灰用不了>随便存在哪里&#xff0c;右键看属性&#xff1a;>发现真的是doc&#xff0c;得改成docx才可以&#xff1a;>打开原始档案&#xff0c;另存为word文件即可&#…

什么是google算法?

谷歌算法本身指的是谷歌针对搜索引擎做的规定 要想在别人的地盘玩&#xff0c;那肯定要了解这个地盘的规定&#xff0c;不然做了什么违反了规定&#xff0c;谷歌肯定不会让你继续玩下去 要想做谷歌&#xff0c;那肯定要了解谷歌的算法&#xff0c;然而谷歌的算法也不是一成不变…

ros2 基础学习04 -colcon构建工具

一、colcon构建工具介绍 1.1 构建系统与构建工具 构建系统与构建工具区分点在于针对的对象不同&#xff0c;构建系统只针对一个单独的包进行构建&#xff0c;而构建工具重点在于按照依赖关系依次调用构建系统完成一系列功能包的构建。 1.2 构建系统 构建系统包括CMake、Pyt…

【python】进阶--->MySQL数据库(四)

一、主键约束 primary key : 唯一标识数据库中的每一条记录. 被主键的值唯一 主键列不能为null 每个表应该都要设置主键添加主键约束 在创建表时,直接在字段后面添加主键约束 create table 表名 (字段名 类型(长度) primary key )创建表时,不直接在字段后面添加主键…

ChatGPT网站小蜜蜂AI更新了

ChatGPT网站小蜜蜂AI更新了 前阶段郭震兄弟刚开发小蜜蜂AI网站的的时候&#xff0c;写了一篇关于ChatGPT的网站小蜜蜂AI的博文[https://blog.csdn.net/weixin_41905135/article/details/135297581?spm1001.2014.3001.5501]。今天听说小蜜蜂网站又增加了新的功能——在线生成思…

size_t类型总结

前言 size_t是C++标准库中定义的一种无符号整数类型,表示任何对象所能达到的最大长度。 通常情况下,size_t的真实类型与指针一样,跟操作系统有关,size_t在32位系统上定义为 unsigned int,也就是32位无符号整型(4字节)。在64位系统上定义为 unsigned long ,也就是64位无…

帆软后台(外观配置-主题)文件上传漏洞

漏洞利用 帆软上传主题获取shell&#xff08;管理系统-外观配置&#xff09; 添加主题上传的压缩包中放入shell.jsp马 &#xff08;没有添加主题功能直接构造数据包&#xff09; POST /WebReport/ReportServer?opfr_attach&cmdah_upload&filenametest.zip&widt…

Mac无法访问GitHub

参考了stack overflow的一个解决方法&#xff08;问答链接&#xff09;&#xff0c;即在终端修改连接到GitHub网站的IP&#xff0c;具体步骤如下&#xff1a; 1. 打开终端terminal 可以command空格搜索终端或者terminal 2. 打开/etc/hosts文件 可以通过nano或者vim打开 su…

充电桩发生短路故障时应该如何处理

安科瑞武陈燕acrelcy 一、什么是限流式保护器 ASCP系列电气防火限流式保护器是专门为了保护低压配电线路中短路、过载等问题研发&#xff0c;可以有效克服传统断路器、空气开关和监控设备存在的短路电流大、切断短路电流时间长、短路时产生的电弧火花大&#xff0c;以及使用寿…

【uniapp + uView】仿BOSS直聘三级职位列表实现

1. 效果图 2. 完整代码 <template><view class="search-duty-page"><view class=