コマンドラインから一晩スクリプトを実行していたところ(Linux EC2インスタンスのScreen内)、追跡していなかったいくつかのエラーが発生しました。私は「スクロールアップ」するか、またはScreenでもっと多くの履歴を見たいのですが、うまくいくようなコマンドが見つからないようです。
現在の画面よりもさらに上の画面上の出力を確認する必要があります。 Ctrl + aを押すと、Screen内でスクロールモードになるはずですが、うまくいきません。
Screenを起動するときには、-hでスクロールバックバッファのサイズを指定できるので、デフォルトの100行から増やすことができます。ただし、現在実行中の画面では、データがバッファを離れた後は消えています。
エスケープシーケンスを上書きしていないと仮定すると、Ctrl-a [
を押してスクロールバックモードに入り、次に通常のPage-UP/Page-DOWNまたはCtrl-b/Ctrl-fを使って上下に移動できます。
スクリーンの使い方に関するGentoo Wikiから
出力をディスクに記録するscript
コマンドでコマンドを実行することもできます。あるいは、command 2>&1 | tee /tmp/cmd.out
:将来の調査のために出力をログに記録するために、(実質的に)無限大の出力履歴が必要でした。
実行中の画面のスクロールバック履歴サイズをCTRL-a
:
(screenコマンド行モードに入る)の順に変更し、10k行の履歴バッファが必要な場合はscrollback 10000
と変更することもできます。変更はすぐに適用されます。
非常に長いバッファを持つ画面を多数使用する場合は、メモリ使用量に注意してください。
しかし、@William Pursellが言っていたように、現在実行中の画面では、データがバッファを去るとそれは消えてしまいます。
現在の画面よりもさらに上の画面上の出力を確認する必要があります。 Ctrl + aを押すと、Screen内でスクロールモードになるはずですが、うまくいきません。
他の答えを補足するために、私はあなたがあなたの~/.screenrc
ファイルに追加することができることを指摘するでしょう:
defscrollback 100000
termcapinfo xterm ti@:te@
ここで、
使用している端末プログラムによっては、通常、設定の下にあるスクロールバッファを変更できます。 xterm
では最初にScrollingを有効にしなければならないことを知っています、それからあなたはバッファを無限に設定することができます。
ただし、スクリプトをログに記録するための最善の策は、標準出力をファイルにリダイレクトすることです。
ScriptName >> OutputFile.txt
こうすることで、レコードを保存するだけでなく、スクロールや検索を自由に行うことができます(つまり、コンピュータがクラッシュした場合)。
編集:これは上記の配管の解決方法に近いですが、標準入力のリダイレクトは他の場合にも便利です。
grep linux stackoverflow.txt > linuxquestions.txt
または
cat linuxquestions.txt | grep buffersize > bufferquestions.txt