#  > Desenvolvimento >  > Linguagens de Programação >  >  Script para backup via ftp (utilizem)

## spectrum

Galera olha eu aqui...

Montei um scipt para fazer backup ... é grandinho mais deu certrinho na distro RED HAT 9.0.... Ce alguém quiser melhora-lo aceito sujestões para melhorar o meu :lol: 

Script para Backup via ftp:



```
####################################################################
###                         SCRIPT BACKUP VIA FTP                ###
###                                 BY SPECTRUM                  ###
####################################################################
#!/bin/bash 
ds=`date | cut -d " " -f1`
d=`date | cut -d " " -f2`
m=`date | cut -d " " -f3`
a=`date | cut -d " " -f6`
h=`date | cut -d " " -f4`
server=`hostname`
diretorios=" /etc /home /var/lib /var/named /var/log /var/www /Download "
ftp_host="ip_server_ftp"
user_ftp="usuario_ftp"
senha="senha_ftp"
d_host="diretorio_ftp_server"
log="backups-$server-$d-$m-$a.log"
arqui="backups-$server-$d-$m-$a.tar.gz"
echo "--------------------------------- Backup diario iniciou as h$ ----------------------------------------------" >> /backups/$log
echo "------------------------------ Diretorios pertencentes ao backup -------------------------------------------" >> /backups/$log
echo $diretorios >> /backups/$log
echo "============================================================================================================" >> /backups/$log
echo " " >> /backups/$log
echo " " >> /backups/$log
echo "--------------------------------- Lista de arquivos no backup ----------------------------------------------" >> /backups/$log
find $diretorios >> /backups/$log
tar -zcf /backups/$arqui $diretorios
h2=`date | cut " " -f4`
echo "-------------------------------- Backup diario terminou as h2$ ---------------------------------------------" >> /backups/$log
ftp -ivn $ftp_host << fim
                   user $user_ftp $senha
                   bin
                   lcd /backps
                   cd $d_host
                   put $arqui
                   lcd /backups
                   cd $d_host
                   put $log
                   bye
                   EOF
fim
rm /backups/*
```

 
Não esqueção de criar o diretorio backups:


```
mkdir /backups
```

 
è isso ai galera aporoveitem e ce não entederem derem um hello  :Idea: 
Galera... não posso esconder.... tem pedaços do script via fita dat do nosso colega ANIMAL... melhor a ideologia veio do artigoi dele ( VALEU ANIMAL!!!)

----------


## lidzky

Opa, tá legal seu script, mas tenho uma sugestão pra simplificar:



```
ds=`date +%a`  # dia da semana abreviado. ex.: Ter
d=`date +%b`   # mes abreviado. ex.: Jan
m=`date +%d`   # dia do mes
a=`date +%Y`   # ano
h=`date +%T`   # hora
 
# e um pouco mais pra baixo:
h2=`date +%T`
```

 
referência: man date ;-)

----------


## terra_jr

Não sei qual é o tamanho total de seu backup, mas lembre-se de sempre procurar diminuir seu backup dividindo em partes.

Ficará mais fácil para manipular futuramente e também evitará muitos problemas e transtornos futuros.

Valeu.

Exemplo:
Tinha um cara que trampava comigo que ele fazia backup de 8GB em um arquivo só, sendo que eram coisas diferentes (generos) e pastas diferentes, ai sugeri que fizesse esse backup em 4 partes de 2GB. 
Nunca mais deu problemas....

----------


## xstefanox

> Opa, tá legal seu script, mas tenho uma sugestão pra simplificar:
> 
> 
> 
> ```
> ds=`date +%a`  # dia da semana abreviado. ex.: Ter
> d=`date +%b`   # mes abreviado. ex.: Jan
> m=`date +%d`   # dia do mes
> a=`date +%Y`   # ano
> ...


Ou então:



```
DATE=`/bin/date "+%Y%m%d-%H%M%S"`
```

----------


## netosdr

Grande colaboração do colega spectrum, vou utilizar em meus servidores.

Um abraço!

----------


## viny_carvalho

Outra coisa, dava pra compactar os diretórios antes de mandar né. Tipo:



```
BACKUP="backup.tar.bz2"
 
tar cjfv $BACKUP $diretorios >> /backup/$log
```

----------

