Pular para o conteúdo

Upload em FTP não funciona pelo cron

Responder tópico
  • Denunciar
  • Indicar
01 02

1. Upload em FTP não funciona pelo cron

Enviado em 03/03/2015 - 14:59h

Boa tarde a todos!

Aqui na empresa onde trabalho, preciso usar o cron para agendar uma cópia de arquivos, essa cópia será feita em um servidor ftp, gostaria de uma ajuda com um problema que ando encontrando!!
SERVIDOR LOCAL > SERVIDOR FTP
seguinte, quando eu rodo este script na mão ele funciona perfeitamente, realizando o upload dos arquivos sem problemas, trazendo a seguinte mensagem para cada arquivo que é enviado:

local: Para_2015022800_96.dat remote: Para_2015022800_96.dat
227 Entering Passive Mode (177,74,62,129,49,120).
125 Data connection already open; Transfer starting.
226 Transfer complete.
650688 bytes sent in 2.9 seconds (2.2e+02 Kbytes/s)
221
----------------------------------

Agora quando eu agendo a tarefa para rodar no cron ele não funciona, assim eu coloquei para salvar em um txt o que está ocorrendo e ele simplesmente me traz a mensagem:

Connected to 177.74.62.129 (177.74.62.129).
220 Microsoft FTP Service
331 Password required for mgtemposema.
230 User mgtemposema logged in.
Interactive mode off.
221
---------------------------------
Vcs saberiam me dizer se isto pode ser por falta de alguma path que não foi instalada?
Segue abaixo o agendamento no cron e o codigo em questão:
Se souberem me ajudar nesse desafio. Desde já agradeço pela atenção de todos!!!

0,30 7 * * * /home/operacao/scripts/vale/ftp.sh -q > /home/operacao/scripts/vale/erro_no_meu_script_de_FTP.log


#!/bin/bash

data=$(date +%Y%m%d)

HOST='177.74.62.129'
USER='usuario'
PASSWD='senha'
filename="Para_*.dat"
dirname="/home/operacao/scripts/vale"

ftp -v -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
prompt
mput $filename
quit
END_SCRIPT

rm $dirname/$filename

exit 0







Responder tópico

2. Re: Upload em FTP não funciona pelo cron

Enviado em 03/03/2015 - 15:03h

Em vez d vc mandar apenas a STDOUT pro arquivo, mande os erros tb pra vc saber quais foram os erros:


*/1 * * * * /home/operacao/scripts/vale/ftp.sh -q 2>&1 /home/operacao/scripts/vale/erro_no_meu_script_de_FTP.log
Olhe, tb, os logs do cron pra saber se o seu script realmente foi executado.

Obs.: coloquei ali pra ser executado d min em min pra vc fazer os testes.

3. Re: Upload em FTP não funciona pelo cron

Enviado em 03/03/2015 - 15:41h

Então renato_pacheco, eu fiz aki o procedimento, o mais estranho é que no log do cron não fez nem menção ao script, e so me tira uma duvida, esta rotina que vc criou, qual seria o significado de 2>&1
Pois ao add ela não gerou mais log, ai quando retirei e deixei somente o > gerou.
O que estou estranhando mais neste script é que apesar dele não aparecer como executado nos logs do cron, ele executou a operação de remover, uma vez que os arquivos foram apagados, só não os enviou para o servidor ftp.

4. Re: Upload em FTP não funciona pelo cron

Enviado em 03/03/2015 - 17:10h

Eu acho que o renato quis dizer

*/1 * * * * /home/operacao/scripts/vale/ftp.sh -q > /home/operacao/scripts/vale/erro_no_meu_script_de_FTP.log 2>&1 
O primeiro “>” redireciona a saída de dados normal, que por convenção usa o descritor de arquivos número 1. O redirecionamento “2>&1” manda redirecionar o descritor associado à saída de erros, que tem o número 2, para o mesmo lugar onde estiver o descritor 1.

Note que a ordem dos redirecionamentos importa: se você trocar a ordem, ele vai primeiro fazer a equivalência de 2 com 1, e depois mudar o apontamento do descritor 1, desfazendo a equivalência.

5. Re: Upload em FTP não funciona pelo cron

Enviado em 03/03/2015 - 18:09h

paulo1205 escreveu:

Eu acho que o renato quis dizer

*/1 * * * * /home/operacao/scripts/vale/ftp.sh -q > /home/operacao/scripts/vale/erro_no_meu_script_de_FTP.log 2>&1 


O primeiro “>” redireciona a saída de dados normal, que por convenção usa o descritor de arquivos número 1. O redirecionamento “2>&1” manda redirecionar o descritor associado à saída de erros, que tem o número 2, para o mesmo lugar onde estiver o descritor 1.

Note que a ordem dos redirecionamentos importa: se você trocar a ordem, ele vai primeiro fazer a equivalência de 2 com 1, e depois mudar o apontamento do descritor 1, desfazendo a equivalência.
Valeu o conserto, paulo1205! Era isso, toda vez eu confundo...


6. Re: Upload em FTP não funciona pelo cron

Enviado em 04/03/2015 - 02:34h

renato_pacheco escreveu:

Valeu o conserto, paulo1205! Era isso, toda vez eu confundo...
Não que sirva de consolo, mas eu também levei umbocado de tempo até entender isso.

E o pior é que tem uma exceção: se você quiser redirecionar os dois descritores para um pipe,a ordem se inverte: primeiro você unifica a saída, e depois coloca o pipe.

ls 2>&1 | less  # Saída padrão e de erro de ls para less
ls | less 2>&1 # Saida padrão de ls para less; saída de erro de ls
# intocada; saída de erro de less para saída padrão de less

7. Re: Upload em FTP não funciona pelo cron

Enviado em 04/03/2015 - 14:59h

Bom seguindo o padrão que vcs me passaram, o txt veio somente com estas linhas:

Connected to 177.74.62.129 (177.74.62.129).
220 Microsoft FTP Service
331 Password required for mgtemposema.
230 User mgtemposema logged in.
Interactive mode off.
221

Não consigo entender o fato dele rodar na mão e não rodar no cron automaticamente!!!

8. Re: Upload em FTP não funciona pelo cron

Enviado em 04/03/2015 - 15:00h

E nos logs do cron? Não aparece nenhuma mensagem d erro, não?

9. Re: Upload em FTP não funciona pelo cron

Enviado em 04/03/2015 - 15:02h

A unica coisa que eu encontrei sobre o script no log do cron foi isto:

Subject: Cron <operacao@ctgmgtsrv03> /home/operacao/scripts/vale/teste.sh -q > /home/operacao/scripts/vale/erro_no_meu_script_de_FTP.log
Content-Type: text/plain; charset=UTF-8
Auto-Submitted: auto-generated
X-Cron-Env: <PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/bin/grads>
X-Cron-Env: <MAILTO=operacao>
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/home/operacao>
X-Cron-Env: <LOGNAME=operacao>
X-Cron-Env: <USER=operacao>

rm: cannot remove `/home/operacao/scripts/vale/Para_*.dat': No such file or directory

10. Re: Upload em FTP não funciona pelo cron

Enviado em 04/03/2015 - 15:09h

carlosesantos escreveu:

A unica coisa que eu encontrei sobre o script no log do cron foi isto:

Subject: Cron <operacao@ctgmgtsrv03> /home/operacao/scripts/vale/teste.sh -q > /home/operacao/scripts/vale/erro_no_meu_script_de_FTP.log
Content-Type: text/plain; charset=UTF-8
Auto-Submitted: auto-generated
X-Cron-Env: <PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/bin/grads>
X-Cron-Env: <MAILTO=operacao>
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/home/operacao>
X-Cron-Env: <LOGNAME=operacao>
X-Cron-Env: <USER=operacao>

rm: cannot remove `/home/operacao/scripts/vale/Para_*.dat': No such file or directory
Pelo q percebi, o cron não consegue identificar o caractere coringa (asterisco) e, sim, o asterisco literal, entendendo q não existe no diretório tal arquivo. O q contém entre Para_ e .dat?


11. Re: Upload em FTP não funciona pelo cron

Enviado em 04/03/2015 - 15:14h

Existe simplesmente uma data entre o nome, como esta: Para_2015030300_00.dat
So que são gerados 5 arquivos por dia, com pequenas alterações no nome. O estranho é que ele aponta ali que não consegue remover, mas quando vou na pasta temporaria, os arquivos foram excluídos.
01 02

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder