We all do backups. This note is about doing them on Ubuntu 12.04.
- archive important folders
- dump mysql databases
- upload all to yandex.disk (online web storage with 10GB space)
- delete old backups
I’ll save only backups for last five days.
There are many different backup tools, see wiki list. I’ve chosen DAR.
One can install it in Ubuntu 12.04 by typing
# apt-get install dar
It is a console utility and it can be confusing for beginner. Here is great short how-to with explanations.
I will perform full backups every day. For incremental ones read manual.
I need to backup /srv folder, so my command is:
dar -m 256 -z -s 600M -D -R /srv -c `date -I`_data -Z "*.gz" -Z "*.bz2" -Z "*.zip" -Z "*.png"
It creates file currentdate_data.X.dar, for example “2012-08-30”
Dumping MySQL is performed by mysqldump utility. You can list your databases in MySQL by entering into console with
mysql -uroot -ppassword
and type there
I have drupal database I want to backup. So, I type:
mysqldump -u root -ppassword drupal > `date -I`_drupal.mysqldump
It creates file with all necessary stuff to create the same table from nothing.
Yandex.Disk can be accessed by WebDAV. Install vebdavfs2:
# apt-get install davfs2
Then edit /etc/davfs2/secrets. Just add line with address, login and password:
https://webdav.yandex.ru firstname.lastname@example.org "userpass"
Now you cat mount yandex.disk as an ordinary drive to folder /mount/yandex:
mount -t davfs https://webdav.yandex.ru /media/yandex
Now it is possible to store backups in cloud.
Old files can be removed by:
rm `ls *.dar | head -n -5`
It leaves only last five backups.
Adding to cron
All commands from above in one script backup.sh:
#!/bin/bash mount -t davfs https://webdav.yandex.ru /media/yandex cd /media/yandex/cudacer dar -m 256 -z -s 600M -D -R /srv -c `date -I`_data -Z "*.gz" -Z "*.bz2" -Z "*.zip" -Z "*.png" rm `ls *.dar | head -n -5` mysqldump -u root -p<password> <dbname>l > `date -I`_drupal.mysqldump rm `ls *.mysqldump | head -n -5`
Run it every day at 1am. Open cron tasks
# crontab -e
and paste there line:
0 1 * * * /home/kenarius/backup.sh
Now you have backups.