Shell: получение данных с удаленного хоста и выполнение некоторых других команд - PullRequest
1 голос
/ 26 января 2011

Мне нужно создать сценарий оболочки, чтобы сделать это:

  1. ssh на другой удаленный хост
  2. используйте sqlplus на этом хосте и команду spool для получения данных из oracle db в файл
  3. перенести файл с этого хоста на мой хост
  4. извините другой сценарий оболочки для обработки файла данных

Я закончил 4-й шаг сценария оболочки. Теперь я должен сделать это 4 шага один за другим. Я хочу создать сценарий и сделать их все. Это возможно? Как перенести данные с одного хоста на мой хост?

Я думаю, что, возможно, файл БД не нужен.

Примечание: мне нужно ssh на другой хост, чтобы использовать sqlplus. Это единственный хост, у которого есть разрешение на доступ к базе данных.

Ответы [ 2 ]

5 голосов
/ 26 января 2011
# steps 1 and 2
ssh remote_user@remote_host 'sqlplus db_user/db_pass@db @sql_script_that_spools'
# step 3
scp remote_user@remote_host:/path/to/spool_file local_file
# step 4
process local_file

Или

# steps 1, 2 and 3
ssh remote_user@remote_host 'sqlplus db_user/db_pass@db @sql_script_no_spool' > local_file
# step 4
process local_file

Или все в одном:

ssh remote_user@remote_host 'sqlplus db_user/db_pass@db @sql_script_no_spool' |
  process_stdin
0 голосов
/ 26 января 2011

Что ж, Гленн в значительной степени подытожил все это.

Чтобы упростить свою жизнь, вы можете также рассмотреть возможность установки ssh без пароля.С этим связан немного более высокий риск безопасности, но во многих случаях риск незначителен.

Вот ссылка на хороший учебник .Это учебник на основе Debian, но данные команды должны работать одинаково на большинстве основных дистрибутивов Linux.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...