修改可在config文件自定义运行时间
This commit is contained in:
@@ -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
|
||||
@@ -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__":
|
||||
# 打印全局配置
|
||||
|
||||
Reference in New Issue
Block a user