ok
Direktori : /opt/imunify360/venv/share/imunify360/scripts/ |
Current File : //opt/imunify360/venv/share/imunify360/scripts/check_recurrent.py |
#!/opt/imunify360/venv/bin/python import socket import json import time from pathlib import Path from logging import getLogger from defence360agent.internals import logger as lg from defence360agent.contracts.config import SimpleRpc from defence360agent.subsys.persistent_state import PERSISTENT_STATE_DIR logger = getLogger(__name__) def is_need_to_run(lock_file: Path): try: content = lock_file.read_text() next_run = float(content) if content else 0 return time.time() >= next_run except (FileNotFoundError, ValueError) as e: logger.error( "Error while reading scheduled-lock file %s %s", lock_file, e ) return False def main(): for lock_file in PERSISTENT_STATE_DIR.glob("*.lock"): if is_need_to_run(lock_file): try: with socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) as sock: sock.settimeout(30) sock.connect(SimpleRpc.SOCKET_PATH) # it's doesn't matter what we send, we just need to wake up the server msg = ( json.dumps({"command": ["version"], "params": {}}) + "\n" ) sock.sendall(msg.encode()) except Exception as e: logger.error("Failed to connect to rpc socket %s", e) else: return if __name__ == "__main__": lg.reconfigure() main()