@GLeBaTi

Бэкап linux (папка + бд) с отправкой в windows?

Здравствуйте. Как можно решить такую задачу?
Есть мой компьютер (windows) и VPS с доступом по ssh (debian + postgresql)
Как можно сделать так, чтобы сделался бэкап (бд+папка с фото) и отправился ко-мне на мой windows? Есть ли какие-то готовые решения?
  • Вопрос задан
  • 121 просмотр
Решения вопроса 1
shambler81
@shambler81 Куратор тега Linux
пойдет ? только wput нужно доставить поскольку он позволяет ограничивать скорость
так же можно сделать бэкап отдельного сайта в консоли сделав так scrypt.sh site.ru в таком случае будет дамп не всех сатов а только 1. Заточено под битрикс тут бд еще и складываются к сайтам. Если нужно просто все бд то нужно поменять 2 строчки и спрашивать список бд уже у mysql и в цикле дампить их
#!/bin/sh
# Пример пути до сайта /var/www/site.ru/web/
SITEDIR="/var/www"                                  # Папка до названия доменаов
WEB="web"                                           # Папка после названия доменов (если есть)
DBCONN="bitrix/php_interface/dbconn.php"            # Откуда читать настройки mysql
FTPUSER="1111111"                                   # Логин FTP сервера
FTPPASS="22222222"                                  # Пароль FTP
FTPHOST="u113948.site.ru"                           # сервер FTP
FTPDIR="/ks03.ru/site/"                             # папка на FTP
TMPDIR="/var/backup/site"                           # Где будут храниться временные файлы
DATE=`date +"%Y-%m-%d"`                             # Формат даты в имени файла
DATEYM=`date +%Y`/`date +%m`                        # Второй форматы даты
LIST=${1:-`ls -L $SITEDIR | grep -E ".*\.\w{1,5}" | grep -v "restore.php" | grep -v "klondike.php"`} # Название сайта, тут выбор или аргумент или, регулярка  можно убрать только -L ;) ( не брать вот эти файлы )

test ! -d $TMPDIR/$DATEYM && mkdir -p $TMPDIR/$DATEYM # создаем  структ уру каталогов если их нет

for ELEMENT in $LIST
    do
                if [ ! -f /$SITEDIR/$ELEMENT/$WEB/$DBCONN ];
                        then
                            echo " Файл $SITEDIR/$ELEMENT/$WEB/$DBCONN не найден, сайт будет без БД!"
                        else
                            mysqldump -u$DBLOGIN -p$DBPASS $DBNAME > $SITEDIR/$ELEMENT/$WEB/$DBNAME\-$DATE.sql && echo "Дамп БД $DBNAME будет сохранен в корне сайта"  ||  echo "Ошибка дампа базы данных " $DBNAME
                fi
    echo "MySql, чтоб вам прям ну совсем не марать ручки"
    echo "$DBLOGIN"
    echo "$DBPASS"
    echo "$DBNAME"
    echo "Архивируем сайт $ELEMENT"
        tar -cvpzf $TMPDIR/$DATEYM/$ELEMENT-$DATE.tar.gz --directory $SITEDIR/$ELEMENT/$WEB --ignore-failed-read --exclude='./bitrix/tmp' --exclude='./bitrix/updates' --exclude='./bitrix/backup/*\.gz*' --exclude='./bitrix/backup/*\.tar*' --exclude='./bitrix/cache' --exclude='./bitrix/managed_cache' --exclude='./bitrix/stack_cache' --exclude='./upload/resize_cache' --exclude='./stats' . >> /dev/nool 2> /var/log/backup_error.log
        rm -f $SITEDIR/$ELEMENT/$WEB/$DBNAME\-$DATE.sql # поскльку ложим на реальный сайт, ибо нормально добавить в архив не получитяс.

        echo "Сохраняем $ELEMENT на FTP"

        echo "wput  --basename=$TMPDIR --limit-rate=60000K --timestamping  --remove-source-files --tries=2 $TMPDIR/$DATEYM/$ELEMENT-$DATE.tar.gz ftp://$FTPUSER:$FTPPASS@$FTPHOST$FTPDIR"
        wput --disable-tls --basename=$TMPDIR --limit-rate=60000K --timestamping  --remove-source-files --tries=2 $TMPDIR/$DATEYM/$ELEMENT-$DATE.tar.gz ftp://$FTPUSER:$FTPPASS@$FTPHOST$FTPDIR
        rm -f $TMPDIR/$DATEYM/$ELEMENT-$DATE.tar.gz
echo -en "\n\033[37;1;41m Ссылочка:\033[0m \e[1;4;36mwget ftp://u148-sub4:W3qyu9NRcVVi51bN@$FTPHOST/$DATEYM/$ELEMENT-$DATE.tar.gz\e[0m\n\n" #ks02
  done
rm -r $TMPDIR
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
demon416nds
@demon416nds
Разработчик на чем попало
Rsync
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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