Montando um host FTP em um diretório local
Dica publicada em Linux / FTP
Montando um host FTP em um diretório local
Em um de meus projetos de backup utilizando o Bacula, surgiu a necessidade de enviar os arquivos para um servidor remoto. Para tanto a forma mais fácil que encontrei foi o ftp, mas não encontrei nenhum documento onde fosse possível a gerência de espaço e reciclagem dos dados pelo Bacula e um servidor ftp.
Pesquisando no Google encontrei o curlftpfs, com ele é possível montar um servidor ftp em um diretório local, onde é possível a interação com o ftp como se estivéssemos trabalhando com um diretório local qualquer. Neste caso pude configurar o Bacula para acessar o diretório e efetuar toda a gerência do conteúdo como se estivesse gerenciando um diretório qualquer.
Ambiente:
Instalando os pacotes necessários:
# aptitude install curlftpfs
Ponto de montagem, onde este será um diretório a sua escolha:
# mkdir /mnt/ftp_backup
Montando o servidor:
# curlftpfs -o allow_other ftp://seu_usuario:sua_senha@ftp.seu_ftp.com.br /mnt/ftp_backup/
# cd /mnt/ftp_backup
# mkdir teste
Desmontando:
# umount /mnt/ftp_backup
Montando automaticamente:
# echo "curlftpfs#seu_usuario:sua_senha@ftp.seu_ftp.com.br /mnt/ftp_backup fuse rw,allow_other,uid=0,gid=0 0 0" >> /etc/fstab
Onde:
Após a edição do arquivo /etc/fstab, edite o arquivo /etc/rc.local e adicione o comando "mount /mnt/ftp_backup" (sem aspas) antes da linha exit 0.
Para esconder o usuário e a senha, crie o arquivo /root/.netrc e adicione as linhas a seguir:
Adicione o direito de execução ao script:
# chmod +x /root/.netrc
Altere o fstab:
Pronto!
Pesquisando no Google encontrei o curlftpfs, com ele é possível montar um servidor ftp em um diretório local, onde é possível a interação com o ftp como se estivéssemos trabalhando com um diretório local qualquer. Neste caso pude configurar o Bacula para acessar o diretório e efetuar toda a gerência do conteúdo como se estivesse gerenciando um diretório qualquer.
Ambiente:
- Sistema operacional: Debian Lenny 5
- Kernel: 2.6.26-2-686
Instalando os pacotes necessários:
# aptitude install curlftpfs
Ponto de montagem, onde este será um diretório a sua escolha:
# mkdir /mnt/ftp_backup
Montando o servidor:
# curlftpfs -o allow_other ftp://seu_usuario:sua_senha@ftp.seu_ftp.com.br /mnt/ftp_backup/
- seu_usuário -> substituir pelo seu usuário
- sua_senha -> substituir pela sua senha
- seu_ftp -> substituir pelo endereço de seu servidor ftp
Testando
Basta acessar o diretório e criar as pastas ou copiar os arquivos. Para garantir que tudo ocorreu corretamente, basta utilizar um cliente ftp de sua preferência e localizar os arquivos copiados ou as pastas criadas:# cd /mnt/ftp_backup
# mkdir teste
Desmontando:
# umount /mnt/ftp_backup
Montando automaticamente:
# echo "curlftpfs#seu_usuario:sua_senha@ftp.seu_ftp.com.br /mnt/ftp_backup fuse rw,allow_other,uid=0,gid=0 0 0" >> /etc/fstab
Onde:
- seu_usuário -> substituir pelo seu usuário
- sua_senha -> substituir pela sua senha
- seu_ftp -> substituir pelo endereço de seu servidor ftp
Após a edição do arquivo /etc/fstab, edite o arquivo /etc/rc.local e adicione o comando "mount /mnt/ftp_backup" (sem aspas) antes da linha exit 0.
Para esconder o usuário e a senha, crie o arquivo /root/.netrc e adicione as linhas a seguir:
machine ftp.seu_ftp.com.br
login seu_usuário
password sua_senha
login seu_usuário
password sua_senha
Adicione o direito de execução ao script:
# chmod +x /root/.netrc
Altere o fstab:
curlftpfs#ftp.seu_ftp.com.br /mnt/ftp_backup fuse rw,allow_other,uid=0,gid=0 0 0
Pronto!
E quando tento assim
curlftpfs -o allow_other ftp://bruno@bruno.com.br:minha_senha@ftp.adrive.com /ftp/ me dá o seguinte erro:
Error connecting to ftp: Couldn't resolve host 'bruno.com.br:minha_senha@ftp.adrive.com'
Você saberia me dizer como faço para isolar o @ de meu usuario?
Já entrei em contato com o suporte do aDrive e me disseram que não poderiam tirar o @
Desde já obrigado