修改可在config文件自定义运行时间

This commit is contained in:
panjunlan
2026-02-22 14:44:52 +08:00
parent e505148026
commit 375a54187d
4 changed files with 100 additions and 115 deletions

View File

@@ -30,3 +30,16 @@ global:
# excel_output_path: ./vm_snapshots_report.xlsx # 可选,使用默认值,如:/logs/2026-02-20_14-00-21-VMsSnapShots_report.xlsx
# yaml_output_path: ./yaml_snapshots_report.yaml # 可选
# 定时任务配置
schedule:
export: # 导出 Excel 和 Yaml 文件的时间
day_of_week: 'sat' # 星期几mon,tue,wed,thu,fri,sat,sun
hour: 6 # 小时 (0-23)
minute: 0 # 分钟 (0-59)
second: 0 # 秒 (可选)
delete: # 删除快照的时间
day_of_week: 'sat'
hour: 19
minute: 0
second: 0

View File

@@ -11,6 +11,12 @@ def load_config():
# 全局配置
global_config = raw_config.get('global', {})
# 读取定时任务配置(带默认值)
schedule_config = global_config.get('schedule', {})
export_schedule = schedule_config.get('export', {'day_of_week': 'sat','hour': 4,'minute': 0, 'second': 0})
delete_schedule = schedule_config.get('delete', {'day_of_week': 'sat', 'hour': 19, 'minute': 0, 'second': 0})
config = {
# vCenter/ESXi节点列表
"MANAGEMENT_NODES": raw_config.get('management_nodes', []),
@@ -18,11 +24,13 @@ def load_config():
"EXCEL_OUTPUT_PATH": global_config.get('excel_output_path', os.path.join(DATA_DIR, f'vm_snapshots_report-{datetime.now().strftime('%Y-%m-%d')}.xlsx')),
"YAML_OUTPUT_PATH": global_config.get('yaml_output_path', os.path.join(DATA_DIR, f'old_snapshots-{datetime.now().strftime('%Y-%m-%d')}.yaml')),
"DISABLE_SSL_VERIFY": global_config.get('disable_ssl_verify', True),
"SCHEDULE_EXPORT": export_schedule,
"SCHEDULE_DELETE": delete_schedule,
}
# 验证配置
if not config["MANAGEMENT_NODES"]:
raise ValueError("未配置任何管理节点vCenter 或 ESXi少要有一台 management_nodes 节点。")
raise ValueError("未配置任何管理节点vCenter 或 ESXi少要有一台 management_nodes 节点。")
# 检查每个节点的必填字段
required_fields = ['type', 'name', 'host', 'user', 'password', 'max_delete_concurrent']
@@ -54,7 +62,9 @@ SNAPSHOT_RETENTION_DAYS = config["SNAPSHOT_RETENTION_DAYS"]
EXCEL_OUTPUT_PATH = config["EXCEL_OUTPUT_PATH"]
YAML_OUTPUT_PATH = config["YAML_OUTPUT_PATH"]
DISABLE_SSL_VERIFY = config["DISABLE_SSL_VERIFY"]
# 调度配置
SCHEDULE_EXPORT = config["SCHEDULE_EXPORT"]
SCHEDULE_DELETE = config["SCHEDULE_DELETE"]
if __name__ == "__main__":
# 打印全局配置