0
incrontab -e
/home/owen/file_to_be IN_ALL_EVENTS /home/owen/abc.py 

owen@desktop:~$ cat abc.py 
#!/usr/bin/env python
# -*- coding: utf-8 -*-
p = open('file_to_test', 'a+')
p.write("test")
p.close()

owen@desktop:~$ ll file_to_test file_to_be 
-rw-r--r-- 1 owen owen 32 2012-04-27 17:07 file_to_be
-rw-r--r-- 1 owen owen 60 2012-04-27 17:07 file_to_test

owen@desktop:~$ echo "a" >> file_to_be 
owen@desktop:~$ ll file_to_test file_to_be 
-rw-r--r-- 1 owen owen 34 2012-04-27 17:15 file_to_be
-rw-r--r-- 1 owen owen 60 2012-04-27 17:07 file_to_test


owen@desktop:~$ tail -n 3 /var/log/syslog
Apr 27 17:15:01 owen1 CRON[12003]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)
Apr 27 17:15:10 owen1 incrond[11574]: table for user owen changed, reloading
Apr 27 17:15:18 owen1 incrond[11574]: (owen) CMD (/home/owen/abc.py)

似乎已触发了 incron

但是 python 脚本没有按预期工作。

有谁知道为什么?

如果我执行 abc.py,它会将“test”附加到正确的文件中。

4

2 回答 2

3

也许脚本正在运行,但不是您预期的那样......将完整路径放入脚本生成的文件中,即:

 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 p = open('/tmp/file_to_test', 'a+')
 p.write("test")
 p.close()

然后检查是否生成了文件'/tmp/file_to_test',问题可能是使用incron运行脚本的环境。

于 2012-04-27T09:44:52.507 回答
1

您的脚本似乎不可执行,您需要使用 chmod 使其可执行(chmod +x abc.py)。

于 2012-04-27T09:24:06.990 回答