You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
1.4 KiB
34 lines
1.4 KiB
from crontab import *
|
|
from ee.core.shellexec import EEShellExec
|
|
from ee.core.logging import Log
|
|
|
|
"""
|
|
Set CRON on LINUX system.
|
|
https://pypi.python.org/pypi/python-crontab
|
|
"""
|
|
|
|
class EECron():
|
|
def setcron_daily(self,cmd,comment='Cron set by EasyEngine',user='root',min=0,hour=12):
|
|
if not EEShellExec.cmd_exec(self, "crontab -l | grep -q \'{0}\'".format(cmd)):
|
|
tab = CronTab(user=user)
|
|
cron_job = tab.new(cmd, comment=comment)
|
|
cron_job.minute.on(min)
|
|
cron_job.hour.on(hour)
|
|
#writes to crontab
|
|
tab.write()
|
|
Log.debug(self, "Cron is set:\n" + tab.render())
|
|
else:
|
|
Log.debug(self, "Cron already exist")
|
|
|
|
|
|
def remove_cron(self,cmd):
|
|
if EEShellExec.cmd_exec(self, "crontab -l | grep -q \'{0}\'".format(cmd)):
|
|
#root@e:~# crontab -l | sed '/ee site update example.com --le/d' | crontab -
|
|
if not EEShellExec.cmd_exec(self, "/bin/bash -c "
|
|
"\"crontab "
|
|
"-l | sed '/{0}/d'"
|
|
"| crontab -\""
|
|
.format(cmd)):
|
|
Log.error(self, "Failed to remove crontab entry",False)
|
|
else:
|
|
Log.debug(self, "Cron not found")
|
|
|