Provavelmente você já tem mensagens de erro que não está vendo quando executa o script.
Capture todas as saídas para um log, executando-as com um log script.sh > log.txt 2 > & 1
A última parte redireciona stderr para stdout, neste caso log.txt
Provavelmente, o que você descobrirá é que está expirando (quantos arquivos você está enviando, quão estável é a sua conexão), ou talvez um comando que você espera pelo próximo comando não espere roteiro.