【问题标题】:python script from cronjob giving error,but not from bash.?来自cronjob的python脚本给出错误,但不是来自bash。?
【发布时间】:2013-06-09 14:07:20
【问题描述】:

我正在尝试通过子进程 python 模块从 cronjob 运行 nessus 扫描。 ,但从 cronjob 它给出了一个错误。但是从 bash 执行脚本时没有给出任何错误?

cronjob 代码

01 11 * * * /root/nessusscan.py

脚本中的子进程调用是

subprocess.call(['nessus','-q','-x','-T','nessus','127.0.0.1','1241','user','password','ip.txt','res'])

从 bash 可以正常工作,但从 cronjob 我收到邮件中的以下错误

Traceback (most recent call last):
  File "/root/nessusscan.py", line 9, in <module>
    subprocess.call(['nessus','-q','-x','-T','nessus','127.0.0.1','1241','user','password','ip.txt','res'])
  File "/usr/lib/python2.7/subprocess.py", line 493, in call
    return Popen(*popenargs, **kwargs).wait()
  File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child
    raise child_exception
OSError: [Errno 13] Permission denied

【问题讨论】:

  • 可能 cron 作业正在以不同的用户身份运行?请参阅this answer thread 了解一些想法。
  • @Bo102010 不实际......它以 root 身份运行......我的意思是我是从 root 用户登录......

标签: python python-2.7 python-3.x subprocess


【解决方案1】:

感谢每个人,我正在为其他将访问此线程的人回答我自己的问题。这样他们也可以摆脱这个错误。在我的情况下,通过给出 nessus 的路径解决了错误,即"/opt/nessus/bin/nessus"

nessus替换为"/opt/nessus/bin/nessus"

cronjob 无法获取 nessus 命令的路径。它正在工作。

【讨论】:

    猜你喜欢
    • 2021-09-03
    • 1970-01-01
    • 1970-01-01
    • 2013-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 2017-05-06
    相关资源
    最近更新 更多