Se você já precisou passar vários arquivos de um celular para o outro (como, por exemplo, quando trocou de celular), pode ter se deparado com algumas dificuldades. Como, por exemplo, o aplicativo que lista os arquivos trava antes de conseguir listar todos os arquivos. Ou o celular por algum motivo é desconectado do computador no meio da cópia. Ou depois da cópia você compara as pastas e a quantidade de arquivos não confere.
Nesses casos, em que você deseja que a cópia seja feita com segurança e nenhum arquivo seja deixado para trás, pode ser de grande ajuda um utilitário de linha de comando nativo do Linux, mas que pode ser instalado com facilidade no Android, que é o rsync.
Provavelmente o nome rsync é uma sigla para remote sync (sincronização remota). Inicialmente pensado para sincronizar arquivos entre servidores, o rsync também pode ser usado para sincronizar arquivos entre computadores pessoais, para sincronizar arquivos entre pastas em um mesmo computador ou, como veremos, para sincronizar arquivos entre celulares.
A diferença entre uma cópia de arquivos comum e uma sincronização com rsync é que o rsync compara os arquivos nas pastas antes de fazer a cópia e copia apenas o que é realmente necessário. Se é a primeira vez que você sincroniza os conteúdos de uma pasta para a outra, e a sincronização corre bem até o final, é igual a uma cópia comum. Mas, se por qualquer motivo a sincronização é interrompida, e você tenta de novo, o rsync volta de onde parou. Inclusive, se um arquivo foi copiado pela metade, ele copia apenas a metade faltante. Se depois da sincronização você cria ou altera arquivos na pasta original, e roda o rsync de novo, ele vai copiar apenas os arquivos novos ou modificados.
No tutorial de hoje, você verá como copiar vários arquivos de um celular Android para outro pela Wi-Fi usando rsync. No celular onde estão os arquivos, vamos instalar um emulador de terminal (aqui, usaremos o Termux). O rsync usa SSH para transferência segura de arquivos. No celular que receberá os arquivos, vamos instalar um servidor SSH (aqui, usaremos o SSHelper).
Antes de começar, certifique-se de que ambos os celulares estão conectados à mesma rede Wi-Fi.
Instalando o emulador de terminal
No celular onde estão os arquivos, instale o emulador de terminal Termux:
Observação: se esse celular é muito antigo (sistema anterior ao Android 11), pode ser que a Play Store informe que o Termux não é compatível. Nesse caso, você pode instalar outra versão compatível do Termux a partir da loja F-Droid ou baixar o APK do GitHub (nesse caso, para conseguir instalar o APK, você vai precisar antes permitir a instalação de apps de fontes desconhecidas).
Abra o Termux e execute o comando pkg install rsync
para instalar o rsync:
Diante da pergunta se deseja continuar, digite y
(de yes, sim) e tecle Enter:
Se você já se acostumou a usar terminal no seu computador com Linux, o Termux é a mesma coisa, só que no seu celular Android.
Dica: digitar esses comandos usando o teclado touch do Android pode ser complicado. Se você quiser usar o teclado do computador para digitar esses comandos no celular, o GSConnect pode te ajudar com isso.
Terminada a instalação do rsync, execute o comando:
1
$ termux-setup-storage
Isso fará com que seja aberta uma tela do Android, na qual você deve conceder ao Termux permissão para acessar todos os arquivos da memória interna:
Instalando o servidor SSH
No celular que receberá os arquivos, instale o SSHelper, servidor SSH:
Note que o SSHelper não está na Play Store. Você deverá abrir o site dele no computador e escanear o código QR com o celular, ou abrir o site dele no celular e tocar no link para download, abaixo do código QR:
Você vai baixar o APK do SSHelper. Para conseguir instalá-lo, talvez você precise antes permitir a instalação de apps de fontes desconhecidas.
Quando terminar a instalação, abra o aplicativo.
Ao usar o SSHelper pela primeira vez, você precisa conceder permissão para que ele possa acessar o armazenamento:
De volta ao aplicativo SSHelper, mude para a aba Configuration (configuração):
Tome nota do endereço IP e porta do servidor SSH (no meu exemplo, 192.168.15.42
e 2222
). Toque no campo Server Password e defina uma senha para o servidor. Reinicie o aplicativo para aplicar as mudanças:
Transferindo arquivos com o rsync
No celular onde estão os arquivos, localize a pasta onde eles estão com o Termux. Para fazer isso, você pode usar comandos como pwd (exibe o caminho para a pasta atual), ls (lista o conteúdo da pasta) e cd (muda a pasta atual):
Da mesma forma, no celular que receberá os arquivos, mude para a aba Terminal do SSHelper e localize a pasta de destino. Você pode usar os mesmos comandos:
Finalmente, do celular de origem, execute o comando rsync:
1
$ rsync -e "ssh -p [porta]" -azzv --no-perms --no-times --size-only [caminho_origem] [usuario]@[endereco_ip]:[caminho_destino]
Onde:
[porta]
é o número da porta do servidor SSH no celular de destino;[caminho_origem]
é o caminho para os arquivos ou pastas que você deseja copiar do celular de origem;[usuario]
é o nome de usuário para se conectar via SSH com o celular de destino. Aqui, você poderá digitar qualquer coisa, uma vez que o SSHelper não valida esse informação;[endereco_ip]
é o endereço IP do celular de destino; e[caminho_destino]
é o caminho no celular de destino onde você deseja salvar os arquivos.
Por exemplo:
1
$ rsync -e "ssh -p 2222" -azzv --no-perms --no-times --size-only Camera/* kamarada@192.168.15.42:/data/data/com.arachnoid.sshelper/home/SDCard/DCIM/Camera/
A sincronização com rsync tem início:
Quando a sincronização terminar, confira que os arquivos estão no celular de destino:
Pronto, é isso! Faça bom proveito!
Conclusão
Se chegou até aqui, espero que esse tutorial tenha sido útil para você, e que você tenha conseguido transferir arquivos de um celular Android para outro com o rsync, sem deixar nenhum arquivo para trás.
Se ficou com alguma dúvida, você pode escrever nos comentários.
Se você considera outros aplicativos melhores que os indicados aqui e/ou sabe outra forma de fazer essa cópia com segurança, sem perder nenhum arquivo, por favor, comente também.
Abraço e até a próxima.