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

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

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

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

UNIX

UNIXとは、AT&Tのベル研究所で開発されたコンピューター用のマルチユーザー・マルチタスクのオペレーションシステム(OS)です。政府や教育機関や研究所で広範囲に採用されています。

sh

shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。

Q&A

解決済

1回答

2126閲覧

*inuxで、簡単にコマンドログを取りたい

kwy8791

総合スコア37

Linux

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

UNIX

UNIXとは、AT&Tのベル研究所で開発されたコンピューター用のマルチユーザー・マルチタスクのオペレーションシステム(OS)です。政府や教育機関や研究所で広範囲に採用されています。

sh

shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。

0グッド

1クリップ

投稿2016/01/28 02:18

*inuxで、

  • ssh 接続してコマンドを実行した時
  • GUI 上でterminal を開いてコマンドを実行した時

の履歴を残すために、ssh ログイン / terminal 起動時に、自動でログをどこか(例えば/var/tmp/ユーザー名/log )に出力させたいです。

  1. その方法を知りたいです(※ 現在、/etc/profile にscript コマンドを埋め込んでみたのですが、"/var/tmp/ユーザー名/log/ログファイル名 not found" となり、ログが取れません)

  2. コマンドを叩いた時刻も同時に取得できる方法があれば、教えていただきたいです(history コマンドで、"export HISTTIMEFORMAT='%y/%m/%d %H:%M:%S '" するようなイメージ)

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

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

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

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

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

guest

回答1

0

ベストアンサー

現在、/etc/profile にscript コマンドを埋め込んでみたのですが、"/var/tmp/ユーザー名/log/ログファイル名 not found" となり、ログが取れません)

script /var/tmp/$USER/log/logfile.txt のように書いたと言うことでしょうか?
/var/tmp/$USER/log というディレクトリは存在して、そのユーザーから書き込み可能ですか?
エラーメッセージからすると、ディレクトリが存在しない気がします。

投稿2016/01/28 02:54

otn

総合スコア84531

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

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

kwy8791

2016/01/28 03:02

あ、詳細書いたほうが良かったですね。現在の/etc/profileでは # set auto logging all commands if [ ! -d /var/tmp/$USER/log ]; then mkdir /var/tmp/$USER/log chmod 777 /var/tmp/$USER/log fi /var/tmp/$USER/log/`date +%Y%m%d-%H%M%S`-${USER}.log と、埋め込んでますので、ご指摘の「ディレクトリが存在しない」は回避できているかなと。 …………。あ。 scriptコマンドはどこだ?
kwy8791

2016/01/28 03:05

# set auto logging all commands if [ ! -d /var/tmp/$USER/log ]; then mkdir /var/tmp/$USER/log chmod 777 /var/tmp/$USER/log fi /usr/bin/script /var/tmp/$USER/log/`date +%Y%m%d-%H%M%S`-${USER}.log に変更したら動きました。 一応2 の方が残っているので未解決のままにしておきます。 trap コマンド仕込めばなんとかなりそうな……。という感じで調査中です。
kwy8791

2016/01/28 03:06

あれ? 解決済みになっちゃった。まぁいいか。
otn

2016/01/28 03:22

コマンド書き忘れとは思いもしませんでした。 場所は /var/tmp でなく、/var直下もしくは/var/logの下に専用の物を作った方が良いと思います。 時刻ですが、 ・プロンプトに時刻を含める  ⇒正確なコマンド投入時刻は分からないが、絞り込める ・~/.history を保存する  ⇒同じユーザーが複数端末から操作というのがあり得る場合はマージが必要 ・auditの機能を使う  ⇒よく知りません trapは関係ないと思います。
otn

2016/01/28 03:25

あと、/etc/profile にscriptを書くと、その時点で新たにシェルが起きますがそのシェルは、~/.bash_profileを読まず、~/.bashrc を読みますので、注意が必要かと。
kwy8791

2016/01/28 04:21

お、ありがとうございます。起動時の処理はホントどの順番で何が呼ばれてるのかわからなくて悩みます。 まぁそれを調べるのも楽しいんですがw。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問