1

как можно выполнить команду на удаленной машине? имеется ввиду что нужно например либо заставить запуститься скрипт на машине 2 из-под машины 1, но не устанавливая конект по ссш, либо заставить ее продолжить выполнение команды после установления конекта по ссш.
как пример: на машине 1 вводим команду, которую выполнит вторая машина: создать пустой файл
тоесть глобально: я делаю выгрузку из pgsql и хочу чтобы после перемещения файла на другой комп эта выгрузка загрузилась в ту sql, но я не знаю как заставить машину выполнить команду не вводя ее вручную ведь после коннекта по ссш рабочая машина не перенесет продолжение выполнения введенной команды на новую машину

2

одно из двух:
если нужно, чтобы сессия была активна до конца выполнения команды , тогда ssh <host> <command>
если нужно сразу закрыть сессию, то смотрите в сторону nohup или screen

95% процентов проблем находятся между клавиатурой и стулом.

3

я хочу 1 раз ввести команду, пускай длинную, и чтобы она продолжила свое выполнение на другой машине, чтобы не приходилось вводить ее заново.
а-ля "выгружаем базу | зипуем && передаем по сети && устанавливаем коннект по ссш && раззиповываем и загружаем в новую sql"

4

Fat-Zer пишет:

одно из двух:
если нужно, чтобы сессия была активна до конца выполнения команды , тогда ssh <host> <command>

спасибо именно этого я и хотел =)

5

ssh <host> <command>

но не устанавливая конект по ссш

...

— Ты кто?
— Часть силы той, что без числа
Творит добро, всему желая зла. © Фауст

6

по порядку:

bykva пишет:

выгружаем базу | зипуем

с этим у вас же проблем нет?

bykva пишет:

передаем по сети

scp, проблем нет

bykva пишет:

устанавливаем коннект по ссш && раззиповываем и загружаем в новую sql

для второй части можно сделать небольшой скриптик,тогда нужно только ssh <host> mega_unbackup_script.sh
перед mega_unbackup_script.sh можно поставить nohup(см. man), чтобы не ждать окончания...

ЗЫ: чтоб всё это автоматом в крон засунуть ещё стоит освоить аутентификацию по ключу.

95% процентов проблем находятся между клавиатурой и стулом.

7

Fat-Zer пишет:

по порядку:

вобщем-то я решил проблему. в конечном виде все выглядит вот так:

sudo mkdir /home/temp_before && sudo -u postgres pg_dump -h localhost -U postgres -c DocMng | gzip >> /home/temp_before/DocMng.gz && scp /home/temp_before/DocMng.gz root@192.168.0.5:/home/DocMng.01.02.12.gz && rm -rf /home/temp_before && ssh root@192.168.0.5 sudo -u postgres gunzip -c /home/DocMng.gz | psql -h localhost -U postgres DocMng

8

bykva пишет:

ssh root@192.168.0.5 'sudo -u postgres gunzip -c /home/DocMng.gz | psql -h localhost -U postgres DocMng'

кавычки забыли
и root'у ssh-доступ давать не лучшая идея

95% процентов проблем находятся между клавиатурой и стулом.

9

Fat-Zer пишет:

кавычки забыли

а у меня и без кавычек работает  wink

10

bykva пишет:

а у меня и без кавычек работает

а вот и нет. последняя команда выполняется локально, а не удалённо... можете изменить локальную базу и проверить - удалённая не изменится.

по идее должно работать и без сжатия:

sudo -u postgres pg_dump -h localhost -U postgres -c DocMng |  ssh root@192.168.0.5 'psql -h localhost -U postgres DocMng'

при желании в середину можно вставить сжатие.

95% процентов проблем находятся между клавиатурой и стулом.

11

Fat-Zer пишет:
sudo -u postgres pg_dump -h localhost -U postgres -c DocMng |  ssh root@192.168.0.5 'psql -h localhost -U postgres DocMng'

при желании в середину можно вставить сжатие.

не совсем понимаю как будет работать конвеер...  выгрузку из базы направить на ввод ссш, вот в этом месте как будет реализовано?

12

bykva пишет:

выгрузку из базы направить на ввод ссш, вот в этом месте как будет реализовано?

ssh просто перенаправляет всё это на вход psql на удалённом хосте.
с gzip'ом такое без проблем срабатывает... ИМХО с psql тоже проблем быть не должно...

95% процентов проблем находятся между клавиатурой и стулом.

13

ага, спасибо, попробую!