LINUX.ORG.RU
ФорумAdmin

Безопасное резервное копирование с VPS на VPS

 ,


1

2

Есть 2 впс сервера на 1 vps Веб сервер и сайт. есть скрипт.

tar -czvf /root/site.gz /var/www/site.ru 
tar -czf BackupALL_myVPS_`date "+%Y-%m-%d"`.tar.gz site.ru.gz  

задача как и через что слить этот Архив Дампа сайта на Вторую VPS что-бы это было безопасно. на выходе будет иметь дамп с датой.

BackupALL_myVPS_2017-05-07.tar.



Последнее исправление: shrmvl (всего исправлений: 3)

Что в вашем понимании безопасно?

если регулярно - sftp или rsync over ssh. для единоразовой передачи, если есть https - можете даже по https.

l0stparadise ★★★★★
()
Последнее исправление: l0stparadise (всего исправлений: 1)
Ответ на: комментарий от l0stparadise

безопасно

это типа не просто через FTP ну sftp вполне отлично.

так как Script продолжить что-бы соединилось с сервером и слило туда архив именно с этой датой?

shrmvl
() автор топика

базу копировать не нужно ?

Deleted
()

scp -i $(тут путь к ssh-ключу) $(тут путь к архиву) root@$(тут адрес сервера):$(путь куда слить архив на сервере)

Pyzia ★★★★★
()

Такое ощущение, что ты пользуешься машинным переводом на русский.

Готовый скрипт тебе здесь вряд ли дадут. А так — man rsync, man ssh. Напоминаю, что ssh пригоден для передачи любых потоков байт, т. е. cat *.tar.gz | ssh host 'tar -xz'.

intelfx ★★★★★
()
Ответ на: комментарий от Pyzia

Пугайте=)

вот так все работает.

scp -P 2221 /root/test cloud@server:/home/cloudХ

а вот так: НЕТ

scp -P 2221 /root/BackupALL_myVPS_`date "+%Y-%m-%d"`.tar.gz
cloud@server:/home/cloudХ

Пишет /root/BackupALL_myVPS_2017-07-11.tar.gz: No such file or directory

как же ему объяснить что-бы на дату внимание не обращал или брал самую последнюю дату. ? и делал BackUP

shrmvl
() автор топика
Ответ на: комментарий от shrmvl

Очевидно, нужно исключить `date «+%Y-%m-%d»`, ведь эта команда вставляет текущую дату. Предположительно вам нужно отсортировать содержимое каталога по дате и копировать последний, например:

scp -P 2221 /root/`ls -tr | tail -1` cloud@server:/home/cloudХ

Pyzia ★★★★★
()
Последнее исправление: Pyzia (всего исправлений: 1)
Ответ на: комментарий от Pyzia

Как быть с Авторизацией?

вот так все сработало. но просит логин и пароль от сервере куда заливать. как прописать тут логин и пароль?

scp -P 2221 /root/`ls -tr | tail -1` cloud@server:/home/cloudХ 
shrmvl
() автор топика
Ответ на: комментарий от Pyzia

ls -tr | tail -1

Оно, конечно, правильно, но зачем мозг то насиловать сортировкой с реверсом и взятия последнего? :)

vodz ★★★★★
()
Ответ на: комментарий от Pyzia

Вот такая проблема.

ВОТ ТАК РАБОТАЕТ.

scp -P 2221 /root/`ls -tr | tail -1` cloud@server:/home/cloud/

А Вот так нет:

scp -P 2221 /root/cloud/`ls -tr | tail -1` cloud@server:/home/cloud/

G Пишет > /root/cloud/cloud: No such file or directory если с папки root фаил то копирует! если с папки root/cloud то пишет

/root/cloud/cloud: No such file or directory

где тут ошибка?

shrmvl
() автор топика
Ответ на: комментарий от shrmvl

в Общем вот так не работает и все. Найдите ошибку!? Помогите порешать что ему не нравиться ?

root@vps412901://# scp -P 2221 /root/cloud`ls -tr | tail -1` cloud@server:/home/cloud/
cloud@server 's password:

/root/cloudroot: No such file or directory
root@vps412901://#

Если Указать имя файла то работает: то есть вот так ->

scp -P 2221 /root/cloud/filname cloud@server:/home/cloud/

shrmvl
() автор топика
Ответ на: комментарий от shrmvl

″ls″ выводит файлы из текущего каталога. В принципе не верно складывать вывод ″ls″ и какой-то путь спереди:

cd cloud 
scp -P 2221 `ls -tr | tail -1` cloud@server:/home/cloud/

mky ★★★★★
()

Создание файла с архивом и копирование архива на удалённый сервер лучше сделать в одном скрипте, чтобы не гадать какое использовать имя файла.

DEST=/home/cloudХ/BackupALL_myVPS_`date "+%Y-%m-%d"`.tar.gz
tar cvzf - /var/www/site.ru/ | ssh cloud@server "cat > $DEST"
Этот скрипт будет каждый раз спрашивать пароль от cloud, что не удобно.
Чтобы не вписывать пароли в скрипты, то лучше для пользователя cloud сделать авторизацию по ключам. Как настроить - см. в гугле.

Nao ★★★★★
()
Последнее исправление: Nao (всего исправлений: 1)
Ответ на: комментарий от Nao

Создание файла с архивом и копирование архива на удалённый сервер лучше сделать в одном скрипте, чтобы не гадать какое использовать имя файла.

Не всегда. Связи с внешним хранилищем/оплаченного места/etc может не быть, а место для архива и ситуация, когда: «OOPS, чёрт... О, а есть же вчерашний архив!» может присутствовать.

vodz ★★★★★
()
Ответ на: комментарий от shrmvl

Как под Другому?

Имелось в виду без насилия над мозгом: ls -t | head -1

vodz ★★★★★
()
Ответ на: комментарий от shrmvl

Чуток тупанул и правда, можно как уже сказали:

scp -P 2221 `ls -t /root/cloud/ | head -1` cloud@server:/home/cloud/

Чтобы не запрашивало пароль, юзай ssh-ключи, man ssh-keygen

Pyzia ★★★★★
()
Ответ на: комментарий от Nao

в моем случае как правильно дописать?

вот мой скрипт

tar -czvf /root/cloud/sites.ru.gz /var/www/site.ru 
mysqldump -uUser -pPass base >  /root/cloud/base.sql 


tar -czf /root/cloud/BackupALL_myVPS_`date "+%Y-%m-%d"`.tar.gz site.ru.gz base.sql
shrmvl
() автор топика
Ответ на: комментарий от shrmvl

Типо того:

#!/bin/bash

set -u -e

cd /root/cloud/

tar -czf sites.ru.gz /var/www/site.ru 
mysqldump -uUser -pPass base > base.sql 

DEST=/home/cloudХ/BackupALL_myVPS_`date "+%Y-%m-%d"`.tar.gz
tar cvzf - sites.ru.gz base.sql | ssh cloud@server "cat > $DEST"

/home/cloudХ/ это путь на удалённом сервере.
Можно сайт вообще не паковать отдельно, а делать сразу
tar cvzf - /var/www/site.ru base.sql

Ещё особенность в том что если в течении дня сделаешь больше одного бекапа, то старый бекап за этот день перезапишется новым.
Можно добавить время к имени файла для этого случая...

А ещё нужно подумать что будет когда на удалённом сервере бекапов станет много и место закончится...

Короче скрипт можно улучшать долго ;)

А можно взять готовое решение типо rdiff-backup, rsnapshot или там какой-нибудь ещё и не наступать на грабли.

Nao ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.