inotifywait não monitora usuários do Windows salvando no compartilhamento Samba no Linux

1

Eu tenho inotifywait (versão 3.14) no Linux para monitorar uma pasta que é compartilhada com o Samba Versão 4.3.9-Ubuntu.

Funciona se eu copiar um arquivo da máquina Linux para o compartilhamento samba (que está em uma máquina diferente, também no Linux).

Mas se eu copiar um arquivo da máquina Windows inotify não detectará nada. Espaços ou nenhum espaço, resultado recursivo ou não é o mesmo.

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

Alguém tem alguma ideia de como resolvê-lo?

    
por bstand 06.06.2016 / 09:51

1 resposta

0

Ok, é uma solução desagradável, mas, no meu caso, deve funcionar em ~ 90% dos casos.

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
    
por 07.06.2016 / 10:20