Backup de servidores Web FTP

1

Gostaria de fazer o backup do conteúdo dos servidores da Web com o menor esforço possível. Atualmente, eu tenho um script PHP que me dá uma lista das imagens carregadas e então uso o wget para baixá-las todas via HTTP.

Os dados do MySQL são buscados com um script PHP que despeja o banco de dados que eu pego com wget sobre HTTP.

Existe alguma maneira de baixar tudo do FTP? Para que eu possa espelhar completamente o servidor da Web e rastrear as alterações?

Infelizmente, só posso usar FTP e PHP simples no servidor, não consigo usar scripts de shell ou mysqldump ou tar no servidor.

    
por Martin Ueding 08.06.2011 / 21:05

3 respostas

0

Para resolver o problema que só tenho FTP, finalmente consegui uma solução simples: curlftpfs e rsync.

# Create a mountpoint for the FTP.
tempdir=$(mktemp -d)
chgrp fuse "$tempdir"
chmod 700 "$tempdir"

# Mount the FTP
curlftpfs "$server" "$tempdir"

# Copy all the new data into the current directory
rsync -avE --delete "$tempdir/$subfolder" "$current"

# Release the mounted FTP
fusermount -u "$tempdir"
rmdir "$tempdir"
    
por 20.08.2011 / 22:57
2

Eu acho que você precisa de várias peças de informação para reconstruir um servidor web. Os arquivos html / jpg / script que são o site, os dados do banco de dados e a configuração do serviço da web. Você pode adicionar a esse SSL certs, configurações de rede e informações de usuário se o seu site depende deles.

Quando você souber o que precisa para reconstruí-lo, como obteremos esses dados? A maneira mais fácil é geralmente da caixa que contém os dados. Execute um script para gerar os dados, o despejo do banco de dados, etc, colete tudo em um arquivo tar e faça o ftp off the box.

Como alternativa, você pode executar o script como uma tarefa cron no servidor da Web, mas receba sua caixa externa e obtenha o arquivo tar.

    
por 08.06.2011 / 21:54
2

Is there some way to download everything from FTP?

Sim, mas você precisaria (ou pedir a alguém para) instalar um servidor FTP e configurá-lo para você. Eu sugiro contra isso, no entanto. O FTP envia senhas como texto não criptografado e, até onde eu sei, não há um wrapper SSL comum (como STARTTLS ) para isso. O FTP, portanto, é uma falha de segurança, a menos que você planeje envolver uma VPN segura. Eu sugiro usar o sftp , que é essencialmente uma conexão ssh que responde aos comandos do tipo ftp.

Este é um servidor dinâmico? Tem PHP ou CGI ou qualquer outro código do lado do servidor? Em caso afirmativo, as solicitações HTTP só podem mostrar HTML quando o código é executado, não a origem subjacente. Isso é não como backup. Você deve fazer o backup da fonte com o sftp.

Quanto ao MySQL, mais uma vez, você não está fazendo um backup verdadeiro. Você deve se familiarizar com mysqldump ou encontrar alguém para executá-lo para você.

No que diz respeito ao que fazer com esses arquivos, fazer backup no git requer alguns scripts de sua parte. Normalmente, o que as pessoas fazem é fazer o backup de todos os arquivos (incluindo o db dump), e manter o valor de n dias. Se você fizer backup para o controle de origem, precisará fazer backup do repositório e se preocupar com a corrupção. Geralmente mais limpo para manter os arquivos por perto. Seu código-fonte deve estar no controle de origem e deve corresponder ao que está no site.

Eu, pessoalmente, me sentiria mais confortável com 'Se eu descompactar este arquivo, é o meu site', em vez de 'se o meu repositório git não for gorked, posso encontrar a tag para este dia e é o meu website'. Em uma situação de emergência (e todas as restaurações de backup são), a complexidade não é o que você deseja.

    
por 08.06.2011 / 22:36

Tags