記録端末出力のLOGからファイルへ

3281 ワード

まず、なぜ端末セッションを記録するのかを説明します.このような状況に遭遇することが多いため、端末にはキャッシュサイズの制限があり、端末で印刷されたメッセージがキャッシュ範囲を超えた場合、その前の印刷メッセージが自動的に失われます.これはデバッグプログラムに支障をきたすため、完全な端末印刷メッセージを記録する必要があります.
1 Linuxターミナルセッションをscriptで記録する
scriptは、ほとんどのLinux製品util-linuxパッケージの一部です.
scriptはセッションのすべての内容を記録します:あなたが入力した内容とあなたが見た内容.色さえ記録されていますしたがって、コマンドプロンプトまたはプログラム出力に色が含まれている場合は、scriptが記録します.
scriptを使用するには、次のコマンドを簡単に実行します.
$ script

デフォルトでは、現在のディレクトリのtypescriptファイルにコンテンツが書き込まれます.そして、あなたが入力したすべての内容がそのファイルに記録されます.別のファイルにログを記録するには、script/path/to/fileコマンドを使用します.
レコードが完了したら、exitを入力して終了します.このコマンドはscriptセッションを閉じてファイルを保存します.catまたは他のプログラムを使用してログファイルをチェックできます.
Ubuntu/または他のlinuxで実行します.
script screen.log

記録を開始し、
スクリーン情報をscreenに記録する.ロゴには、exitまで記録して、スクリーンのロゴを記録する良い方法があります...
終了レコード:
exit
インスタンスの使用
 
  •  
  • aulyp@ubuntu:/home/workspace/Android _eclair_smdk6410$ sudo script screen.log //¿ªÊ¼¼Ç¼
  •  
  • [sudo] password for aulyp:
  •  
  • Script started, file is screen.log
  •  
  • root@ubuntu:/home/workspace/android_eclair_smdk6410# sudo make clean
  •  
  • ============================================
  •  
  • PLATFORM_VERSION_CODENAME=REL
  •  
  • PLATFORM_VERSION=2.1
  •  
  • TARGET_PRODUCT=generic
  •  
  • TARGET_BUILD_VARIANT=eng
  •  
  • TARGET_SIMULATOR=
  •  
  • TARGET_BUILD_TYPE=release
  •  
  • TARGET_ARCH=arm
  •  
  • HOST_ARCH=x86
  •  
  • HOST_OS=linux
  •  
  • HOST_BUILD_TYPE=release
  •  
  • BUILD_ID=ERD79
  •  
  • ============================================
  •  
  • Cleaning out/target/product/generic...
  •  
  • Cleaning out/target/common...
  •  
  • Cleaning out/host/linux-x86...
  •  
  • Cleaning out/host/common...
  •  
  • Clean.
  •  
  • root@ubuntu:/home/workspace/android_eclair_smdk6410# exit //Í˳ö¼Ç¼
  •  
  • exit
  •  
  • Script done, file is screen.log
  •  
  • aulyp@ubuntu:/home/workspace/android_eclair_smdk6410$

  •  
     
     
    解決策は見つかったが、異常終了も問題なくlogを記録し、パラメータを加える必要がある、script-f ido.logは、1つの端末でmkfifo idoを使用する場合に用いる.log;script -f ido.logは別の端末にログインし、このidoを見つけます.logファイル、tail-fはあなたの操作の内容をスクロールして出力します..これはとても便利です...
    2.scriptを使用する欠点は、すべての特殊な文字を記録することです.したがって、入力したファイルには、制御文字とANSIエスケープシーケンスが満たされます.この問題を解決するにはscriptで非常に簡単なshellを使用します.
    SHELL=/bin/bash PS1=”$ ” script

    scriptを使用する場合は、vior topなどのインタラクティブなプログラムやウィンドウを処理するプログラムを使用しないでください.セッションの出力結果を破壊します.また、ログ・ファイルには、使用しているコマンド・ライン・プログラムと、タスクを完了するためのステップが記録されます.スクリプトでファイルを編集する必要がある場合は、scriptセッションを終了し、古いセッションの後に新しいセッションを追加するscript–aでファイルを編集してからセッションを再起動します.