From 521d08969bd44134d3bf0c0af561ff2f5cd94392 Mon Sep 17 00:00:00 2001 From: YuruC3 Date: Sun, 9 Aug 2026 11:00:16 +0200 Subject: [PATCH] Added information about ongoing-blocking tasks --- main.py | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/main.py b/main.py index 729ee50..714fba8 100644 --- a/main.py +++ b/main.py @@ -32,6 +32,7 @@ AUTO_ADD_NAME: Final[str] = os.getenv("AUTO_ADD_NAME", "autoBackupScript_one-sho RUN_SCHEDULE: Final[str] = os.getenv("RUN_SCHEDULE", "45 17 * * 5") RUN_SCHEDULE_TZ: Final[str] = os.getenv("RUN_SCHEDULE_TZ", "Europe/Stockholm") +RUN_ONE_SHOT: Final[bool] = bool(os.getenv("RUN_ONE_SHOT", False)) @@ -160,21 +161,21 @@ def theCodeBasically(): # print(epoch_time) # Check if power is on - PWR_STATE = subprocess.run(["ipmitool", "-I", "lanplus","-H", IDRAC,"-U", IDRAC_USR,"-P", IDRAC_PWD,"chassis", "power", "status",],capture_output=True,text=True,) + PWR_STATE = subprocess.run(["/usr/sbin/ipmitool", "-I", "lanplus","-H", IDRAC,"-U", IDRAC_USR,"-P", IDRAC_PWD,"chassis", "power", "status",],capture_output=True,text=True,) if PWR_STATE.returncode != 0: - raise RuntimeError(f"ipmitool failed: {PWR_STATE.stderr.strip()}") + raise RuntimeError(f"/usr/sbin/ipmitool failed: {PWR_STATE.stderr.strip()}") if "off" in PWR_STATE.stdout.lower(): - subprocess.run(["ipmitool", "-I", "lanplus","-H", IDRAC,"-U", IDRAC_USR,"-P", IDRAC_PWD,"chassis", "power", "on",],check=True,) + subprocess.run(["/usr/sbin/ipmitool", "-I", "lanplus","-H", IDRAC,"-U", IDRAC_USR,"-P", IDRAC_PWD,"chassis", "power", "on",],check=True,) - # PWR_STATE = subprocess.run(["ipmitool", "-I", "lanplus", "-H", IDRAC, "-U", IDRAC_USR, "-P", IDRAC_PWD, "chassis", "power", "status"], capture_output=True) + # PWR_STATE = subprocess.run(["/usr/sbin/ipmitool", "-I", "lanplus", "-H", IDRAC, "-U", IDRAC_USR, "-P", IDRAC_PWD, "chassis", "power", "status"], capture_output=True) # try: # # power on if needed # if "off" in str(PWR_STATE.stdout.decode()[-4:]): - # subprocess.run(["ipmitool", "-I", "lanplus", "-H", IDRAC, "-U", IDRAC_USR, "-P", IDRAC_PWD, "chassis", "power", "on"]) # , capture_output=True + # subprocess.run(["/usr/sbin/ipmitool", "-I", "lanplus", "-H", IDRAC, "-U", IDRAC_USR, "-P", IDRAC_PWD, "chassis", "power", "on"]) # , capture_output=True # except Exception as e: # print("Most likely wrong password, username or hostname has been passed for idrac.\nExiting\n") # sys.exit(1) @@ -345,6 +346,10 @@ def theCodeBasically(): (stdin, stdout, stderr) = ssh.exec_command(f"proxmox-backup-manager sync-job run {AUTO_ADD_NAME}") + + # (stdin, stdout, stderr) = ssh.exec_command( + # f"nohup proxmox-backup-manager sync-job run {AUTO_ADD_NAME} >/var/log/{AUTO_ADD_NAME}.log 2>&1 = (PBS_MAX_RUNTIME_MIN * 60): # print(SYNC_JOB_DATE - time.monotonic()) + # Forcefully skip if these tasks are running. reader task is, I think, PVE backup # Also otherjob is something else and it is better to wait if there is one otherjob if ( @@ -412,12 +426,14 @@ def theCodeBasically(): print("PBS is powered off") else: - subprocess.run(["ipmitool", "-I", "lanplus", "-H", IDRAC, "-U", IDRAC_USR, "-P", IDRAC_PWD, "chassis", "power", "off"]) + subprocess.run(["/usr/sbin/ipmitool", "-I", "lanplus", "-H", IDRAC, "-U", IDRAC_USR, "-P", IDRAC_PWD, "chassis", "power", "off"]) # sys.exit(0) - +if RUN_ONE_SHOT: + theCodeBasically() + exit(0) scheduler = BlockingScheduler(timezone=RUN_SCHEDULE_TZ)