HEX
Server: LiteSpeed
System: Linux php-prod-3.spaceapp.ru 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC 2025 x86_64
User: sarli3128 (1010)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //opt/imunify360/venv/lib64/python3.11/site-packages/defence360agent/utils/cronjob.py
from typing import Union, Optional


class CronJob(object):
    __slots__ = "minute", "hour", "cmd"

    def __init__(
        self,
        *,
        minute: Union[int, str, None],
        hour: Union[int, str, None],
        cmd: Optional[str],
    ):
        self.minute = minute
        self.hour = hour
        self.cmd = cmd

    def __str__(self):
        return (
            "# DO NOT EDIT. AUTOMATICALLY GENERATED BY IMUNIFY360."
            f"\n{self.minute} {self.hour} * * * root {self.cmd}\n"
        )

    @classmethod
    def from_str(cls, data):
        minute = hour = cmd = None
        lines = [x for x in data.splitlines() if x[0] != "#"]
        if lines:
            line_members = lines[0].split(" ")
            minute = line_members[0]
            hour = line_members[1]
            cmd = " ".join(line_members[6:])
        return CronJob(minute=minute, hour=hour, cmd=cmd)