Итак, имеем задачу:
На vps-сервере N крутится mysql база M нужно: бэкапить с заданной периодичностью.
Решение.
Напишем на BASH скрипт с использованием mysqldump и поставим его в cron
#!/bin/bash
### variables
user=USER
pass=PASS
bakdir="/path/to/backups/"
echo "------ start ------"
echo "-----------------------"
cd $bakdir
### dump db (по списку баз)
for db in \
DB1 \
DB2 \
do
/usr/bin/mysqldump --user=$user --password=$pass $db > $db.sql && echo $db.sql created
done
echo "-----------------------"
### tar all
folder=`date +%Y-%m-%d_%Hh%Mm`
echo $folder
echo "-----------------------"
mkdir $folder
for i in *.sql
do
#tar -c -j -f ./$folder/$i.tar.bz2 "$i" && echo $i.tar.bz2 created
tar -c -z -f ./$folder/$i.tar.gz "$i" && echo $i.tar.gz created
done
### delete old archives (delete 10 days old files)
/usr/bin/find $bakdir/* -mtime +10 | xargs rm -f
echo "-----------------------"
echo "------- end -------"