Скрипты для бекапа данных

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Demontager
ефрейтор
Сообщения: 60
Зарегистрирован: 2011-06-27 23:11:48
Откуда: Украина
Контактная информация:

Скрипты для бекапа данных

Непрочитанное сообщение Demontager » 2011-07-09 23:10:56

Мне нужен скрипт для бекапа директории и перемещения этого бекапа на другой диск/раздел/удалённую систему.
Для примера возьму целевую директорию /home/user/data, её нужно заархивировать и переместить в директорию /media/disk/backup, при этом каждый бекап должен иметь такой формат:

dd.mm.yyyy_data.tar.bz2 , тоесть где-то так 09.07.2011_data.tar.bz2

Для меня тут самое сложное, это сделать так, чтоб в папке назначения был именно один архив без подпапок, а то у меня получалось сделать что-то типо data.tar.bz2 в котором ещё были подпапки изначального пути /home/user/ и второе, это поставить именно "правильную" маркировку даты. Нужно два варианта, для локального перемещения в пределах localhost и через ssh на удалённую систему. Это скрипты потом планирую поставить на регулярное исполнение в cron.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Bayerische
капитан
Сообщения: 1820
Зарегистрирован: 2010-12-25 20:41:50
Откуда: Хлебная столица

Re: Скрипты для бекапа данных

Непрочитанное сообщение Bayerische » 2011-07-09 23:50:37

man tar | grep "this changes the directory" -B1 -A3
man date

Demontager
ефрейтор
Сообщения: 60
Зарегистрирован: 2011-06-27 23:11:48
Откуда: Украина
Контактная информация:

Re: Скрипты для бекапа данных

Непрочитанное сообщение Demontager » 2011-07-10 0:17:04

Вот что пробую

Код: Выделить всё

#! /bin/sh
DATE=`date '+%d.%m.%G'`
BACKUP_DIR= mkdir /home/gdem/backup/$DATE

tar -zcvf /home/gdem/backup/$DATE/data.tar.gz /home/gdem/Desktop/data
В /home/gdem/backup/ создаётся такая структура бекапа:
09.07.2011/data.tar.gz
а в самом архиве еще пустые подпапки, о чём я писал выше --home/gdem/Desktop/data
А мне нужно чтоб в /home/gdem/backup лежал архив 09.07.2011_data.tar.bz2 и архив без подпапок

rmn
старшина
Сообщения: 427
Зарегистрирован: 2008-10-03 18:52:02

Re: Скрипты для бекапа данных

Непрочитанное сообщение rmn » 2011-07-10 0:40:11

Demontager писал(а):а то у меня получалось сделать что-то типо data.tar.bz2 в котором ещё были подпапки изначального пути /home/user/

Код: Выделить всё

cd /home/gdem/Desktop/data
tar -zcvf /home/gdem/backup/$DATE/data.tar.gz  *

Аватара пользователя
damir_madaga
старшина
Сообщения: 447
Зарегистрирован: 2007-10-01 8:13:38
Откуда: Красноярск
Контактная информация:

Re: Скрипты для бекапа данных

Непрочитанное сообщение damir_madaga » 2011-07-10 8:01:24

Код: Выделить всё

#!/bin/sh

#текущая дата в формате гг-мм-дд
DATE=`date "+%Y-%m-%d"`

#Название файла на выхлопе
DSTFILE="mail.${DATE}.tar.bz2"

#директория, откуда берем папку с бекапом
SOURCE_PATH="/pub/ftp/backup/mail"

#временная папка для бекапа (должна существовать)
BACKUP_PATH="/pub/ftp/backup/mail/temp"

#папка для дампа базы (должна существовать)
DIR="/pub/ftp/backup/mail/sqldumpfiles"

#Логин и пароль для mysql
SQLUSER="user"
SQLPASS="password"

#Логин и пароль для ftp
FTPUSER="user"
FTPPASS="password"
###########################################
SQLQUERY="/usr/local/bin/mysqldump --user=${SQLUSER} --password=${SQLPASS}"
#Дампим базу во временную папку
${SQLQUERY} exim  > ${DIR}/exim.sql

#Тарим нужные директории во временную папку.
tar -cpzf ${BACKUP_PATH}/${DSTFILE} /usr/local/etc/ $DIR/ /var/mail/

#Сливаем получившийся архив на фтп
ftp -u ftp://${FTPUSER}:${FTPPASS}@192.168.0.222/backup/${DSTFILE} ${BACKUP_PATH}/${DSTF
ILE}

#Убиваем временные файлы
/bin/rm ${BACKUP_PATH}/${DSTFILE}
/bin/rm ${DIR}/exim.sql
Вот рабочий вариант, архивирую папку с почтой и базу от Exim-а. По-моему исходник брал на этом форуме, так что пользуйтесь поиском! На первоисточник не претендую!
Женщины и софт - должны быть бесплатными!

Demontager
ефрейтор
Сообщения: 60
Зарегистрирован: 2011-06-27 23:11:48
Откуда: Украина
Контактная информация:

Re: Скрипты для бекапа данных

Непрочитанное сообщение Demontager » 2011-07-10 13:58:56

damir_madaga ,
Я видел в поиске ваш конфиг и несколько подобных, мне не нравится в них что архив создаётся с подпапками. Наконецто я понял как нужно сделать чтоб такого не было. rmn правильно подсказал что сначала надо сделать cd в директорию, а потом там архивировать.

Код: Выделить всё

#!/bin/sh

#Creating variables
DATE=`date '+%d.%m.%G'`
DIR= mkdir /home/gdem/backup/$DATE

#archive
cd /home/gdem/Desktop/data
tar -cjf /home/gdem/backup/$DATE/data.tar.bz2  *