コマンドを入力すると、コマンドはリモートサーバーで認証され、一連の操作を実行します。パスすると、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
すべての出力のコピー(この場合は標準出力)が含まれているため、初期情報のみを希望する場合はそれをクリーンアップする必要があります。