我一直在寻找一个自动字幕下载器,它可以监视特定文件夹中的新文件,我发现了基于 python 的 CLI subliminal(如果你不知道这个工具真的很棒)。下一步是每次在指定目录中有新电影/电视节目时触发它。这就是我选择incron的原因,它是一个 inotify cron 系统。
从那时起,我一直在努力让它发挥作用,遗憾的是根本没有任何机会。这是我的配置:
incron.allow:
root@localhost:/home/marco/Téléchargements# more /etc/incron.allow
marco
root
incrontab:
root@localhost:/home/marco/Téléchargements# incrontab -e
/home/marco/Téléchargements IN_CREATE,IN_MOVED_TO /home/marco/Téléchargements/series $#
剧本系列:
root@localhost:/home/marco/Téléchargements# more series
#!/bin/bash
logger "argument is "$1
/usr/bin/python /usr/local/bin/subliminal -l en -q -s -- $1
系统日志:
root@localhost:/home/marco/Téléchargements# tail /var/log/syslog
Jan 22 12:10:25 localhost incrond[3140]: (root) CMD (/home/marco/Téléchargements/series the.blacklist.112.hdtv-lol.mp4)
Jan 22 12:10:25 localhost logger: argument is the.blacklist.112.hdtv-lol.mp4
如您所见,incron 作业正在按预期执行。参数是根据需要给出的,但是当我检查我的“Téléchargement”文件夹时,里面什么都没有。当我使用相同的参数从 CLI 执行脚本时,它就完成了这项工作。
请注意,我认为这可能是由于当前文件夹不是 Téléchargements,因此文件不在此文件夹中,但如果我确实使用潜意识参数将其移动到好文件夹-d /path/to/Téléchargements
中,文件夹中仍然没有任何内容。
注意 2,我也尝试/usr/bin/python
在脚本中删除,但它没有改变任何东西。
任何帮助都会非常棒。
编辑: 我在 debian wheezy 上:
root@localhost:/home/marco/Téléchargements# uname -a
Linux localhost 3.2.0-4-amd64 #1 SMP Debian 3.2.51-1 x86_64 GNU/Linux
编辑2:
在一些评论之后,我确实将 cmd 路径添加到了我的服务脚本中,并且我还删除-q
了--log-file
. 这是系列的新脚本:
#!/bin/bash
export PATH=$PATH:/usr/local/sbin:/usr/local/bin
/usr/local/bin/subliminal -l en -d /tmp --log-file /tmp/log -s -- $1
如果我从 cmd 运行脚本,它会按预期工作,我可以通过读取 /tmp/log 中的文件来查看它:
root@localhost:/home/marco/Téléchargements# more /tmp/log
2014-01-22 15:06:58,526 INFO: Listing subtitles for <Episode [u'the blacklist', 1x12]>
2014-01-22 15:07:04,839 INFO: Found 8 subtitles total
2014-01-22 15:07:04,950 INFO: Downloading subtitle <OpenSubtitlesSubtitle [en]> with score 71
2014-01-22 15:07:05,885 INFO: Saving <OpenSubtitlesSubtitle [en]> to u'/tmp/the.blacklist.112.hdtv-lol.srt'
如果我运行 incron 任务,什么都不会发生。也不会有任何 /tmp/log 文件。