Скрипты для бэкапа.

1) Скрипт бэкапа сайтов:

Этот скрип создает бэкап сайтов из директории vhosts, выполнит сжатие каждого и поместит в директорию /root/backup/дата именем  имя.дата.tar.bz2 (пример: site1.ru.2015-02-22.tar.bz2 site2.ru.2015-02-22.tar.bz2 site3.ru.2015-02-22.tar.bz2 и т.д.). Файлы старше 60 дней удаляются.

#!/bin/bash 

TIMESTAMP=$(date +"%F")
BACKUP_DIR="/root/backup/$TIMESTAMP"
WWW_DIR="/var/www/vhosts"

mkdir -p "$BACKUP_DIR/www"
temp=`ls -l $WWW_DIR |awk '{print $9}' |awk '{if (NR!=1) {print}}'`

for d in $temp; do
tar cvpjf $BACKUP_DIR/www/$d.$TIMESTAMP.tar.bz2 $WWW_DIR/$d
done

i=60 #(или ваше число дней)
find /root/backup/ -type f -mtime +$i -exec rm -f {} \;
find /root/backup/ -type d -mtime +$i -exec rm -f {} \;

2) Скрипт бэкапа mysql:

Этот скрип создает бэкап всех баз данных mysql с сжатием каждой и поместит в директорию /root/backup/дата именем  имя_бд.gz (пример: site_bd1.gz site_bd2.gz site_bd3.gz site_bd4.gz и т.д.)  

 
#!/bin/bash

TIMESTAMP=$(date +"%F")
BACKUP_DIR="/root/backup/$TIMESTAMP"
MYSQL_USER='admin'
MYSQL=/usr/bin/mysql
MYSQLDUMP=/usr/bin/mysqldump
MYSQL_PASSWORD='password of mysql'
mkdir -p "$BACKUP_DIR/mysql"

databases=`$MYSQL --user=$MYSQL_USER -p$MYSQL_PASSWORD -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema)"`
for db in $databases; do
$MYSQLDUMP --force --opt --user=$MYSQL_USER -p$MYSQL_PASSWORD --databases $db | gzip > "$BACKUP_DIR/mysql/$db.gz"
done

3) Запихиваем скрипты в cron.

 
# minute   Hour   Day of Month       Month          Day of Week        Command
# (0-59) (0-23) (1-31) (1-12 or Jan-Dec) (0-6 or Sun-Sat)
15 0 * * * /root/backup_www.sh
15 0 * * * /root/backup_mysql.sh
Прочитано 1964 раз Последнее изменение Воскресенье, 22 Февраль 2015 20:40

Оставить комментарий

Убедитесь, что вы вводите (*) необходимую информацию, где нужно
HTML-коды запрещены

JoomShaper