Saoの操作| Linuxターミナルでエレガントに録音する方法は?

Saoの操作| Linuxターミナルでエレガントに録音する方法は?

はじめに
Linuxオペレーティングシステムを初めて使用するとき、履歴コマンドを検索すると、最初に履歴コマンドが見つかります。以前に操作したコマンドが表示され、出力プロセスと操作の結果を表示できません。コマンド。

しかし、時々、このサーバーで何が動作しているのか知りたいですか?実行のプロセスは何ですか?出力結果はどうなりますか?履歴コマンドはもはや私たちのニーズを満たすことができないので、私たちは何をすべきですか?

Saoの操作| Linuxターミナルでエレガントに録音する方法は?

みんなにトリックを教える時が来ました。それがこの魔法のコマンドです-スクリプトとscriptreplay

1. Recording-
script scriptコマンド:Linuxターミナルでセッションプロセスを記録できます。

機能:端末でのすべての操作、実行コマンド、出力結果をローカルに記録できます。

Linuxディストリビューションには、スクリプトとscriptreplayの両方がデフォルトでインストールされます。この記事では、スクリプトはオペレーティングシステムの下で直接実行でき、scriptreplayには追加のインストールが必要です。

記録を開始し
、以下のコマンド実行すると、端末で実行された操作が記録されます。

# script -t 2>test.timefile -a test.txt
Script started, file is test.txt

現在のディレクトリに次の2つのファイルがあるかどうかを確認します


# ll
-rw-r--r--. 1 root root  1025 6月   4 07:32 test.timefile
-rw-r--r--. 1 root root  5772 6月   4 07:32 test.txt

test.timefileとtest.txtの2つのファイル名はカスタマイズできます。

test.timefile:主に、各コマンドがいつ実行されるかを記録する時系列ファイルを記録するために使用されます。

test.txt:主に実行されたコマンドの出力ファイルを保存するために使用されます。

共通パラメータオプション
-t:出力記録時間を指定するために使用されます。

-a:記録されたファイルを出力し、現在のコンテンツに新しいコンテンツを追加するために使用されます。

-c:対話型シェルではなく、コマンドを直接実行するために使用されます。

-f:ログファイルの出力中にログファイルの内容を表示するために使用されます。

-q:スクリプトコマンドをサイレントモードで実行するために使用されます。

-V:バージョンを表示して終了するために使用されます。

より詳細なパラメータオプションについては、manscriptコマンドを実行して表示できます。

次のコマンドを実行します。サイレントモードで実行でき、スクリプトを使用して起動と終了を表示せず、終了します。

# script -q -t 2>test.timefile -a test.txt

コマンドexitを実行するか、ショートカットキーCtrl + Dを使用して、記録を終了および終了します。

# exit
exit
Script done on 2016年06月04日 星期六 07时32分42秒

スクリプト実行プロセスを特定のディレクトリに
記録するには最初にxxx.shという名前の簡単なスクリプトファイルを作成し、関連するアクセス許可を付与します。

# vi helloworld.sh 
#!/bin/bash
echo hello world!
echo welcome to beijing!
echo Let's go to tian 'anmen square!

パラメータオプションを使用します。-cは、対話型シェルの代わりにコマンドを直接実行できます。スクリプト実行の時点を表示できます。

# script -qa "file.out" -c "/root/helloworld.sh"
hello world!
welcome to beijing!
Lets go to tian anmen square!
[root@localhost ~]# cat file.out 
Script started on 2016年06月04日 星期六 13时21分45秒
hello world!
welcome to beijing!
Lets go to tian anmen square!

関連するコマンド操作を実行し、デモを記録します
Saoの操作| Linuxターミナルでエレガントに録音する方法は?

2. Replay-
scriptreplay scriptreplayコマンド:Linuxターミナルに記録された結果を再生できます。

共通パラメータオプション
-t:タイミングを記録するファイルを含めるために使用されます。

-d:再生速度を倍数に加速するために使用されます(10進数の場合は遅くなります)。一部のバージョンにはこのパラメーターがない場合があります。

-f:各操作の直後にキャッシュを更新するために使用されます。このオプションが設定されていない場合、ファイルはリアルタイムで書き込まれません。

-s:スクリプト端末の出力ファイルを格納するために使用されます。

-V:バージョンを表示して終了するために使用されます。

scriptreplay
util-linux-ng-2.17.2.tar.gzパッケージのダウンロードパスをインストールします:https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.17/

# tar zxvf util-linux-ng-2.17.2.tar.gz
# cd util-linux-ng-2.17.2
# ./configure && make
# cp misc-utils/scriptreplay /usr/bin/
cp:是否覆盖"/usr/bin/scriptreplay"?y
# cd ..
# scriptreplay test.timefile test.txt

上記のコマンドscriptreplaytest.timefile test.txtを実行した後、前の操作が再生されます。

同期
使用には-fパラメーターオプションを使用します。一部のバージョンにはこのパラメーターがありません。また、tail-fコマンドを使用して操作することもできます。

次の図に示すように、2つのxshell端末を開き、同じデバイスに接続して、関連する同期操作を実行する必要があります。左側の画面は操作端末、右側の画面はデモ端末です。

左側の画面ターミナルでコマンドスクリプト-fjacktianを実行します

右側の画面のターミナルでコマンドtail-fjacktianを実行します

そうすれば、左側の画面端末で関連するコマンドを実行するだけで、右側の画面に左側の画面の関連する出力結果などが表示されます。

Saoの操作| Linuxターミナルでエレガントに録音する方法は?


上記の操作に加えて、最初から起動して、ログイン時にスクリプトコマンドを自動的に実行し、シェル環境構成ファイルに追加することもできます。

ディレクトリ/ var / log / user_recordを再帰的に作成します

# mkdir -p /var/log/user_record

ファイル/ etc / profileを編集して、次の自動起動構成項目を追加します

# vi /etc/profile

script -t -f -q 2>/var/log/user_record/$USER-$UID-`date +%Y%m%d%H%M%S`.time -a /var/log/user_record/$USER-$UID-`date +%Y%m%d%H%M%S`.who
if [ "$SHLVL" = 1 ]; then
   exit
fi

まとめ
1.実行したコマンドをビデオファイルとして記録してローカルに保存します
。2。実行したコマンド出力ファイルの結果を保存して友達と直接共有します
。3。実行したコマンド出力ファイルの結果を保存して詳細を表示できます。プロセスおよび関連するエラーなど
。4 。問題が発生し、操作するために他の人の支援が必要な場合は、実行プロセスが速すぎるのを防ぎ、記録を開始して再生
を監視します。デバイスに接続されている関連操作など。

おすすめ

転載: blog.51cto.com/15067236/2606422