Fórum cPanel: FTP via shell - backup - Fórum cPanel

Ir para


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

FTP via shell - backup

#1 Membro offline   Filipe.a 

  • Ele mora no fórum!
  • PipPipPipPipPipPipPip
  • Grupo: Membros
  • Posts: 597
  • Cadastrado: 12-abril 05
  • Location:Pomerode - SC

Posted 02 julho 2007 - 10:27

Tive que enviar uns aquivos via ftp para outro servidor, ai procurei no google e achei esse script rápido e prático. Testado e funciona.

QUOTE
#!/bin/bash

# Faz um TAR com os diretórios mais importantes do Linux

tar cvf /tmp/backup.tar /home /var/spool/mail /var/spool/cron /etc /usr/local

# Compacta o TAR

gzip /tmp/backup.tar

# Faz o ftp para ftp-host.domain.etc

ftp -in <<EOF
open ftp2.tpa.com.br
user username senha
bin
hash
prompt
cd /ftp/diretório do ftp
lcd /home/diretóro a ser enviado
put backup.tar
bye


Só uma dica, se precisar enviar mais arquivos de uma vez que estao na mesma pasta é so colcoar mais put ou até entrar em outra pasta.
0

#2 Membro offline   MRiscado 

  • Super Membro
  • PipPipPipPipPip
  • Grupo: Membros
  • Posts: 178
  • Cadastrado: 07-outubro 06

Posted 08 julho 2007 - 12:51

QUOTE
Tive que enviar uns aquivos via ftp para outro servidor, ai procurei no google e achei esse script rápido e prático. Testado e funciona.


Olá Filipe.a

Funcionou pra vc? Não é a primeira vez que eu tento um sript parecido com esse e dá erro. Tenho resolvido essas minhas cópias com SCP por shell (scp -P 22 /backup/cpbackup/daily/ root@XXX.XX.XX.X37:/home/), mas queria acertar um script para rodar no cron a cópia de alguns backups para fora.

Como os semelhantes ao da tua dica que tentei tb não certo, é claro que o defeito está aqui... heheheh

Onde estou errando? Poderia me respoder umas perguntas?

Pois então lá vai...

1) Primeiro... Como devo salvar o arquivo ? Várias fontes falam em #!/bin/bash e outras em #!/bin/sh ... Executo ele como ?

Salvei o script como copia.sh ... é isso mesmo? Tentei roda-lo como .copia.sh ou ./copia.sh e ele não rodou. Dá -bash: .copia.sh: command not found tentando .copia.sh e o erro : bad interpreter: No such file or directory, quando tentando ./copia.sh

Só quando eu usei como perl ele rodou. Digitei perl copia.sh. Aí o erro mudou... olha o erro que eu obtive:

QUOTE
: command not found
: Name or service not known
Not connected.
?Invalid command
?Invalid command
?Invalid command
Not connected.
: No such file or directoryra.tar.gz
Not connected.
?Invalid command
?Invalid command


Mas copiar que é bom... nada!

2) Segundo... Andei lendo também sobre instalar clientes FTP no servidor. Teve que instalar algum outro script ou aplicação para esse funcionar ?

Essa minha saída pra cópias pelo SCP tem duas desvantagens:
a ) prompt para senha que impede usar em cron (não entendi direito o tuto que ensina a autenticar usando a chave do outro servidor).
b ) quando rodo o comando como se um arquivo, tipo perl copia.sh ele roda e copia sim, só que cria uma pasta "/" a mais no path que impede operar/mover corretamente o arquivo fruto da cópia. Acaba que só removendo o diretório acima dele na base de rm -rf.

Agradeço antecipadamente se o amigo puder dar dicas e respostas.

Abraços,
0

#3 Membro offline   Filipe.a 

  • Ele mora no fórum!
  • PipPipPipPipPipPipPip
  • Grupo: Membros
  • Posts: 597
  • Cadastrado: 12-abril 05
  • Location:Pomerode - SC

Posted 08 julho 2007 - 01:51

Na verdade eu nao usei a parte que compacta o arquiv. Usei só a que conecta no ftp para enviar alguns arquivos. Fiz da seguinte forma salvei num arquivo sem extenção apenas ftp dei permisão 777 para ele e executei ( ./ftp ). Como perl nao vai funciona. sh e perl sao coisas diferentes.

Sim precisa de um cliente FTP. Mas acredito que toda distro tenha pre instalado um. Eu usei no debian, nao precisei instala nada.

Tenta o seguinte, envia um arquivo qualquer sem compactar para teste. Grava ele num arquivo da permisao 777 e executa.
0

#4 Membro offline   flycode 

  • Administrador Linux
  • Grupo: Administradores
  • Posts: 1264
  • Cadastrado: 10-novembro 04
  • Gender:Male

Posted 08 julho 2007 - 05:36

Eu uso esse script aqui abaixo tambem, testado e funcional, so colocar na cron:



#!/bin/bash
#
##
###
### Author: Steven Leggett AKA Ramprage
###
###
###
##
#
# FTP Backup script created by Ramprage of WebhostGear.com
# Copies all files from Cpanels daily backups to remote FTP server
#
# WARNING:
# This script is the intellectual property of Steven Leggett and may not be
# copied, redistributed or sold without explicit written permission from the author.
# We provide NO WARRANTY for this script. Use at your own risk


version=1.0


##### INSTALL INSTRUCTIONS: STEP 1 #####
##### START ENTER YOUR INFO HERE #####

serverip=192.168.1.1
# Your remote servers IP address
# EG: serverip=192.168.1.1

serveruser=FTPUSERNAME

# The FTP login for the remote server
# EG: serveruser=bob

serverpass=FTPPASSWORD

# The FTP password for the remote server
# EG: serverpass=mypassword

localdir=/backup/cpbackup/daily

# WHERE LOCAL FILES ARE TO BACKUP
# NO TRAILING SLASH
# EG: localdir=/backup/cpbackup/daily

remotedir=REMOTEDIR

# FTP directory where you want to save files to
# This directory must exist on the FTP server!
# NO TRAILING SLASH
# EG: remotedir=/serverdirectory



##### END YOUR INFO HERE #####
##### INSTALL INSTRUCTIONS: STEP 2 #####
# CHMOD the script to 755: # chmod 755 ftpbackup.sh
# Add the script to a scheduled cron job to run as often as you like
# In SSH do crontab -e, then paste in the following
# 0 6 * * 0,1,3,5 /home/admin/ftpbackup.sh
# This does a FTP backup every second day of the week, lookup cronjobs for more info on setting dates and times.

##### INSTALL COMPLETE #####
# DO NOT MODIFY ANYTHING BELOW #
bakdate=`date`
host=`hostname`
cd $localdir
echo "Starting FTP Backup on " $host $bakdate
#FTP the file to the backup directory on the backup server

/usr/bin/ftp -in <<EOF
open $serverip
user $serveruser $serverpass
cd $remotedir
bin
verbose
mput *.*
stat
bye

echo "Ftp backup complete on " $bakdate
0

#5 Membro offline   Filipe.a 

  • Ele mora no fórum!
  • PipPipPipPipPipPipPip
  • Grupo: Membros
  • Posts: 597
  • Cadastrado: 12-abril 05
  • Location:Pomerode - SC

Posted 08 julho 2007 - 07:55

Na verdade é a mesma coisa soque com mais frufru.
0

#6 Membro offline   MRiscado 

  • Super Membro
  • PipPipPipPipPip
  • Grupo: Membros
  • Posts: 178
  • Cadastrado: 07-outubro 06

Posted 08 julho 2007 - 10:13

Caros Filipe.a e Flycode,

Antes de mais nada, quero agradecer-lhes a generosa iniciativa de compartilharem os scrips que utilizam e de terem respondido com ajuda.

Fiz diversos teste aqui e descobri que só obtenho sucesso quando executando "linha a linha" de comando qualquer um dos exemplos que ambos postaram.

Para facilitar o entendimento de vocês, usei o seguinte exemplo, que pareceu mais simples de entender onde estaria o problema:
CODE
ftp -in
open XXX.XX.XXX.225
user meu_user minha_senha
bin
hash
prompt
cd /public_html
lcd /bkpsrv/daily
put arquivo.tar.gz
bye


Fazendo (digitando) linha a linha por shell, vai bacana... e o arquivo é copiado tranquilo para o outro servidor:
CODE
root@servidor [/]# ftp -in
ftp> open XXX.XX.XXX.225
Connected to XXX.XX.XXX.225 (XXX.XX.XXX.225).
220---------- Welcome to Pure-FTPd [TLS] ----------
220-You are user number 1 of 50 allowed.
220-Local time is now 21:03. Server port: 21.
220 You will be disconnected after 15 minutes of inactivity.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> user meu_user minha_senha
331 User meu_user OK. Password required
230-User hostbraz has group access to:  meu_user
230 OK. Current restricted directory is /
ftp> bin
200 TYPE is now 8-bit binary
ftp> hash
Hash mark printing on (1024 bytes/hash mark).
ftp> prompt
Interactive mode on.
ftp> cd /public_html
250 OK. Current directory is /public_html
ftp> lcd /bkpsrv/daily
Local directory now /bkpsrv/daily
ftp> put arquivo.tar.gz
local: arquivo.tar.gz remote: arquivo.tar.gz
227 Entering Passive Mode (XXX,XX,XXX,225,12,6)
150 Accepted data connection
#################
226-File successfully transferred
226 0.033 seconds (measured here), 0.51 Mbytes per second
17772 bytes sent in 0.0203 secs (8.6e+02 Kbytes/sec)
ftp> bye
221-Goodbye. You uploaded 18 and downloaded 0 kbytes.
221 Logout.
root@servidor [/]#


Mas se eu coloco como um arquivo (ex.: copia ou copia.sh) e tento executar, dá erros:

rodei como ./copia (aqui eu tirei o #!/bin/bash do arquivo) e retornou assim:
CODE
root@servidor [/]# cd /teste
root@servidor [/teste]# ./copia
: unknown option
./copia: line 2: open: command not found
./copia: line 3: user: command not found
: command not foundn
: command not foundsh
: command not foundompt
: No such file or directoryc_html
./copia: line 8: lcd: command not found
./copia: line 9: put: command not found
./copia: line 10: bye: command not found
root@servidor [/teste]#


rodei como ./copia , com #!/bin/bash no arquivo, e retornou assim:
CODE
: bad interpreter: No such file or directory


rodei como ./copia.sh , com #!/bin/bash no arquivo, e retornou assim:
CODE
: bad interpreter: No such file or directory


Sabem o que pode ser?
Como o arquivo não rodou, nem coloquei em cron.
Abraços e obrigado
0

#7 Membro offline   flycode 

  • Administrador Linux
  • Grupo: Administradores
  • Posts: 1264
  • Cadastrado: 10-novembro 04
  • Gender:Male

Posted 09 julho 2007 - 09:33

Sim Filipe.a, o objetivo é o mesmo do seu script, tanto é que tenho mais dois scripts de backup via ftp aqui, com a mesma função. Estranho MRiscado, não ir com o #!/bin/bash.
0

#8 Membro offline   MRiscado 

  • Super Membro
  • PipPipPipPipPip
  • Grupo: Membros
  • Posts: 178
  • Cadastrado: 07-outubro 06

Posted 09 julho 2007 - 12:31

QUOTE(Flycode @ Jul 9 2007, 09:33 AM)
Estranho MRiscado, não ir com o #!/bin/bash.
Ver post


Pois é Flycode. Estranho mesmo, não é? Se descobrir algo ou esbarrar em solução por aí, lembra de dar uma dica? Enquanto isso, continuarei procurando respostas. Espero viver o suficiente para encontrar todas as respostas que já se acumulam até hoje. Qualquer dia vou abrir um tópico com a finalidade de postarmos "as perguntas que ficaram sem respostas" para solucionarmos os casos pendentes anos depois (tipo o linha direta na TV) hehehe

Grande abraço,
0

#9 Membro offline   flycode 

  • Administrador Linux
  • Grupo: Administradores
  • Posts: 1264
  • Cadastrado: 10-novembro 04
  • Gender:Male

Posted 09 julho 2007 - 06:07

hehehe, boa ideia. Blz, se souber de algo posto aqui.
0

#10 Visitante_bellafronte_*

  • Grupo: Visitantes

Posted 11 agosto 2008 - 04:08

Mas e para copiar uma pasta, e não um arquivo .tar? Como faz?
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 membro(s), 1 visitante(s), 0 membro(s) anônimo(s)