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

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

ただいまの
回答率

90.51%

  • Linux

    4438questions

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

  • UNIX

    430questions

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

  • sh

    343questions

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

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

解決済

回答 1

投稿

  • 評価
  • クリップ 1
  • VIEW 817

kwy8791

score 29

*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 '" するようなイメージ)

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/01/28 12: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コマンドはどこだ?

    キャンセル

  • 2016/01/28 12: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 コマンド仕込めばなんとかなりそうな……。という感じで調査中です。

    キャンセル

  • 2016/01/28 12:06

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

    キャンセル

  • 2016/01/28 12:22

    コマンド書き忘れとは思いもしませんでした。
    場所は /var/tmp でなく、/var直下もしくは/var/logの下に専用の物を作った方が良いと思います。

    時刻ですが、
    ・プロンプトに時刻を含める
     ⇒正確なコマンド投入時刻は分からないが、絞り込める
    ・~/.history を保存する
     ⇒同じユーザーが複数端末から操作というのがあり得る場合はマージが必要
    ・auditの機能を使う
     ⇒よく知りません

    trapは関係ないと思います。

    キャンセル

  • 2016/01/28 12:25

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

    キャンセル

  • 2016/01/28 13:21

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

    キャンセル

同じタグがついた質問を見る

  • Linux

    4438questions

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

  • UNIX

    430questions

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

  • sh

    343questions

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