ubuntuの拡張ターミナルソフトウェアTerminatorで作業ログを自動保存する
Terminatorとは?
ubuntuの拡張ターミナルソフトウェアで以下の画像のように画面を簡単に分割して作業できます。ターミナルで複数画面を同時に表示できるため大変便利です。(インストール方法、操作方法はググると大量に情報が出てくるので省略)
作業ログの自動保存を試みる
いろいろとググッてみて解ったこと
- ログの出力にはscriptコマンドを使う
- OS起動時に自動で保存したい場合は
~/.profile
に設定する
今回は分割した画面毎にログを出力したいので~/.bashrc
にこんな感じで設定してみました。
script ~/log/term/`whoami`_`date '+%Y%m%d%H%M%S'`
PCを再起動して確認しようと期待したところ・・
デスクトップ画面が表示されない!!
こんな状態になってしまいプチパニック状態!
またまた調べて、こちらの方が似た事象だったので参考にして復旧しました。 m12i.hatenablog.com
- Ctrl+Alt+F1キー入力⇒コンソール画面に遷移。
- 「login:_」という表示されるのでログインユーザ名を入力しEnter(パスワードを聞かれたら適宜入力しEnter)。
DISPLAY=:0.0 gnome-terminal
と入力しEnter。- Alt+F7キーを押下⇒デスクトップ画面に復帰し端末ウィンドウが表示される。
/.bashrc
を前回の状態に戻して保存する。sudo shutdown -r now
と入力してEnter⇒OSが再起動する。
原因は無限ループ
ここが参考になりました。 d.hatena.ne.jp
デスクトップ画面表示がおかしかった原因は無限ループらしい
scriptコマンドが起動するシェルも、さらにscriptコマンドを実行し、無限ループになってしまう
ついでにこのブログのscriptの設定をそのままパクって確認してみるもなぜかうまく行かず。。
しょうがないので、これを参考にして自分で作ってようやく解決しました。
~/.bashrc
に以下を追記すると分割画面毎にログを自動保存します。
#ログの自動採取 _LOGDIR="$HOME/log/term/" _SCRIPT="script" P_PROC=`ps aux | grep $PPID | grep $_SCRIPT |awk '{ print $11 }'` if [ "$P_PROC" != "$_SCRIPT" ]; then script `echo $_LOGDIR``whoami`_`date '+%Y%m%d%H%M%S'`_`echo $RANDOM|rev|cut-c 1-3|rev`.log fi