【问题标题】:python-crontab ask for privileged user in django requestpython-crontab 在 django 请求中请求特权用户
【发布时间】:2018-11-24 04:48:23
【问题描述】:

我正在尝试自动化 crontab 以从 django 接收请求并创建作业,但出现以下错误:

    Traceback:

File "/var/www/venv/lib/python3.6/site-packages/django/core/handlers/exception.py" in inner
  34.             response = get_response(request)

File "/var/www/venv/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
  126.                 response = self.process_exception_by_middleware(e, request)

File "/var/www/venv/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
  124.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/var/www/venv/lib/python3.6/site-packages/django/views/decorators/csrf.py" in wrapped_view
  54.         return view_func(*args, **kwargs)

File "/var/www/myweb/apps/general/views.py" in create_cronjob_json
  779.     return create_cronjob(request)

File "/var/www/myweb/apps/utilities/daemons_planner.py" in create_cronjob
  12.     cron = CronTab(user="pedro")

File "/var/www/venv/lib/python3.6/site-packages/crontab.py" in __init__
  227.         self.read(tabfile)

File "/var/www/venv/lib/python3.6/site-packages/crontab.py" in read
  288.                 raise IOError("Read crontab %s: %s" % (self.user, err))

Exception Type: OSError at /create-cronjob-json/
Exception Value: Read crontab pedro: b'must be privileged to use -u\n'

我正在使用 python-crontab

这是我的代码:

def create_cronjob(request):
    received_json_data = json.loads(request.body)
    cron = CronTab(user="pedro")
    comment = received_json_data['name']
    command = received_json_data['command'] 
    band = True
    for job in cron:
        if job.comment == comment:
            band = False
    if band:
        job = cron.new(command=command, comment=comment)
        job.setall(received_json_data['cron'])

    cron.write()
    response_data = {}
    response_data["success"] = True
    return JsonResponse(response_data)

可能是什么问题?我该如何解决这个问题?

【问题讨论】:

  • FWIW,您还可以使用第 3 方服务,例如 crono,以编程方式设置您的作业。

标签: python django cron


【解决方案1】:

您可以尝试使用:

CronTab(user=True)

【讨论】:

    猜你喜欢
    • 2021-12-04
    • 2014-06-01
    • 2020-01-15
    • 2015-02-24
    • 2016-07-21
    • 1970-01-01
    • 2020-04-15
    • 1970-01-01
    • 2014-02-05
    相关资源
    最近更新 更多