Isso porque o comando put $FILE
do FTP colocará o arquivo $FILE
em qualquer diretório 'atual' no lado do servidor FTP; portanto, no diretório raiz do servidor FTP (localizado em C: \ content).
Primeiro, você precisa extrair o subdiretório de inotifywait
's %w
output e, em seguida, prefixar um comando cd
FTP no parâmetro lftp
.
Eu nunca usei inotifywait
antes, mas acho que o script deve ser assim:
inotifywait -q -r -m -e close_write,moved_to . --format "%w %f" |
while read DIR FILE; do
lftp -e "cd $DIR; put $FILE; exit" -u user,password -p 2121 ftp.server-a.com
done
PS: Nunca é uma boa ideia escrever explicitamente uma senha em um script. Use rsync
em vez disso; no Windows, você precisará instalar um servidor rsync
. Eu pessoalmente uso o Cygwin, e uso cygrunsrv
para fazer o rsync
ser executado como um serviço do Windows.