Incron Job创建多个文件

时间:2014-06-26 11:27:53

标签: linux incron

我正在使用RedHat(rhelsvrbase64-6.2)版本。     我写了一个incron作业,将文件(即utf-16le格式)转换为UTF-8格式。

When i am running my job, It is creating multiple UTF-8 copies of my file.

    My incrontab script is as follows: 

    **/home/sap/SRMArchive/incronTest IN_CLOSE_WRITE /usr/local/bin/test.sh $@ $#**

    test.sh

    **#!/bin/bash
    echo "hi">>/var/log/my.log
    echo $1>>/var/log/my.log
    echo $2>>/var/log/my.log
    file -bi $1/$2 >>/var/log/my.log
    iconv -f utf-16le -t UTF-8 $1/$2 > $1/UTF8_$2** 

    When i am dropping any file to my '/home/sap/SRMArchive/incronTest' folder, The output i am getting is number of files named as follows :

    UTF8_myFile.txt
    UTF8_UTF8_myFile.txt
    UTF8_UTF8_UTF8_myFile.txt 
    UTF8_UTF8_UTF8_UTF8_myFile.txt
    .........
    ........


Thanks in advance

1 个答案:

答案 0 :(得分:0)

在这一行:

    iconv -f utf-16le -t UTF-8 $1/$2 > $1/UTF8_$2** 

您正在使用incron观看的同一目录中创建输出。当iconv完成文件写入后,您将获得一个新的IN_CLOSE_WRITE事件,该事件会使用输出文件的名称触发您的脚本......等等。

理论上,你应该从中获得无限循环。

解决方案是(a)在不同目录中生成输出,或者(b)让脚本忽略以UTF8_开头的文件上的事件。