Sistema de arquivos distribuídos usando Gmail

cvs

Nesse artigo vamos abordar um nova tecnologia de sistema de arquivos distribuídos usando o Gmail, famoso serviço de e-mail do Google com capacidade de 1GB. Abordaremos a forma de instalar e configurar para se usar o e-mail como um sistema de arquivos para backup ou qualquer outra coisa que deseje.

[ Hits: 42.344 ]

Por: Thiago Alves em 05/09/2004 | Blog: http://www.seeufosseopresidente.com.br


Baixando, instalando e configurando



Faca o download dos seguintes pacotes:

http://mesh.dl.sourceforge.net/sourceforge/avf/fuse-1.3.tar.gz
http://richard.jones.name/google-hacks/gmail-filesystem/fuse-python.tar.gz
http://richard.jones.name/google-hacks/gmail-filesystem/gmailfs.tar.gz
http://unc.dl.sourceforge.net/sourceforge/libgmail/libgmail-0.0.8.tgz

Vamos começar a instalação:

Fuse:

$ tar zxvf fuse-1.3.tar.gz
$ cd fuse-1.3
$ ./configure && make
$ su
# make install


Fuse-Python:

$ tar zxvf fuse-python.tar.gz
$ cd fuse-python
$ python setup.py build
$ su
# python setup.py install


GmailFS:

$ tar zxvf gmailfs.tar.gz
$ cd gmailfs
$ su
# cp gmailfs /bin ; cp mount.gmailfs /sbin


LibGmail:

$ tar zxvf libgmail-0.0.8.tgz
$ cd libgmail-0.0.8
$ su


Aqui você vai precisar achar onde esta o Python, use:

# find / -iname python*

Após achar onde ele esta, faca o seguinte:

# cp libgmail.py constants.py /usr/lib/python2.3/site-packages/

Levando em conta que uso Slackware, achei o Python nesse local, se você usa outra distribuição é provável que seja encontrado o Python em outro local.

Feito isso sem nenhum erro, já está tudo configurado, Vamos montar o sistema de arquivos agora:

# mkdir /mnt/gmail
# mount -t gmailfs /bin/gmailfs.py /mnt/gmail -o username=usuário,password=senha_do_email,fsname=ZdkfE


Deixa eu explicar essa linha de montagem:
  • No username é preciso usar o nome do usuário do e-mail, por exemplo, se for o e-mail janjan@gmail.com, o usuário fica como janjao;
  • Em password você usa a mesma usada pra se entrar no e-mail.
  • Em fsname pode ser usado qualquer coisa, qualquer coisa diferente, pois se alguém souber o fsname pode corromper seus arquivos mandando um e-mail com alguns caracteres estranhos e detonar com os arquivos.

Depois disso tudo estará pronto, como fiz no meu, usei dois e-mails para fazer teste, usando um "df -Th" apareceu o seguinte resultado:

$ df -Th
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/hda1      xfs     11G  4.6G  5.8G  45% /
/dev/hda2      xfs     11G  8.3G  2.0G  81% /home
/dev/hda5      xfs     17G   16G  502M  97% /files
gmailfs       fuse   1000M     0 1000M   0% /mnt/fs1
gmailfs       fuse   1000M     0 1000M   0% /mnt/fs2
As duas últimas linhas são os e-mails montados. É um pouco lento por que tudo que é copiado e/ou criado é mandado pro seu e-mail, feito o upload, dependendo muito de sua conexão.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Baixando, instalando e configurando
   3. Conclusão
Outros artigos deste autor

Ubuntu + Zoneminder = Solução Livre para CFTV

Snort - The Open Source Network Intrusion Detection System

Compilando Apache 2 com PHP, MySQL, mod_perl e mod_ssl

CentOS + RAID1 via software

ProFTPD + ClamAV - FTP livre de vírus

Leitura recomendada

Solucionando problemas no sistema de arquivos

Reparticionando ReiserFS via linha de comando

Esquemas de particionamento e sistemas de arquivos

fstab - Sua função e parâmetros

Criando dispositivos RAID via software no Linux

  
Comentários
[1] Comentário enviado por lowpis em 05/09/2004 - 17:43h

pro primeiro curioso q nao tiver gmail ainda, la vai um convite:
https://gmail.google.com/gmail/a-5e1853eeab-8d1f15f39e-750d923e23

[2] Comentário enviado por removido em 05/09/2004 - 18:13h

Eai galera .. vai uma dica de como conseguir sua conta gmail ;)

no começo poderá parecer um pouco estranho mas se você fazer exatamente como vou falar abaixo, perdendo ai.. 1 hora vc receberá comparando a mim uns 15 convites para o gmail... heheh ou então se fazer uma meia hora a metade...

1)Introdução?

Entrem em http://www.feedster.com e procurem por: "gmail","gmail invite" ou ainda "gmail accont". no meu caso eu fui mais no "gmail invite".

2) Como ter minha conta!
O esquema é simples, esse www.fedster.com, é um buscador que procura em blogs, pelo que eu entendi. e os Gordos dos Americanos(NAO CURTO ESSA RAÇA heheh) , mais enfim... você encontarra algo do tipo "Os 5 primeiros que deixar uma mensagem em meu blog receberá um invite!" pronto.. é só vc deixar algo lá em inglÊs... tipo:

<------------
Please I use an excrement of account of the hotmail of 2 megas, it sends me an invitation for the gmail.
--------------->

Eai é so aguardar.. coloque a mesmas frases em varios blogs hehehe

Que naão manja de inglês:
http://www.google.com.br/language_tools?hl=pt-BR


PS: Os três primeiros que me elogiarem pela dica ganharão 1 contive ao Gmail! heheh

Guilherme L. Stolfo
www.guinet.hpg.com.br
guinet(NOTSPAM)gmail.com





[3] Comentário enviado por cvs em 05/09/2004 - 18:15h

Quem quiser e-mail ae, manda pra mim nome, sobrenome e e-mail pra mandar o convite, tenho alguns sobrando :-)

Tem os problemas, claro, que tem qualquer sistema novo, alguns bugs... então nem venham me xingar senão funcionar hein... hehehe :-P

[4] Comentário enviado por mbmaciel em 05/09/2004 - 18:24h

Funcionou legal ! Muito maneira a dica!
Agora tenho mais uma partição de 1gb no meu hd :-)

Também tenho uns convites, quem quiser testar a dica, pode me pedir um convite por email.

[5] Comentário enviado por bramax em 06/09/2004 - 08:22h

Alguém aí sabe como mndar uma mensagem para toda a minha lista de contatos, sem ter que ficar digitando os nomes um a um?

[6] Comentário enviado por removido em 06/09/2004 - 11:56h

Gmail eh mtooo bom !! =]

[7] Comentário enviado por engos em 06/09/2004 - 13:44h

Uma das coisas que acho mais dificil no VOL é ler um artigo nota 10 de verdade, não apenas os que são por gentileza dos outros.

Esse é um dos poucos artigos que achei que não ficou devendo nada, simplesmente perfeito.

Parabéns!

[8] Comentário enviado por brunopiaui em 06/09/2004 - 14:12h

Guilherme,

muito boa a sua dica para conseguir a conta do Gmail.
Consegui a minha em menos de 1 hora.

Valeu!!!!!!!

Bruno Piaui

[9] Comentário enviado por removido em 06/09/2004 - 16:42h

OPa!, é nois malandro... vamo arrebentar esse gmail.. como aconteceu com o orkut!.


Guilherme L. Stolfo

[10] Comentário enviado por cvs em 06/09/2004 - 17:11h

Se for pro gmail ficar igual o orkut é melhor fecharem logo antes de começar a dar dor de cabeça... Por isso não gostam de brasileiros, brasileiro acha que tudo é bagunça... tsc tsc tsc.

[11] Comentário enviado por agk em 06/09/2004 - 19:23h

Parabéns, nota dez esse artigo, quero um e-mail desses também, se alguém puder me mandar um gmail invite, eheheh.
Vlw galera.

[12] Comentário enviado por icysoul em 07/09/2004 - 03:57h

Legal mesmo o artigo 10!
Outra dica valiosa pra quem quer um convite pro gmail, e so acessar o forum http://www.gmailforums.com/ e postar la em 'Accounts and Invitations', pra convites pro gmail e facim, quase sempre tu arruma um asim meio que de imediato! rsrs lokura...

Eu ainda nao consegui foi convite pro Orkut... :|
Se alguem puder de repente me mandar um ae... do um bejo na testa!!! hihihihi

[13] Comentário enviado por removido em 07/09/2004 - 12:12h

Outra dica boa...

http://freegmailinvites.com

;)

Guilherme L. Stolfo

[14] Comentário enviado por ustrucx em 08/09/2004 - 03:03h

Alguem conseguio compilar o fuse-1.3 no Conectiva 10? aqui o ./configure da o erro:
checking kernel source directory... /usr/src/linux-2.6.5-63255U10_1cl/
checking kernel source version... Not found
configure: error:
*** Cannot determine the version of the linux kernel source. Please
*** configure the kernel before running this script

[15] Comentário enviado por cvs em 08/09/2004 - 08:31h

tenta baixar o source do kernel.org e compilar ele e não usar essas versoes patcheadas do kernel... talvez assim funcione normalmente.

[16] Comentário enviado por agk em 08/09/2004 - 09:09h

Galera dá o seguinte erro quando vou instalar o fuse-python está dando o seguinte erro:
Traceback (most recent call last):
File "setup.py", line 7, in ?
from distutils.core import setup, Extension
ImportError: No module named distutils.core

Estou utilizando Debian 3.0 sarge com kernel 2.6.7.
Alguém faz idéia do que seja?

[17] Comentário enviado por agk em 08/09/2004 - 09:18h

Ops, foi mal pessoal, já resolvi o problema, estava faltando o pacote python2.3-dev
#apt-get install python2.3-dev

[18] Comentário enviado por agk em 08/09/2004 - 09:43h

olha eu denovo aqui, depois de tudo instalado sem erros quando vou montar o sistema de arquivos me retorna isso:
File "/bin/gmailfs.py", line 818, in ?
server = Gmailfs()
File "/bin/gmailfs.py", line 402, in __init__
self.ga.login()
File "/usr/lib/python2.3/site-packages/libgmail.py", line 255, in login
pageData = self._retrievePage(req)
File "/usr/lib/python2.3/site-packages/libgmail.py", line 280, in _retrievePage
resp = urllib2.urlopen(req)
File "/usr/lib/python2.3/urllib2.py", line 129, in urlopen
return _opener.open(url, data)
File "/usr/lib/python2.3/urllib2.py", line 326, in open
'_open', req)
File "/usr/lib/python2.3/urllib2.py", line 306, in _call_chain
result = func(*args)
File "/usr/lib/python2.3/urllib2.py", line 908, in https_open
return self.do_open(httplib.HTTPS, req)
File "/usr/lib/python2.3/urllib2.py", line 886, in do_open
raise URLError(err)
urllib2.URLError: <urlopen error (113, 'No route to host')>

Eu uso proxy, tem alguma coisa haver?

[19] Comentário enviado por Nick em 08/09/2004 - 11:34h

Dois pacotes ai não estão mais no souceforge: o fuse e o libgmail. onde posso encontrar?

[20] Comentário enviado por agk em 08/09/2004 - 12:00h

Eu procurei eles no google e achei com bastante facilidade.

Bem o link do fuse parece que já voltou a funcionar, o do libgmail vc pode pegar aqui:
http://sourceforge.net/project/showfiles.php?group_id=113492

[21] Comentário enviado por bluedog em 08/09/2004 - 14:07h

o pacote libgmail eh pra ser descompactdado e entao copiar os arkivos para akelas pastas como tem no artigo ou eu posso instalar a lib direto ja q uso o Slackware e o pacote esta no formato tgz?

[22] Comentário enviado por cvs em 08/09/2004 - 14:45h

cara, eh pacote tgz mas num é package slackware não... tem que fazer do jeito que tá no tutorial.

[23] Comentário enviado por coronel em 08/09/2004 - 19:26h

cara, massa D+ a dica.. estou doido pra testar no meu linux
mas nao tenho uma conta..
se puder me convidar!! muito obrigado!

abraço!

[24] Comentário enviado por bluedog em 09/09/2004 - 01:23h

caras eu fiz tudo como ta escrito mas n hora de montar apareceu a seguinte mensagem

root@Shidoshi:/home/bluedog/Desktop/Appz/libgmail-0.0.8# FATAL: Module fuse not found.
fusermount: unable to open fuse device /proc/fs/fuse/dev: No such file or directory

se alguem souber como resolver por favor me avisem

[25] Comentário enviado por leandrosampaio em 10/09/2004 - 12:29h

Quando vou fazer o primiero passo do toturial dá esse erro..

checking for C compiler default output file name... configure: error: C compiler cannot create executables

[26] Comentário enviado por leandrosampaio em 10/09/2004 - 12:36h

estou no kurumin linux 3.2 esse n é o primireiro programa q tento instalar e da erro no ./configure :( o q devo fazer?

[27] Comentário enviado por victsa em 10/09/2004 - 16:34h

Por favor, alguém me mande um "invitation for gmail".. Obrigada, victsa.

[28] Comentário enviado por agk em 10/09/2004 - 21:03h

Galera seguinte eu ainda não consegui fazer isso funcionar, eis o erro
urllib2.URLError: <urlopen error (113, 'No route to host')>

Tenho quase certeza que é porque eu só tenho acesso via proxy, daí a minha dúvida aonde eu mexo eu coloco as váriaveis do proxy?
Please help-me.

[29] Comentário enviado por leandrosampaio em 12/09/2004 - 00:38h

*leandrosampaio usa Kurumin 3.2 instaldo no hd.

O erro enfrentado é:

root@citoweb:/home/kurumin# mount -t gmailfs /bin/gmailfs.py /mnt/gmail/ -o username=*****,password=******,fsname=ZdkfE
root@citoweb:/home/kurumin# Traceback (most recent call last):
File "/bin/gmailfs.py", line 21, in ?
from fuse import Fuse
ImportError: No module named fuse
root@citoweb:/home/kurumin#

O que devo fazer??

[30] Comentário enviado por mfa81 em 13/09/2004 - 11:28h

tb tive esse problem um tempo depois do mount


File "/bin/gmailfs.py", line 818, in ?
server = Gmailfs()
File "/bin/gmailfs.py", line 402, in __init__
self.ga.login()
File "/usr/lib/python2.3/site-packages/libgmail.py", line 255, in login
pageData = self._retrievePage(req)
File "/usr/lib/python2.3/site-packages/libgmail.py", line 280, in _retrievePage
resp = urllib2.urlopen(req)
File "/usr/lib/python2.3/urllib2.py", line 129, in urlopen
return _opener.open(url, data)
File "/usr/lib/python2.3/urllib2.py", line 326, in open
'_open', req)
File "/usr/lib/python2.3/urllib2.py", line 306, in _call_chain
result = func(*args)
File "/usr/lib/python2.3/urllib2.py", line 908, in https_open
return self.do_open(httplib.HTTPS, req)
File "/usr/lib/python2.3/urllib2.py", line 886, in do_open
raise URLError(err)
urllib2.URLError: <urlopen error (110, 'Connection timed out')>

[31] Comentário enviado por cleberbrasil em 19/09/2004 - 22:47h

O comentario de nosso amigo Guilherme L. Stolfo não poderia ser melhor,

Valeu Camarada...

ai galera demorei 3 minutos para descolar um mote de cadastro....

[32] Comentário enviado por ustrucx em 08/10/2004 - 23:03h

Ninguem q usa conectiva tentou essa dica?
Alguem conseguio compilar o fuse-1.3 no Conectiva 10? aqui o ./configure da o erro:
checking kernel source directory... /usr/src/linux-2.6.5-63255U10_1cl/
checking kernel source version... Not found
configure: error:
*** Cannot determine the version of the linux kernel source. Please
*** configure the kernel before running this script
Nao acho que baixar e copilar um kernel seja a melhor saida =\

[33] Comentário enviado por ustrucx em 08/10/2004 - 23:17h

Resolvido:
#touch /usr/src/linux/include/version.h

[34] Comentário enviado por mafioso em 16/12/2004 - 01:39h

Acredito que deu tudo certo, o problema é que, quando tento enviar um arquvio, recebo a seguinte mensagem de erro:

ERROR:gmailfs:Send failed too many times
cp: cannot create regular file `/mnt/gmail/WHM.jpg': No space left on device

Mas se eu dou um df -h, recebo a mensagem:

Filesystem Size Used Avail Use% Mounted on
/dev/hda6 6.7G 5.7G 988M 86% /
/dev/hda1 20G 18G 1.7G 92% /mnt/win_c
/dev/hda5 12G 11G 1.5G 88% /mnt/win_d
gmailfs 1000M 1.0M 999M 1% /mnt/gmail

Pelo que pesquisei na internet, parece que não sou só eu que estou com esse problema... alguém sabe como solucionar???

[35] Comentário enviado por raphazero em 23/01/2005 - 21:04h

na instalação ocorreu tudo certo, nenhum erro, porém qdo dou um "df"
aparece o seguinte resultado.
uso slackware
agradeço desde já!

File "/bin/gmailfs.py", line 818, in ?
server = Gmailfs()
File "/bin/gmailfs.py", line 402, in __init__
self.ga.login()
File "/usr/lib/python2.3/site-packages/libgmail.py", line 255, in login
pageData = self._retrievePage(req)
File "/usr/lib/python2.3/site-packages/libgmail.py", line 280, in _retrievePage
resp = urllib2.urlopen(req)
File "/usr/lib/python2.3/urllib2.py", line 129, in urlopen
return _opener.open(url, data)
File "/usr/lib/python2.3/urllib2.py", line 326, in open
'_open', req)
File "/usr/lib/python2.3/urllib2.py", line 306, in _call_chain
result = func(*args)
File "/usr/lib/python2.3/urllib2.py", line 908, in https_open
return self.do_open(httplib.HTTPS, req)
File "/usr/lib/python2.3/urllib2.py", line 886, in do_open
raise URLError(err)
urllib2.URLError: <urlopen error (110, 'Connection timed out')>

[36] Comentário enviado por pscnuke em 02/02/2005 - 17:43h

Caros,
estou com o problema abaixo em meu Slackware 10 qdo tento instalar o fuse-python. Alguém pode me ajudar ???

root@maquina:~/download/fuse-python# python setup.py build
running build
running build_py
running build_ext
building '_fusemodule' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -O3 -march=i486 -mcpu=i686 -fPIC -I/usr/include/python2.3 -c _fusemodule.c -o build/temp.linux-i686-2.3/_fusemodule.o
_fusemodule.c:312: warning: `struct fuse_statfs' declared inside parameter list
_fusemodule.c:312: warning: its scope is only this definition or declaration, which is probably not what you want
_fusemodule.c: In function `statfs_func':
_fusemodule.c:333: error: dereferencing pointer to incomplete type
_fusemodule.c:334: error: dereferencing pointer to incomplete type
_fusemodule.c:335: error: dereferencing pointer to incomplete type
_fusemodule.c:336: error: dereferencing pointer to incomplete type
_fusemodule.c:337: error: dereferencing pointer to incomplete type
_fusemodule.c:338: error: dereferencing pointer to incomplete type
_fusemodule.c: In function `Fuse_main':
_fusemodule.c:441: warning: assignment from incompatible pointer type
_fusemodule.c:444: warning: passing arg 2 of `fuse_new_compat2' makes pointer from integer without a cast
_fusemodule.c: In function `init_fuse':
_fusemodule.c:484: error: `FUSE_DEBUG' undeclared (first use in this function)
_fusemodule.c:484: error: (Each undeclared identifier is reported only once
_fusemodule.c:484: error: for each function it appears in.)
error: command 'gcc' failed with exit status 1


Paulo
PSCNuke

[37] Comentário enviado por lhukaz em 15/02/2005 - 14:19h

estou precisando dos seguintes pacotes:

http://mesh.dl.sourceforge.net/sourceforge/avf/fuse-1.3.tar.gz
http://unc.dl.sourceforge.net/sourceforge/libgmail/libgmail-0.0.8.tgz

o link ai no artigo nÃo ta funcionando. : /

[38] Comentário enviado por pscnuke em 16/02/2005 - 09:41h

Caro lhukaz,

os dois links mudaram, procure no Google e entre no link da Sourceforge. No meu caso, usei os links abaixo:

http://sourceforge.net/projects/fuse
http://sourceforge.net/project/showfiles.php?group_id=113492

Paulo
PSCNuke

[39] Comentário enviado por pscnuke em 16/02/2005 - 11:18h

Caros,
o meu problema acima era causado porque estava tentanto usar uma versão mais atual do Fuse, mas como diz o próprio artigo do Richard Jones deve-se usar a versão 1.3.

Agora estou com outro problema. Executo o comando de montagem e aparece a seguinte mensagem:
root@servidor:~/download# fuse: warning: library too old, some operations may not not work

Qdo tento acessar a filesystem recebo a mensagem :
root@servidor:/mnt/gmail# ls
/usr/bin/ls: .: Transport endpoint is not connected

Alguém sabe o que está acontecendo ?

Paulo
PSCNuke

[40] Comentário enviado por montaro em 15/04/2005 - 23:44h

eu uso slack10 e segui passo a passo o artigo so que to com essa msg de erro ->>
lsERROR:gmailfs:Exception getting query:n=__c____d__ p=__a____fs____b__

alguem teria a solucao???

[41] Comentário enviado por removido em 21/04/2006 - 00:32h

Já não existe um RPM pra isso?
Abs

[42] Comentário enviado por rbn_jesus em 23/03/2007 - 17:11h

Estou com um problema em LVM, creio que vc possa me ajudar...
tenho uma configuração lvm em apenas 1 dispositivo, da seguinte forma:
xda1 - /boot - ext3
xda2 - lvm (lvm1 - / - ext3; lvm2 - swap)

como recupero as informações da 1ª partição do lvm neste despositivo?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts