首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >incrond不执行自定义脚本。

incrond不执行自定义脚本。
EN

Ask Ubuntu用户
提问于 2019-08-07 20:55:38
回答 1查看 1.3K关注 0票数 0

我试图建立自动处理从数字图书馆进口的图片和视频。

Custom脚本

代码语言:javascript
复制
me@mymachine ~ $ ll /home/me/scripts/autorename-avmedia-exif.sh 
-rwxr-xr-x 1 me me 603 Aug  7 22:50 /home/me/scripts/autorename-avmedia-exif.sh*

内容:

代码语言:javascript
复制
#!/bin/bash

# Argument
if [ $# -eq 1 ] ; then
    # Only one argument
    file=$1

else
    # No argument
    echo "Usage: $0 target-file"
    exit 1
fi

/bin/echo "$0 started" > /home/me/tmp/autorename.log

exiftool -overwrite_original_in_place -P '-filename> /home/me/tmp/autorename.log

Incron权限:

代码语言:javascript
复制
me@mymachine ~ $ sudo cat /etc/incron.allow
me
root

Incron手表:

代码语言:javascript
复制
me@mymachine ~ $ incrontab -l
/home/me/Bilder/Import IN_CLOSE_WRITE /bin/bash /home/me/scripts/autorename-avmedia-exif.sh "$@/$#" > /home/me/tmp/autorename-avmedia-exif.log

系统日志:

代码语言:javascript
复制
Aug  7 22:36:26 mymachine incrond[1391]: (me) CMD (/bin/bash /home/me/scripts/autorename-avmedia-exif.sh "/home/me/Bilder/Import/DSC01037.JPG" > /home/me/tmp/autorename-avmedia-exif.log)

问题:什么都不会发生。没有执行脚本。

当从syslog复制到终端时,脚本可以正常工作。

将脚本调用替换为touch /home/me/tmp/test.incron工作,然后创建测试文件。

因此,这肯定是一个环境问题,但我已经在脚本调用前加上了/bin/bash,并添加了完整路径。还缺什么?

EN

回答 1

Ask Ubuntu用户

发布于 2019-08-08 17:49:33

谢谢你的帮助,这把我推向了正确的方向。

我不知道以前的问题是什么,但是一旦我添加了输出重定向> /home/me/tmp/autorename-avmedia-exif.log,它就无法工作,因为incron似乎不知道它,并将这个部分作为参数提交给脚本。在那里,我的脚本失败了,因为它只期望一个参数,并且没有记录其他情况。

首先要说明的是:脚本被成功调用,但由于参数数量错误,它在顶部退出。

我通过在脚本中放置touch /home/me/incron#.test行发现了这一点,而#是一个递增的数字。

票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1164166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档