inotifywaitは、LinuxでSamba共有に保存するWindowsユーザーを監視しません。

inotifywaitは、LinuxでSamba共有に保存するWindowsユーザーを監視しません。

inotifywaitSambaバージョン4.3.9 - Ubuntu on Linux(バージョン3.14)と共有されているフォルダを監視しています。

LinuxシステムのファイルをSamba共有(つまり、他のシステム、Linuxでも)にコピーすると機能します。

ただし、Windowsシステムからファイルをコピーすると、inotify何も検出されません。結果は、空白があるかどうかにかかわらず、再帰的でも非再帰的でも同じです。

printDir="/media/smb_share/temp/monitor"
inotifywait -m -r -e modify -e create "$printDir" |  while read line
do
    echo "$line"
done

誰もが問題を解決する方法を知っていますか?

ベストアンサー1

さて、これは醜い解決策ですが、私が思う限り、約90%の場合に動作します。

temPrint=/dev/shm/print
fcheck_1=$temPrint/fcheck_1
fcheck_new=$temPrint/fcheck_new
fcheck_old=$temPrint/fcheck_old
fcheck_preprint=$temPrint/fcheck_preprint
fcheck_print=$temPrint/fcheck_print
printDir="/media/smb_share/temp/monitor"

test -d $temPrint || mkdir $temPrint

while [ true ]; do
  test -e $fcheck_new && rm $fcheck_new
  test -e $fcheck_old || touch $fcheck_old
  test -e $fcheck_print && rm $fcheck_print

  ls -l "$printDir"/*.pdf > $fcheck_1
  while read line
  do
    echo "${line#*"/"}" | sed "s#^#/#" >> $fcheck_new
  done < $fcheck_1

  rt=$(diff $fcheck_new $fcheck_old | grep "<")
  if [ "$rt" ]; then
    echo "$rt" > $fcheck_preprint
    while read line
    do
      echo "${line#*"/"}" | sed "s#^#/#" >> $fcheck_print
    done < $fcheck_preprint

    while read line
    do
      echo "$line"
    done < $fcheck_print

    cp $fcheck_new $fcheck_old
  fi
  sleep 20
done

おすすめ記事