自动清理宝塔面板备份的脚本,因为小鸡的硬盘比较小,部署完服务还剩几个G空间,但是发现隔一段时间空间占用越来越大。
最后定位到backup里面有个宝塔面板的备份文件,每天都会备份一份且旧的不会自动删除。
在宝塔设置找了半天只找到设置备份路径,并没有找到其他相关设置。就想着弄个脚本自动每天清理一下历史备份仅保留当天的。因为宝塔默认带个python那就用python来弄个小脚本,配合计划任务。
脚本
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
实际效果如下:
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END