+0.47
Рейтинг
0.11
Сила
  • avatar kpoxas
  • 0
Давно использую вот такой bash скрипт.
Для бэкапа файлов можно раскомментировать соответствующую строчку.
Также пути к некоторым командам типа find могут отличаться в разных системах.
#!/bin/bash

MyUSER="user"       # USERNAME
MyPASS="password"   # PASSWORD
MyHOST="127.0.0.1"  # Hostname
DBName="dbname"     # Dbname

DEST="/..../backups"

# заносим в переменную DATE текущую дату
DATE=`/bin/date '+%Y.%m.%d'`

FILE="$DEST/$DBName"_"$DATE.sql.gz"

# оптимизация
mysqlcheck -u $MyUSER -p$MyPASS --auto-repair --check --optimize --all-databases >/dev/null 2>&1

# сохраняем дамп mysql
mysqldump -u $MyUSER -h $MyHOST -p$MyPASS $DBName | gzip -9 > $FILE

# архивируем все каталоги, кроме тех, в которых находится файл .noarchive
# /bin/tar -zcf PATH-TO-DIR-BACKUP/$DATE.backup.tar.gz --exclude-tag=.noarchive ./

# удаляем архивы, которым уже больше семи дней
/usr/bin/find $DEST -type f -name *.gz -atime +7 -exec rm -f \{\} \; >/dev/null 2>&1