Eu preciso mover um arquivo via ftps do nosso servidor para um servidor remoto e fazer isso a cada 30 minutos usando um cron job.
O script de shell que eu tenho é:
#!/bin/sh
# @description: Transfer inventory update file to BOL.com
#
# FTP LOGIN
HOST='ftps.bol.com'
USER='USR'
PASSWORD='PASS'
# REMOTE DIRECTORY
REMOTE_DIR='/remote_dir'
#LOCAL DIRECTORY
LOCAL_DIR='local/dir'
# RUNTIME!
echo
echo "Starting upload of file to $HOST"
date
lftp -u "$USER","$PASSWORD" $HOST <<EOF
set ftp:ssl-allow true
# set ftp:ssl-protect-data true
set ssl:verify-certificate no
# transferring now...
put -O $REMOTE_DIR $LOCAL_DIR/1064072.csv;
quit
EOF
echo
echo "Transfer finished"
date
O script roda bem via ssh, mas aguarda 10 minutos antes de eu ver o prompt de comando. Quando eu configuro isso para rodar via cron ele não roda. Disseram-me que o processo não está sendo finalizado e isso está causando a parada do cron.
Como posso obter este comando ftp para concluir e fechar a conexão?