Простой скрипт для бэкапа баз mysql

Andy Wits Blog

Итак, имеем задачу:

На 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   -------"
Published on Apr 23 2018 at 12:00 pm
Time to read 1 minute(s)
Categories
  • System Administration

Contact me on