Para explicar um pouco, estou atualmente monitorando uma pasta para quaisquer alterações e quando as alterações são detectadas, ele simplesmente faz o upload dos arquivos detectados para o meu servidor via rsync. Isso está funcionando sem problemas:
#!/bin/bash
time_stamp=$(date +"%B-%d-%Y")
inotifywait -mr /usr/lib/unifi-video/data/videos -e create -e moved_to |
while read path action file; do
echo "The file '$file' appeared in directory '$path' via '$action'"
rsync -avz -e "ssh -p 221" /$path/$file [email protected]:~/"$time_stamp"/
done
Encontrei a maior parte desse script aqui: Script para monitorar a pasta para novos arquivos?
Pergunta: Eu estou tentando adicionar a seguinte linha CURL ao script acima, mas como vários arquivos estão sendo detectados de uma só vez, ele também está executando a linha CURL várias vezes. Eu estou tentando encontrar um método para evitar que a linha CURL seja executada mais de uma vez quando vários arquivos são detectados?
curl http://textbelt.com/text -d number=XXXXXXX -d "message=Motion Detected";
Eu tentei adicioná-lo como uma nova linha diretamente sob o comando rsync, além de usar o & & após o comando rsync. Ambos os métodos executaram o comando CURL várias vezes.
Exemplo do que tentei:
#!/bin/bash
time_stamp=$(date +"%B-%d-%Y")
inotifywait -mr /usr/lib/unifi-video/data/videos -e create -e moved_to |
while read path action file; do
echo "The file '$file' appeared in directory '$path' via '$action'"
rsync -avz -e "ssh -p 221" /$path/$file [email protected]:~/"$time_stamp"/
curl http://textbelt.com/text -d number=XXXXXXX -d "message=Motion Detected";
done
Exemplo da saída:
The file 'test30' appeared in directory '/usr/lib/unifi-video/data/videos/' via 'CREATE'
sending incremental file list
sent 39 bytes received 11 bytes 20.00 bytes/sec
total size is 0 speedup is 0.00
{
"success": true
}
The file 'test31' appeared in directory '/usr/lib/unifi-video/data/videos/' via 'CREATE'
sending incremental file list
sent 39 bytes received 11 bytes 20.00 bytes/sec
total size is 0 speedup is 0.00
{
"success": true
}
As duas linhas de "sucesso" mostram que o comando CURL foi executado duas vezes, após cada detecção e upload.
Por favor, deixe-me saber se eu esqueci de incluir qualquer informação ...