Как можно через одно ssh-соединение сделать несколько действий?

Хочу поставить на крон скрипт, который будет бекапить данные по ssh. Бекап по идее будет состоять из трех действий:

1) Скопировать предыдущий бекап в новую папку хардлинками. Видимо так:
ssh user@server cp --link from/ to/

2) Закачать бекап базы данных. Видимо, так:
scp database.tar.gz user@server:to/

3) Синхронизировать новые файлы с помощью rsync

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

Вопрос в следующем: каждая из этих команд установит свое собственное ssh-соединение. Может, конечно это не так долго по сравнению со временем самого бекапа, но все равно это не кошерно. Можно как-то сделать это все через одно ssh-соединение?
  • Вопрос задан
  • 3223 просмотра
Решения вопроса 1
kondor
@kondor
Возможно Вам стоит посмотреть в сторону ключика "-M" у ssh. Эта опция позволяет использовать уже установленное соединение с удаленным хостом для новых ssh сессий с тем же хостом. Чуть подробнее с небольшим примером: www.linuxjournal.com/content/speed-multiple-ssh-connections-same-server
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 4
@mihmig
попробуйте монтировать удаленную ФС через sshfs
Ответ написан
@ComodoHacker
По-моему то, что вы хотите, уже придумано и отлажено, и называется rsnapshot
Ответ написан
Комментировать
hshhhhh
@hshhhhh
Ну первое можно объеденить со вторым, но чтобы качать в два потока (базу и rsync) прийдется делать два коннекшена.

А получение списка дирректорий и прореживание бекапов лучше запихнуть в скрипт на той стороне. Еще лучше в крон.
Ответ написан
@phasma
Может Bacula?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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