From faa491964c62d0d28b5dd5352212cd9eea227180 Mon Sep 17 00:00:00 2001 From: Michael Ramsey Date: Mon, 3 Feb 2020 22:43:23 -0500 Subject: [PATCH] Remove invalid system crons setup via /etc/crontab. Adjust install.py to install crons to the root user crontab. Fix upgrade.py to ensure crons setup properly under root crontab. Remove duplicate old crons for Incscheduler section. --- install/install.py | 12 ++++++------ plogical/upgrade.py | 40 ++++++++++++++-------------------------- 2 files changed, 20 insertions(+), 32 deletions(-) diff --git a/install/install.py b/install/install.py index cead16faa..d06c6ce82 100755 --- a/install/install.py +++ b/install/install.py @@ -1679,12 +1679,12 @@ imap_folder_list_limit = 0 ## - cronFile = open("/etc/crontab", "a") - cronFile.writelines("0 * * * * root /usr/local/CyberCP/bin/python /usr/local/CyberCP/plogical/findBWUsage.py >/dev/null 2>&1" + "\n") - cronFile.writelines("0 * * * * root /usr/local/CyberCP/bin/python /usr/local/CyberCP/postfixSenderPolicy/client.py hourlyCleanup >/dev/null 2>&1" + "\n") - cronFile.writelines("0 0 1 * * root /usr/local/CyberCP/bin/python /usr/local/CyberCP/postfixSenderPolicy/client.py monthlyCleanup >/dev/null 2>&1" + "\n") - cronFile.writelines("0 2 * * * root /usr/local/CyberCP/bin/python /usr/local/CyberCP/plogical/upgradeCritical.py >/dev/null 2>&1" + "\n") - cronFile.writelines("0 2 * * * root /usr/local/CyberCP/bin/python /usr/local/CyberCP/plogical/renew.py >/dev/null 2>&1" + "\n") + cronFile = open("/var/spool/cron/root", "a") + cronFile.writelines("0 * * * * /usr/local/CyberCP/bin/python /usr/local/CyberCP/plogical/findBWUsage.py >/dev/null 2>&1" + "\n") + cronFile.writelines("0 * * * * /usr/local/CyberCP/bin/python /usr/local/CyberCP/postfixSenderPolicy/client.py hourlyCleanup >/dev/null 2>&1" + "\n") + cronFile.writelines("0 0 1 * * /usr/local/CyberCP/bin/python /usr/local/CyberCP/postfixSenderPolicy/client.py monthlyCleanup >/dev/null 2>&1" + "\n") + cronFile.writelines("0 2 * * * /usr/local/CyberCP/bin/python /usr/local/CyberCP/plogical/upgradeCritical.py >/dev/null 2>&1" + "\n") + cronFile.writelines("0 2 * * * /usr/local/CyberCP/bin/python /usr/local/CyberCP/plogical/renew.py >/dev/null 2>&1" + "\n") cronFile.close() command = 'chmod +x /usr/local/CyberCP/plogical/findBWUsage.py' diff --git a/plogical/upgrade.py b/plogical/upgrade.py index 5b953c586..21b00a801 100755 --- a/plogical/upgrade.py +++ b/plogical/upgrade.py @@ -1974,26 +1974,6 @@ failovermethod=priority command = 'apt-get install restic -y' Upgrade.executioner(command, 'Install Restic') - cronTab = '/etc/crontab' - - data = open(cronTab, 'r').read() - - if data.find('IncScheduler') == -1: - cronJob = '0 12 * * * root /usr/local/CyberPanel/bin/python /usr/local/CyberCP/IncBackups/IncScheduler.py Daily\n' - - writeToFile = open(cronTab, 'a') - writeToFile.writelines(cronJob) - - cronJob = '0 0 * * 0 root /usr/local/CyberPanel/bin/python /usr/local/CyberCP/IncBackups/IncScheduler.py Weekly\n' - writeToFile.writelines(cronJob) - writeToFile.close() - - - if data.find('renew.py') == -1: - writeToFile = open(cronTab, 'a') - writeToFile.writelines("0 2 * * * root /usr/local/CyberPanel/bin/python /usr/local/CyberCP/plogical/renew.py\n") - writeToFile.close() - @staticmethod def UpdateMaxSSLCons(): @@ -2058,35 +2038,43 @@ vmail @staticmethod def runSomeImportantBash(): + # Remove invalid crons from /etc/crontab Reference: https://github.com/usmannasir/cyberpanel/issues/216 + command = """sed -i '/CyberCP/d' /etc/crontab""" + subprocess.call(command, shell=True) + + # Setup /usr/local/lsws/conf/httpd.conf to use new Logformat standard for better stats and accesslogs command = """sed -i "s|^LogFormat.*|LogFormat '%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"' combined|g" /usr/local/lsws/conf/httpd.conf""" subprocess.call(command, shell=True) + # Fix all existing vhost confs to use new Logformat standard for better stats and accesslogs command = """find /usr/local/lsws/conf/vhosts/ -type f -name 'vhost.conf' -exec sed -i "s/.*CustomLog.*/ LogFormat '%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"' combined\n&/g" {} \;""" subprocess.call(command, shell=True) + # Install any Cyberpanel missing crons to root crontab so its visible to users via crontab -l as root user + # Install findBWUsage cron if missing - command = """command="root /usr/local/CyberCP/bin/python /usr/local/CyberCP/plogical/findBWUsage.py"; job="0 * * * * $command >/dev/null 2>&1"; cat <(grep -Fiv "$command" <(crontab -l)) <(echo "$job") | crontab -""" + command = """command="/usr/local/CyberCP/bin/python /usr/local/CyberCP/plogical/findBWUsage.py"; job="0 * * * * $command >/dev/null 2>&1"; cat <(grep -Fiv "$command" <(crontab -l)) <(echo "$job") | crontab -""" subprocess.call(command, shell=True) # Install postfix hourly cron if missing - command = """command="root /usr/local/CyberCP/bin/python /usr/local/CyberCP/postfixSenderPolicy/client.py hourlyCleanup"; job="0 * * * * $command >/dev/null 2>&1"; cat <(grep -Fiv "$command" <(crontab -l)) <(echo "$job") | crontab -""" + command = """command="/usr/local/CyberCP/bin/python /usr/local/CyberCP/postfixSenderPolicy/client.py hourlyCleanup"; job="0 * * * * $command >/dev/null 2>&1"; cat <(grep -Fiv "$command" <(crontab -l)) <(echo "$job") | crontab -""" subprocess.call(command, shell=True) - # Install postfix monthyl cron if missing + # Install postfix monthly cron if missing - command = """command="root /usr/local/CyberCP/bin/python /usr/local/CyberCP/postfixSenderPolicy/client.py monthlyCleanup"; job="0 0 1 * * $command >/dev/null 2>&1"; cat <(grep -Fiv "$command" <(crontab -l)) <(echo "$job") | crontab -""" + command = """command="/usr/local/CyberCP/bin/python /usr/local/CyberCP/postfixSenderPolicy/client.py monthlyCleanup"; job="0 0 1 * * $command >/dev/null 2>&1"; cat <(grep -Fiv "$command" <(crontab -l)) <(echo "$job") | crontab -""" subprocess.call(command, shell=True) # Install upgradeCritical cron if missing - command = """command="root /usr/local/CyberCP/bin/python /usr/local/CyberCP/plogical/upgradeCritical.py"; job="0 2 * * * $command >/dev/null 2>&1"; cat <(grep -Fiv "$command" <(crontab -l)) <(echo "$job") | crontab -""" + command = """command="/usr/local/CyberCP/bin/python /usr/local/CyberCP/plogical/upgradeCritical.py"; job="0 2 * * * $command >/dev/null 2>&1"; cat <(grep -Fiv "$command" <(crontab -l)) <(echo "$job") | crontab -""" subprocess.call(command, shell=True) # Install upgradeCritical cron if missing - command = """command="root /usr/local/CyberCP/bin/python /usr/local/CyberCP/plogical/renew.py"; job="0 2 * * * $command >/dev/null 2>&1"; cat <(grep -Fiv "$command" <(crontab -l)) <(echo "$job") | crontab -""" + command = """command="/usr/local/CyberCP/bin/python /usr/local/CyberCP/plogical/renew.py"; job="0 2 * * * $command >/dev/null 2>&1"; cat <(grep -Fiv "$command" <(crontab -l)) <(echo "$job") | crontab -""" subprocess.call(command, shell=True)