Este script enviará um arquivo via FTP e o excluirá. Mas, às vezes, o arquivo é excluído antes do término da transmissão e, em seguida, um arquivo vazio é recebido.
#!/bin/bash
tar czf <sourcefile> --directory=<directory> log
ftp -v -n $1 <<END_OF_SESSION
user <user> <password>
put <sourcefile> <targetfile>
bye
END_OF_SESSION
rm <sourcefile>
Qual seria uma boa forma de sincronizar os processos, de forma que a exclusão ocorra após o término do envio?
Conforme mostrado na atualização abaixo, a conexão às vezes não pode ser estabelecida.
Notas:
Executando no Lubuntu 16.04.
Atualizado com a tar
linha.
informações de log para uma sessão com falha:
Connected to IP
220 (vsFTPd 3.0.2)
331 Please specify the password.
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
200 Switching to Binary mode.
local: /home/user01/tmp/log.tgz remote: E1/180418090056
200 PORT command successful. Consider using PASV.
425 Failed to establish connection.
221 Goodbye.
e um sucesso:
Connected to IP
220 (vsFTPd 3.0.2)
331 Please specify the password.
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
200 Switching to Binary mode.
local: /home/user01/tmp/log.tgz remote: E1/180418090344
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
6901 bytes sent in 0.00 secs (43.5848 MB/s)
221 Goodbye.