从cron和其他预定服务调用时,为什么我的脚本不运行?

时间:2013-04-09 12:44:14

标签: python bash cron

我只是试图触发一个脚本来经常运行以将项目下载到目录中。

我有一个下载目录的python脚本。我试过直接从cron运行python脚本....

5 * * * * python /home/yt/pybox/boxclient.py -U email@address.com -td -Pd moremusic/youtube

即使让cron调用运行python脚本的bash脚本......

5 * * * * cd /home/yt/yxbox/runscript

我甚至设置了一个inotifywait来监听cron做一个触摸命令,然后从那里触发python脚本....

#!/usr/bin/env bash

inotifywait -mr -e ATTRIB * |

while read dir ev file;
do
   python boxclient.py -U email@address.com -td -Pd moremusic/youtube;
done;

所有这些方式都给了我这个我迷失的错误:

Traceback (most recent call last):
  File "boxclient.py", line 224, in <module>
    sys.exit(main())
  File "boxclient.py", line 190, in main
    (parser, options, args) = parse_args(argv)
  File "boxclient.py", line 80, in parse_args
    return (parser, options, decode_args(args, options))
  File "/home/yt/pybox/pybox/utils.py", line 134, in decode_args
    setattr(options, attr, value.decode(ENCODING))
TypeError: decode() argument 1 must be string, not None

当我在cl上运行python和bash脚本时,一切运行正常。

1 个答案:

答案 0 :(得分:0)

我认为你需要失去-Uemail@address.com之间的空间。语法是:

python pybox/boxclient.py -Ubob -td -Pd dir1/dir2

(来自https://github.com/hzheng/pybox)。所以在Cron尝试:

5 * * * * /usr/bin/env python /home/yt/pybox/boxclient.py -Uemail@address.com -td -Pd moremusic/youtube

通常,短格式选项不会在参数与其参数之间占用空格,而长格式选项则会占用空格。所以它可以是-Uemail@address.com--username email@address.com