@unlik

Как сделать бэкап дампа на удаленный сервер?

Имеется скрипт, который должен создавать дамп базы, сжимать его и копировать на удаленный сервер.

#!/bin/bash

MUSER="" #root пользователь MySQL

MPASS="" #пароль пользователя root MySQL

#Указываем директорию и имя файла куда будем выводить дамп значения
#%H-час %M-минута %d-день %m-месяц %y-год
DPATCH="/var/backups/db/backup.$(date +%H-%M_%d.%m.%y).sql"

#Указываем имя и местоположения нашего архива с дампом
DBGZIP="/var/backups/db/backup.$(date +%H-%M_%d.%m.%y).tar.gz"

FTPU="" #Имя пользователя FTP
FTPP="" #Пароль пользователя FTP
FTPS="" #Сервер FTP например ftp.example.com
FTPF="/home/user" #Директория FTP например /home/backup

#эта команда создает дамп от имени пользователя root ключ -A обозначает,
#что в дамп выводятся все базы данных, если вам нужна только определенная,
#просто вместо ключа укажите вашу БД
mysqldump --single-transaction=1 --lock-tables=false -u$MUSER -p$MPASS -A > $DPATCH

 # сжимаем наш дамп
tar czfP $DBGZIP $DPATCH

 # удаляем дамп с расширением SQL
rm -rf $DPATCH

 # Загружаем архив на удаленный FTP сервер
ncftpput -m -u$FTPU -p$FTPP $FTPS $FTPF $DBGZIP


Скрипт выполняет без ошибок
-- Dump completed on 2015-03-19 23:40:12

Архив с дампом на локальном хосте появляется, на удаленный не копируется.

Что может быть не так?
  • Вопрос задан
  • 1561 просмотр
Пригласить эксперта
Ответы на вопрос 1
vadim_s_sabinich
@vadim_s_sabinich
Делаю так, чтобы проблем не возникало
просто ужас какой-то. Зачем столько сложностей?
mysqldump --single-transaction=1 --lock-tables=false -u -p -A |ssh user@server "cat >alldb.sql"
или с предварительным сжатием
mysqldump --single-transaction=1 --lock-tables=false -u -p -A |gzip -3 -c |ssh user@server "cat >alldb.sql"

ps: а-аа. надо на ftp
чот-то типа
mysqldump --single-transaction=1 --lock-tables=false -u -p -A |gzip -3 -c |curl -T - -u user:passwd ftp://ftp
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы