MOON
Server: Apache
System: Linux server30c.hostingraja.org 3.10.0-962.3.2.lve1.5.63.el7.x86_64 #1 SMP Fri Oct 8 12:03:35 UTC 2021 x86_64
User: jibhires (1887)
PHP: 8.1.30
Disabled: show_source, system, shell_exec, passthru, exec, popen, proc_open, allow_url_fopen, symlink, escapeshellcmd, pcntl_exec
Upload Files
File: //proc/self/root/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()