Faz um tempo que não publico nada, mas hoje decidi colocar uma dica que acabei de usar.

O que aconteceu foi o seguinte: dou manutenção alguns servidores linux com vários sites e, obviamente, preciso fazer backup dos mesmos. Os servidores já possuem um backup automático, mas é um backup de máquina e não de cada site. Pensei num modo onde barato de fazer um backup de modo automático e por site. A melhor maneira que achei foi disponibilizar minha conta do Google Drive (que já pago uma grana pra guardar meus bregueço).

Então, como enviar um arquivo para o Google Drive?

Encontrei um programinha maroto chamado Gdrive escrito em Go (ainda quero estudar esta linguagem mais a fundo). O endereço é https://github.com/prasmussen/gdrive. Basta baixar o executável, jogar no /bin (eu fiz isso, não é obrigatório) e dar os privilégios (chmod +x). Além disso, quando você executa pela primeira vez, ele passa um link:

artz@r2d2:~# drive
Go to the following link in your browser:

https://accounts.google.com/o/oauth2/auth?client_id=3116223-7n0vf5akedoe99eg.apps.googleusercontent.com&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&response_type=code&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive&state=state

Enter verification code:

Acesse esse link de um browser, pegue o código e informe ao programa e pronto. Da próxima vez que rodar o drive ele já vai informar o help dele. Ah mas eu to com medinho de pegarem as minhas informações no servidor. Ok, então apaga o ~/.gdrive e ta tudo beleza.

Bem, não vou ensinar como se usa o bichinho, mas é muito fácil e o help dele é bem simples. Talvez confunda um pouco o fato de ele trabalhar sempre com o Id do arquivo ou pasta. De qualquer maneira é importante você saber qual o Id da pasta onde você vai guardar os backups. Do contrário ele vai jogar no root do Drive.

Finalmente segue o script que criei:

#!/bin/bash
NOW=$(date +%Y%m%d)
USERNAME=%%user_site%%
PASSWORD=%%12345%%
DATABASE=%%site%%
SITE_DIR=%%/home/user/site%%
BACKUP_DIR=%%backups%%
GDRIVE_DIR=%%0Bytga5cE1nS1lyOHZmTldBTzYweFE%%

mysqldump -u $USERNAME -p$PASSWORD $DATABASE > $SITE_DIR/database.sql
zip $BACKUP_DIR/$SITE_DIR$NOW.zip $SITE_DIR/ -r
rm $SITE_DIR/database.sql

# Joga o arquivo dentro do meu Google Drive na pasta de backups
drive upload –file $BACKUP_DIR/$SITE_DIR$NOW.zip -p $GDRIVE_DIR
rm $BACKUP_DIR/$SITE_DIR$NOW.zip

O que está entre %% é o que é para ser alterado. Fim.