Скрипты для бекапа данных
Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
- ефрейтор
- Сообщения: 68
- Зарегистрирован: 2011-06-27 23:11:48
- Откуда: Украина
- Контактная информация:
Скрипты для бекапа данных
Мне нужен скрипт для бекапа директории и перемещения этого бекапа на другой диск/раздел/удалённую систему.
Для примера возьму целевую директорию /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.
Для примера возьму целевую директорию /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
Тарифы на хостинг в России, от 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/
Тарифы на виртуальные сервера (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/
-
- капитан
- Сообщения: 1820
- Зарегистрирован: 2010-12-25 20:41:50
- Откуда: Хлебная столица
Re: Скрипты для бекапа данных
man tar | grep "this changes the directory" -B1 -A3
man date
man date
-
- ефрейтор
- Сообщения: 68
- Зарегистрирован: 2011-06-27 23:11:48
- Откуда: Украина
- Контактная информация:
Re: Скрипты для бекапа данных
Вот что пробую
В /home/gdem/backup/ создаётся такая структура бекапа:
09.07.2011/data.tar.gz
а в самом архиве еще пустые подпапки, о чём я писал выше --home/gdem/Desktop/data
А мне нужно чтоб в /home/gdem/backup лежал архив 09.07.2011_data.tar.bz2 и архив без подпапок
Код: Выделить всё
#! /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
09.07.2011/data.tar.gz
а в самом архиве еще пустые подпапки, о чём я писал выше --home/gdem/Desktop/data
А мне нужно чтоб в /home/gdem/backup лежал архив 09.07.2011_data.tar.bz2 и архив без подпапок
-
- старшина
- Сообщения: 427
- Зарегистрирован: 2008-10-03 18:52:02
Re: Скрипты для бекапа данных
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: Скрипты для бекапа данных
Код: Выделить всё
#!/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
Женщины и софт - должны быть бесплатными!
-
- ефрейтор
- Сообщения: 68
- Зарегистрирован: 2011-06-27 23:11:48
- Откуда: Украина
- Контактная информация:
Re: Скрипты для бекапа данных
damir_madaga ,
Я видел в поиске ваш конфиг и несколько подобных, мне не нравится в них что архив создаётся с подпапками. Наконецто я понял как нужно сделать чтоб такого не было. rmn правильно подсказал что сначала надо сделать cd в директорию, а потом там архивировать.
Я видел в поиске ваш конфиг и несколько подобных, мне не нравится в них что архив создаётся с подпапками. Наконецто я понял как нужно сделать чтоб такого не было. 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 *