質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

コマンドライン

コマンドライン(別名:Command Line Interface)は、ユーザに命令の入力を促す(プロンプト)文字列の表示を行い、すべての操作をキーボードを用いて文字列を打ち込む事でプログラムを走らせるユーザインターフェースです。

シェル

シェル(shell)はUnix や Linux 系のOSで使用されるコマンドインタプリタを指します。

Q&A

解決済

1回答

2096閲覧

Linuxで実行コマンドを含めて作業ログを取得したい

pumiea

総合スコア15

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

コマンドライン

コマンドライン(別名:Command Line Interface)は、ユーザに命令の入力を促す(プロンプト)文字列の表示を行い、すべての操作をキーボードを用いて文字列を打ち込む事でプログラムを走らせるユーザインターフェースです。

シェル

シェル(shell)はUnix や Linux 系のOSで使用されるコマンドインタプリタを指します。

0グッド

3クリップ

投稿2020/09/09 16:06

■やりたいこと

Linuxにて手作業でコマンドを流して作業ログを取得しています。
このとき、実行コマンド・実行結果・プロンプトの3点を
ログに出力したいと考えています。

「ls」を実行した例を記載します。
コンソール上に結果を標準出力しつつ、
以下の5行を任意のログに出力するイメージです。

**root@book:20200910_10:34:05_home# ls **
alice
bob
carol
**root@book:20200910_10:34:06_home# **

■考えたこと

#####1. teeコマンド
$ ls |tee temp.log
ログ取得と標準出力はできますが、
コマンドとプロンプトの部分がログに含まれません。

#####2. scriptコマンド
$ script temp.log
$ ls
$ exit
3点すべてを取得可能ですが、ログに制御文字が含まれるため
閲覧するときに余計な手間暇がかかります。
(ログ参照は複数人で行う想定のため、手間は極力省きたいです)

#####3. コマンド文を文字列としてログファイルに書き出す
力技でコマンド文をログに書き出してから、コマンド結果もログ出力…
と思いましたが、プロンプトがログに含まれません。。

自分なりに何点か考えてみましたが、
納得のいく形ですべてを任意のログに出力することが適わず。。
実現するための方法や工夫すべき点などがありましたら
教えていただけますでしょうか。

■なぜそんな面倒なことを・・・

といった疑念はひとまず置いていただけると幸いです。

teratermやputtyのログから抜粋が確実ですが、
実作業においては工数的に現実的ではなく避けたいです。
もしシェルやpython、etc...などで実現可能なのであれば、
概要だけでもご教示いただけるとありがたいです。

以上、よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2020/09/09 16:14

> ログに制御文字が含まれるため閲覧するときに余計な手間暇がかかります。 scriptで不足する点を具体的に。
hentaiman

2020/09/09 16:29

目的書いた方が良いのでは?
pumiea

2020/09/09 16:33

エスケープシーケンスが記録されるため、 仮にlinux上でサイズの大きいログを「less」で閲覧すると これらが表示されてしまいとても見づらくなります。 実際のログ確認は複数人で行っており、それぞれOSやエディタも異なります。 個別に対応を案内するのもどうかと思い敬遠していました。
takasima20

2020/09/09 21:15

制御文字は strings コマンドで除去できるけど、素直にターミナルのログをコピペしといた方がいいんじゃないかなあ。
guest

回答1

0

ベストアンサー

scriptコマンドに一皮かぶせて、終了後にファイルからエスケープシーケンスを削除しておくような処理にすれば良いかと思います。

scriptコマンド実施中にファイルを途中まで覗きたいという場合は駄目ですが。

投稿2020/09/09 23:53

otn

総合スコア85901

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pumiea

2020/09/13 13:51

ご教示ありがとうございます。perlやcolコマンドで削除することにしました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問