Команда правильного бэкапа с датой в названии папки

Twix007

Гуру форума
Регистрация
11 Окт 2009
Сообщения
257
Реакции
57
Хочу чтобы бэкап сохранялся так:
папка/дата/files.tar + база.sql

Есть код:
Код:
mkdir /home/backup/site/`date +%d%m%y_%H.%M` && cd /home/backup/site/`date +%d%m%y_%H.%M` && tar cfz files.tgz /home/www/site.com && mysqldump -uroot -proot -h127.0.0.1 -f baza|gzip > /home/backup/site/base.sql.gz
Как переделать, потому что проблема создания архива с базой, база создается в папке с другой датой, потому что бекап сайта несколько минут (минуты уже другие) или как войти в предыдуще созданную папку...
______________________
Может кому пригодится команда (архивирует полностью папку /home/www/ и бекапит все таблицы раздельно в папку db:(
Код:
export data=`date +%d%m%y_%H.%M` && mkdir -p /home/backup/$data/www/ && mkdir -p /home/backup/$data/db/ && cd /home/backup/$data/www/ && tar cfz www.tgz /home/www/ && cd /home/backup/$data/db && mysql -uROOT -pPASS -e 'show databases' | while read dbname; do mysqldump -uROOT -pPASS --complete-insert "$dbname"|gzip > /home/backup/$data/db/"$dbname".sql.gz; done
 
Последнее редактирование:
Вам надо время начала бэкапа, а не время окончания?
 
Как переделать, потому что проблема создания архива с базой, база создается в папке с другой датой, потому что бекап сайта несколько минут (минуты уже другие) или как войти в предыдуще созданную папку...

Нужно в скрипте перед выполнением последовательности команд какой-либо переменной присвоить значение даты. И потом в командах уже использовать эту переменную

В вашем примере в одну строку можно сделать так:

Код:
BCPDATE=`date +%d%m%y_%H.%M` && mkdir /home/backup/site/$BCPDATE && cd /home/backup/site/$BCPDATE && tar cfz files.tgz /home/www/site.com && mysqldump -uroot -proot -h127.0.0.1 -f baza|gzip > /home/backup/site/base.sql.gz
 
Последнее редактирование:
В вашем примере в одну строку можно сделать так:

Код:
BCPDATE=`date +%d%m%y_%H.%M` && mkdir /home/backup/site/$BCPDATE && cd /home/backup/site/$BCPDATE && tar cfz files.tgz /home/www/site.com && mysqldump -uroot -proot -h127.0.0.1 -f baza|gzip > /home/backup/site/base.sql.gz
[/QUOTE]
коммандная строка игнорирует BCPDATE=`date +%d%m%y_%H.%M`
 
Попробуйте так:
export BCPDATE=`date...... И далее по тексту команды

для проверки "игнорирования" попробуйте оба варианта

Код:
BCPDATE=`date +%d%m%y_%H.%M.%S` && echo $BCPDATE

Код:
export BCPDATE=`date +%d%m%y_%H.%M.%S` && echo $BCPDATE

у себя перепроверил - оба варианта работают:
Код:
[root@host ~]# BCPDATE=`date +%d%m%y_%H.%M.%S` && echo $BCPDATE
290316_08.36.51
[root@host ~]# export BCPDATE=`date +%d%m%y_%H.%M.%S` && echo $BCPDATE
290316_08.36.55
 
Последнее редактирование:
Попробуйте так:
export BCPDATE=`date...... И далее по тексту команды

для проверки "игнорирования" попробуйте оба варианта

Код:
BCPDATE=`date +%d%m%y_%H.%M.%S` && echo $BCPDATE

Код:
export BCPDATE=`date +%d%m%y_%H.%M.%S` && echo $BCPDATE

у себя перепроверил - оба варианта работают:
Код:
[root@host ~]# BCPDATE=`date +%d%m%y_%H.%M.%S` && echo $BCPDATE
290316_08.36.51
[root@host ~]# export BCPDATE=`date +%d%m%y_%H.%M.%S` && echo $BCPDATE
290316_08.36.55
так работает...
export BCPDATE=`date +%d%m%y_%H.%M` mkdir /home/$BCPDATE/
неправильный идентификатор...
 
только && пропущен (или ";")
Код:
export BCPDATE=`date +%d%m%y_%H.%M` && mkdir /home/$BCPDATE
export BCPDATE=`date +%d%m%y_%H.%M` && mkdir /home/backup-manual/vt/$BCPDATE/ && cd /home/backup-manual/vt/$BCPDATE/

mkdir: невозможно создать каталог «/home/backup-manual/vt/290316_09.17/»: Нет такого файла или каталога

какая-то хрень творится
 
а так?
Код:
export BCPDATE=`date +%d%m%y_%H.%M` && mkdir -p /home/backup-manual/vt/$BCPDATE && cd /home/backup-manual/vt/$BCPDATE
export BCPDATE=`date +%d%m%y_%H.%M` && mkdir /home/backup-manual/vt/$BCPDATE/ && cd /home/backup-manual/vt/$BCPDATE/

mkdir: невозможно создать каталог «/home/backup-manual/vt/290316_09.17/»: Нет такого файла или каталога

какая-то хрень творится
 
Назад
Сверху