E
E
Evgeny Glebov2020-12-11 16:25:15
linux
Evgeny Glebov, 2020-12-11 16:25:15

Backup linux (folder + database) with sending to windows?

Hello. How can such a problem be solved?
I have my computer (windows) and a VPS with ssh access (debian + postgresql)
How can I make a backup (db + photo folder) and send it to me on my windows? Are there any ready made solutions?

Answer the question

In order to leave comments, you need to log in

2 answer(s)
V
Victor Taran, 2020-12-12
@GLeBaTi

will go? only wput needs to be delivered because it allows you to limit the speed
, you can also backup a separate site in the console by doing this scrypt.sh site.ru in this case, not all sats will be dumped, but only 1. Sharpened for Bitrix here, the databases also add up to sites. If you just need all the database, then you need to change 2 lines and ask mysql for the list of databases and dump them in a loop

#!/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:[email protected]$FTPHOST/$DATEYM/$ELEMENT-$DATE.tar.gz\e[0m\n\n" #ks02
  done
rm -r $TMPDIR

D
Dmitry, 2020-12-11
@demon416nds

Rsync

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question