OpenSUSE Linux + Dropbox Shell Backup Script

OpenSUSE Linux + Dropbox Shell Backup Script

Vou aqui deixar um pequeno script que fiz para linux para fazer o backup diário de algumas bases de dados criticas inicialmente para o Dropbox (que sem duvida é a melhor forma de backup e sincronização de dados; dropbox.com) e depois para um disco externo. Um dos maiores problemas mesmo foi conseguir montar um disco de rede (PackardBell Netstore 3500) no openSUSE. A coisa ficou feia e apenas o consegui montar via ftp com a ajuda do curlftpfs (http://curlftpfs.sourceforge.net/), um pequeno software que me fez matar a charada e me permitiu montar o ftp como uma pasta no linux e a partir daí aceder a ela como se fizesse parte do proprio linux.

Bom, tive que recorrer a um pouco do que estudei sobre linux, e a algumas dicas que encontrei pela net e discuti com amigos, até que cheguei a um script bem simples mas que me permite fazer sem rodeios o que eu precisava. (Backup de algumas bases de dados mysql e de algumas pastas no servidor).

[coolcode lang=”python”] #!/bin/sh
# Simple backup script
# Backups mysql databases and folders to dropbox and external disk
# by Mário Santos – msdevstudio.com
# admin [ at ] msdevstudio.com
# ————————————–
mkdir /root/Dropbox/Backups > /dev/null 2>&1
mkdir /root/Dropbox/Backups/`date +%Y%m%d` > /dev/null 2>&1
echo Backup Started `date` >> ~/backuplog
echo Backing up db_1 @ `date` >> ~/backuplog
mysqldump –user=root –password=mypass –lock-tables=false db_1 > /root/Dropbox/Backups/`date +%Y%m%d`/db_1.sql
echo Backing up db_1 Complete @ `date` >> ~/backuplog
echo MySql Backup Completed @ `date` >> ~/backuplog

echo Trying to copy to network disk @`date` >> ~/backuplog
cp -r /root/Dropbox/Backups/`date +%Y%m%d` /home/net-backup/PUBLIC/Backups > /dev/null 2>&1
echo Copy to network disk done @ `date` >> ~/backuplog

# Using dates to delete the 3 days ago backup. Leave only 3 backups!
threeDaysAgo=`(date –date=’3 days ago’ ‘+%Y%m%d’)`
threeDaysAgoPath=/home/net-backup/PUBLIC/Backups/$threeDaysAgo

echo Backing up folders @ `date` >> ~/backuplog
mkdir /home/net-backup/PUBLIC/Backups/`date +%Y%m%d`/Files > /dev/null 2>&1
cp -r /home/folder1 /home/net-backup/PUBLIC/Backups/`date +%Y%m%d`/Files > /dev/null 2>&1
cp -r /home/folder2 /home/net-backup/PUBLIC/Backups/`date +%Y%m%d`/Files > /dev/null 2>&1
echo Backing up folders complete @ `date` >> ~/backuplog
echo Removing old backup files @ `date` >> ~/backuplog
rm -r $threeDaysAgoPath > /dev/null 2>&1
echo Removing old backup files complete @ `date` >> ~/backuplog
echo Backing Complete @ `date` >> ~/backuplog
[/coolcode] E voila! Gravem como .sh e criem um cron job para fazer correr este script!

Reparem que apenas copiei os backups das bases de dados para o Dropbox, porque como devem imaginar copiar pastas do sistema (que no meu caso poderiam chegar a 50GB ) não é boa ideia, a não ser que tenha a opção paga do dropbox!

Simples e eficaz. Claro que não dispensa por completo o uso de um software de backups, no entanto para certos casos é mais do que suficiente ;)

Talvez ajude alguem! :)
Abraço.


Leave a Comment

Post