Script FTP do Ubuntu para fazer backup e upload no meu servidor FTP

2

Hie tudo Eu estou tentando fazer backup do meu diretório de aplicativos, backup de banco de dados e, em seguida, enviá-lo para o meu servidor ftp no hetzner usando o script a seguir e recebo alguns erros

detalhes do meu servidor: ubuntu12-04 (em hetzner) banco de dados: postgresql8.4 meu servidor ftp: hetzner Tentando fazer backup no servidor ubuntu12.04 e copiando no ftp meu servidor

bakupscript.sh

site=ftp://u***.your-backup.de
username=u***
passwd=*******************
backupdir=/opt/openbravo-erp
filenameob="openbravo-erp.tar.gz"

echo "Creating a ob backup file $filenameob of $backupdir."

# Make a tar gzipped backup file
tar -cvzf /home/hetznerftp/"$filenameob" "$backupdir"

echo "creating a db backup file $filenamedb of ob database."
export PGPASSWORD="*my db password*"
backup_dir="/home/manideep/hetzner/"
#String to append to the name of the backup files
pg_dump -h localhost -U tad openbravo -Fc $i > $backup_dir$i\rajedb.backup

#login into ftp server
ftp -in <<EOF
open $ftp_site
user $username $passwd
bin
put /home/manideep/hetzner$filenameob 
put /home/manideep/hetznerftp/pgdump.backup
close 
bye

Quando eu tento executar esse script por meio do comando ./backupscript.sh

recebo o seguinte erro

Creating a backup file openbravo-erp.tar.gz of /opt/openbravo-erp.
creating a db backup file  of ob database.
./hetznerbkup.sh: line 28: warning: here-document at line 21 delimited by end-of-file (wanted 'EOF')
(to) usage: open host-name [port]
Not connected.
Not connected.
Not connected.
Not connected.

Como faço para enviar esses arquivos pelo script?

e isso substituirá os arquivos existentes enquanto eu uso o comando put in ftp in ftp server se não como eu faço isso? obrigado

    
por Mani Deep 24.11.2013 / 10:06

2 respostas

3

Por favor, evite armazenar e transmitir credenciais / senhas em texto simples.

Em vez disso, configure o SSH com autorização de chave pública somente e use scp ou rsync para transferência de arquivos. Além disso, deixe o usuário postgres fazer o backup por meio de um cronjob (que é a resposta para a sua última pergunta do site: , veja Wiki Ubuntuusers.de no cron .

Exemplo para um crontab postgres:

# Shell variable for cron
SHELL=/bin/bash

# PATH variable for cron
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# Backup some database from sunday to friday, compress with xz, hash with md5, delete obsolete backups after 40 days
0 3 * * SUN-FRI dump="some-database-$(date +\%Y\%m\%d-\%H\%M)-daily.sql"; cd /var/backups/postgres; pg_dump -Fc -Z0 some-database | xz -6 > ${dump}.xz; md5deep -kl ${dump}.xz > ${dump}.xz.md5; find -name "some-database*daily.sql.xz*" -mtime +40 -delete

Fazer backup de arquivos com tar como seu ERP Openbravo ou www-data deve ser tão fácil quanto o acima.

Edit: Eu recomendo tentar zstd ao invés de xz como um compressor, ele tem cerca de 20 níveis e é quase tão bom quanto o maior nível xz em seu nível mais alto e ainda mais rápido.

    
por LiveWireBT 25.11.2013 / 03:58
1

Você precisará colocar um EOF no final do seu script.

ftp -in <<EOF
open $ftp_site
user $username $passwd
bin
put /home/manideep/hetzner$filenameob 
put /home/manideep/hetznerftp/pgdump.backup
close 
bye
EOF
    
por xhuang 08.07.2015 / 17:52