Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:子流程在crontab中不起作用_Python_Python 2.7_Cron_Subprocess_Lz4 - Fatal编程技术网

Python:子流程在crontab中不起作用

Python:子流程在crontab中不起作用,python,python-2.7,cron,subprocess,lz4,Python,Python 2.7,Cron,Subprocess,Lz4,extract.py: def extract_lz4(lz4_path): status = subprocess.call(["lz4", "-df", lz4_path], stderr=subprocess.STDOUT) log.info("In Extract fun STATUS : {}".format(status)) if not status: log.info("Extract Successful of {}".format(lz

extract.py

def extract_lz4(lz4_path):
    status = subprocess.call(["lz4", "-df", lz4_path], stderr=subprocess.STDOUT)
    log.info("In Extract fun STATUS : {}".format(status))
    if not status:
        log.info("Extract Successful of {}".format(lz4_path))
        return status
    else:
        log.info("Extract Successful of {}".format(lz4_path))
        return status
 lz4_file = '<path-to-lz4-file>/ly486imc83e0v9a7-23-telnet-banner-full_ipv4-20180515T040003-zmap-results.csv.lz4'

 extract_status = extract_lz4_task(lz4_file)
 log.info("extract_status : {}".format(extract_status))
* * * * * python <path-to-file>/main.py
Main.py

def extract_lz4(lz4_path):
    status = subprocess.call(["lz4", "-df", lz4_path], stderr=subprocess.STDOUT)
    log.info("In Extract fun STATUS : {}".format(status))
    if not status:
        log.info("Extract Successful of {}".format(lz4_path))
        return status
    else:
        log.info("Extract Successful of {}".format(lz4_path))
        return status
 lz4_file = '<path-to-lz4-file>/ly486imc83e0v9a7-23-telnet-banner-full_ipv4-20180515T040003-zmap-results.csv.lz4'

 extract_status = extract_lz4_task(lz4_file)
 log.info("extract_status : {}".format(extract_status))
* * * * * python <path-to-file>/main.py
lz4_file='/ly486imc83e0v9a7-23-telnet-banner-full_ipv4-20180515T040003-zmap-results.csv.lz4'
提取状态=提取lz4任务(lz4文件)
log.info(“提取状态:{}”。格式(提取状态))
当我通过
python/main.py
调用主文件时,它将成功提取。 但当我把它放在crontab中时,它不会提取

crontab-e

def extract_lz4(lz4_path):
    status = subprocess.call(["lz4", "-df", lz4_path], stderr=subprocess.STDOUT)
    log.info("In Extract fun STATUS : {}".format(status))
    if not status:
        log.info("Extract Successful of {}".format(lz4_path))
        return status
    else:
        log.info("Extract Successful of {}".format(lz4_path))
        return status
 lz4_file = '<path-to-lz4-file>/ly486imc83e0v9a7-23-telnet-banner-full_ipv4-20180515T040003-zmap-results.csv.lz4'

 extract_status = extract_lz4_task(lz4_file)
 log.info("extract_status : {}".format(extract_status))
* * * * * python <path-to-file>/main.py
***python/main.py

我有什么遗漏吗?任何帮助都将不胜感激

请尝试使用以下工具调试您的cron:

tail /var/log/cron
或者添加日志文件

$ crontab -e
  * * * * * python <path-to-file>/main.py >> <path-to-file>/cron.log 2>&1
$crontab-e
*****python/main.py>>/cron.log 2>&1

lz4
可能不在路径中?crontab没有设置与您的帐户相同的路径。还要检查
lz4_路径
是否正确。此外,检查异常并将其记录在文件中,以便“它不会提取”将变为“我有错误的回溯”提取\u lz4不返回值,因此提取\u状态将为无,现在请查看它是否返回。。。在运行时,cron的输出是什么?如果是路径问题,您可以在cron:(cd;python)子进程中尝试返回0,这不意味着该进程将成功吗?我提供完整的
lz4_路径
将其附加到您的crontab条目中:>/tmp/logfile 2>&1
cron.log
正在保存csv中的所有数据。这是怎么发生的?这意味着main.py从csv发送数据作为函数输出。
main..py
只是用来调用提取函数,那么它如何在提取之前从csv发送数据呢?在深入研究之后,我想这一切都是关于
stderr=subprocess.STDOUT
2>&1
在我们的例子中,它是作为
1>&2
工作的,因此,请尝试在不使用cron
python/main.py>/cron.log的情况下从cmd键入。输出与cron相同
cron.log
充满了csv数据