我只是试图触发一个脚本来经常运行以将项目下载到目录中。
我有一个下载目录的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脚本时,一切运行正常。
答案 0 :(得分:0)
我认为你需要失去-U
和email@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
。