Como criar uma tarefa cron para fazer upload de arquivos para um servidor FTP

4

Eu gostaria de criar um cron job que carregue arquivos de um diretório no meu computador para o meu servidor FTP. Eu gostaria que fosse feito diariamente à meia-noite. Eu não sei praticamente nada sobre o cron, então peço desculpas se pareço idiota!

    
por Christopher 22.05.2010 / 17:25

2 respostas

10

Este é um script de amostra de FTP para transferir um arquivo: (Observe que você pode usar um FQDN em vez de IP)

#!/bin/bash

# $1 is the file name for the you want to tranfer
# usage: this_script  <filename>
IP_address="xx.xxx.xx.xx"
username="remote_ftp_username"
domain = sample.domain.ftp
password= password

ftp -n > ftp_$$.log <<EOF
 verbose
 open $IP_address
 USER $username $password
 put $1
 bye
EOF

Adicione o > ftp_$$.log somente se você precisar de log. Então você pode usar o

crontab -e

comando para editar a tabela de tempo de execução e adicionar seu script.

Este é um exemplo:

Se você gostou de ter o script acima, (suponha que você o tenha em casa e seu nome é myscript.sh) /home/myscript.sh, rodando todos os dias às 2h, você tem que fazer:

# crontab -e

e depois você deve adicionar a seguinte entrada:

0 2 * * * /home/myscript.sh

Como referência, aqui você tem um significado de parâmetros de entrada crontab:

* * * * * command to be executed
- - - - -
| | | | |
| | | | ----- Day of week (0 - 7) (Sunday=0 or 7)
| | | ------- Month (1 - 12)
| | --------- Day of month (1 - 31)
| ----------- Hour (0 - 23)
------------- Minute (0 - 59)

Este tutorial também pode ajudá-lo.

    
por 22.05.2010 / 17:34
0
O man crontab mostrará o que você precisa. Você vai querer algo como:

0 0 * * *  yourScript.sh

no seu arquivo crontab. Observe que os scripts em cron são executados com um ambiente reduzido, portanto, você precisará especificar suas configurações de env que o script exige nesse script.

    
por 22.05.2010 / 17:32