2

我一直在寻找一个自动字幕下载器,它可以监视特定文件夹中的新文件,我发现了基于 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 文件。

4

1 回答 1

1

好的,最后通过使用我的用户 marco 而不是 root 运行 incron 任务来修复它。真的不明白为什么,但它是这样工作的。谢谢你的帮助。

仍然需要转义字符“é”以将其移动到 Téléchargement 文件夹中。

  marco@localhost:~/WindowsShare/Series$ /bin/ls -ld /tmp /tmp/the.blacklist.112.hdtv-lol.mp4.log /home/marco/WindowsShare/Series/the.blacklist.112.hdtv-lol.mp4 
  -rw-r--r--  1 marco marco 269597467 janv. 22 23:13 /home/marco/WindowsShare/Series/the.blacklist.112.hdtv-lol.mp4
  drwxrwxrwt 11 root  root       4096 janv. 22 23:41 /tmp
  -rw-r--r--  1 marco marco       370 janv. 22 23:37 /tmp/the.blacklist.112.hdtv-lol.mp4.log
于 2014-01-22T21:17:27.973 回答