Você pode usar inotify-tool para fazer isso.
Veja a seção "inotifywait exemplo 1 (graças a Nick Lothian)" por um exemplo de fazer o que você descreve usando o rsync.
Você pode precisar modificá-lo para usar o ftp, ou o que for, dependendo da configuração.
É bastante trivial verificar a extensão do arquivo ou usar o comando file
para determinar o tipo de arquivo antes de decidir transferir o arquivo.
EDIT: Veja também incron . É um crontab baseado em eventos, em vez de um crontab baseado no tempo. Executar as coisas a cada minuto, apenas no caso de algo ter mudado, não é uma solução ideal.