2016-01-11 5 views
0

Я хотел бы создать функцию, которая может запускать удаленный скрипт через SSH, который передает журналы Rails. В настоящее время, я должен сделать это вручную:Запустить команду SSH для потока журналов Rails

ssh dev_server 
cd /var/log/.../rails_app 
tail -f production.log web.log 

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

+0

Вы можете рассмотреть возможность установки https://airbrake.io/ вместо –

ответ

1

Как насчет того, чтобы просто запустить команду, которую вы хотите в своем первоначальном ssh-соединении?

ssh dev_server 'tail -F /var/log/.../rails_app/log/*log' 
  • Использование -F вместо -f будет следовать имя файла, а не индексные. Удобно, если ваши журналы постоянно вращаются

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

ssh dev_server my_tail_script 

Вы можете также псевдоним это локально и просто вызова ваш псевдоним:

# put this line into your `.bashrc` or `.profile`: 
alias tl='ssh dev_server my_tail_script' 

# Now you can just call your alias: 
tl 
+0

я бы не создать отдельный скрипт только для этого, я предпочитаю команду инлайн. Но я получаю эту ошибку, когда пытаюсь ее запустить: 'zsh: совпадений не найдено:/var/log/rails_app/* log'. Путь к журналам правильный. – linkyndy

+0

Попробуйте это полностью. Это может быть интерполяция имени файла локально перед отправкой команды. – Jon

+0

Действительно, это сработало. Спасибо. Таким образом, невозможно использовать там глобусы? Как я могу заставить его интерполировать имя файла удаленно, а не локально? – linkyndy

Смежные вопросы