LittleDemon WebShell


Linux server27.hostingraja.org 2.6.32-954.3.5.lve1.4.93.el6.x86_64 #1 SMP Wed Oct 4 17:04:29 UTC 2023 x86_64
Path : /opt/imunify360/venv/share/imunify360/scripts/
File Upload :
Command :
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
import asyncio

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):
            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())
            return


if __name__ == "__main__":
    loop = asyncio.get_event_loop()
    lg.reconfigure()
    main()

LittleDemon - FACEBOOK
[ KELUAR ]