自动清理宝塔面板备份的脚本-VPS SO

自动清理宝塔面板备份的脚本

自动清理宝塔面板备份的脚本,因为小鸡的硬盘比较小,部署完服务还剩几个G空间,但是发现隔一段时间空间占用越来越大。
最后定位到backup里面有个宝塔面板的备份文件,每天都会备份一份且旧的不会自动删除。
在宝塔设置找了半天只找到设置备份路径,并没有找到其他相关设置。就想着弄个脚本自动每天清理一下历史备份仅保留当天的。因为宝塔默认带个python那就用python来弄个小脚本,配合计划任务。

图片[1]-自动清理宝塔面板备份的脚本-VPS SO

脚本

import os
import glob
from datetime import datetime

# 设置工作目录为绝对路径
BACKUP_DIR = "/www/backup/panel/"
os.chdir(BACKUP_DIR)

def get_zip_files():
    # 获取当前目录下所有的zip文件
    zip_files = glob.glob("*.zip")
    print(f"找到的zip文件: {zip_files}")
    return zip_files

def get_today_zip():
    # 获取今天的日期格式
    today = datetime.now().strftime("%Y-%m-%d")
    today_zip = f"{today}.zip"
    print(f"今天的日期: {today}")
    print(f"今天的zip文件名: {today_zip}")
    return today_zip

def main():
    print("开始执行清理脚本...")
    print(f"当前工作目录: {os.getcwd()}")
    
    # 获取所有zip文件
    zip_files = get_zip_files()
    
    # 获取今天的zip文件名
    today_zip = get_today_zip()
    
    # 遍历所有zip文件
    for zip_file in zip_files:
        print(f"\n检查文件: {zip_file}")
        # 检查是否是日期格式的文件名
        if zip_file.endswith(".zip") and len(zip_file.split("-")) == 3:
            # 如果不是今天的文件,则删除
            if zip_file != today_zip:
                try:
                    os.remove(zip_file)
                    print(f"已删除文件: {zip_file}")
                except Exception as e:
                    print(f"删除文件 {zip_file} 时出错: {str(e)}")
            else:
                print(f"保留今天的文件: {zip_file}")
        else:
            print(f"跳过文件 {zip_file}:不符合日期格式")

if __name__ == "__main__":
    main()

文件路径+文件名/www/backup/panel/clear.py

宝塔添加计划任务,看了下时间宝塔每天貌似0:05备份,建议0:10之后,我这里定时的04:30。

脚本内容填python3 /www/backup/panel/clear.py

图片[2]-自动清理宝塔面板备份的脚本-VPS SO

实际效果如下:

图片[3]-自动清理宝塔面板备份的脚本-VPS SO

图片[4]-自动清理宝塔面板备份的脚本-VPS SO

非强迫症患者或者你的历史备份文件不像这样每天都一模一样的备份一遍不建议使用。

© 版权声明
THE END
喜欢就支持一下吧
点赞10分享