Журнал оболочки Echo при входе и выходе

Журнал оболочки Echo при входе и выходе

Пока я печатаю команду, эта команда аутентифицируется на удаленном сервере и делает кучу вещей. Если пройдет, она даст мне оболочку bash с ее окружением.

Моя цель — сохранить эти журналы, которые выводятся на мой терминал для будущей проверки. Допустим, моя команда называется target.

При вводе target выдается следующее сообщение.

Version:        V1.94
Options:
Date:           Thu Jun  6 17:18:39 2019
OS:             CentOS release 6.10 (Final)
....
[DEV]target>

Обратите внимание, что последняя строка подразумевает, что я вошел в целевую среду оболочки.

Я пробовал echo $(target) > output.log, но он зависает, пока я не наберу текст CTRL+C.

Среда: CentOS 6.10

Обновлять

Допустим, я хочу, чтобы этот скрипт автоматически запускался при активации моей машины. Однако он все равно зависнет при выполнении целевой команды, поскольку вошел в оболочку и не вышел.

#!/bin/bash
script -c target output.log
FILENAMEME=output.log
aws s3 cp "$FILENAME" s3://logs/

решение1

Вы можете попробовать script:

script -c target output.log

Это запустит команду targetи сохранит расшифровку всего сеанса, пока targetне будет завершена, в файле output.log. Если команда (ваша target) состоит из нескольких слов, укажите полную команду.

См. руководство для script( man script).

решение2

Если вы не можете изменить targetсаму команду, то это должно быть полезно:

target | tee output.bak

output.bakбудет содержать копию всех выходных данных (в этом примере только stdout), поэтому вам придется обрезать его, если вам нужна только начальная информация.

Связанный контент