記事ディレクトリ
ping遅延データの取得とネットワーク状況の分析
ネットワーク状況は頭を悩ませることがよくありますが、毎回手動で端末にpingを打つのは面倒ですので、スクリプトを書いてpingを実行し、データをタイムスタンプ付きでファイルに保存し、どの時間帯にネットワークが稼働しているかを解析するのがよいでしょう。比較的貧しいです。
ファイルを作成しますdemo.sh
。
#!/bin/bash
# 清理日志
net_path="./network/"
# 目录存在,删除修改时间为1天前的文件
if [ -d "${net_path}" ]; then
echo start delete log 1 days ago...
find "${net_path}"/* -name '*.txt' -mtime +1 -exec rm -rf {
} \;
echo end delete log ...
fi
output_file="./network/output.txt"
# 设置目标主机
target_host="baidu.com"
# 定义函数获取当前时间戳
get_timestamp() {
date +"%Y-%m-%d %H:%M:%S"
}
# 循环执行ping命令
while true; do
# 获取当前时间戳
timestamp=$(get_timestamp)
# 执行ping命令并抓取延迟时间
ping_result=$(ping -c 1 $target_host | grep time= | awk -F 'time=' '{print $2}' | cut -d ' ' -f 1)
# 输出带有时间戳的ping结果
echo "$timestamp - Ping: $ping_result ms"
echo "$timestamp - Ping: $ping_result ms" >> "$output_file"
# 等待1秒后继续执行
sleep 1
done
時間遅れのデータが保存されoutput.txt
、前日のファイルは自動的に削除されます。
最後に、テキストを Excel にインポートして、ネットワークがどのような場合に劣悪であるかを確認するグラフを生成できます。
|、||、&、&& の分析
縦棒「|」は Linux のパイプ文字を意味し、「|」の前のコマンドの出力は「|」の後の入力として使用されます。
二重垂直線 '||'、二重垂直線 '||' で区切られた複数のコマンドは、実行時に次の規則に従います。前のコマンドが true の場合、次のコマンドは実行されません。前のコマンドが false の場合、次のコマンドは実行されません。引き続き次のコマンドを実行します。
& コマンドの実行が成功したかどうかに関係なく、複数のコマンドを同時に実行します。
&& は同時に複数のコマンドを実行できます。間違ったコマンドが見つかった場合、後続のコマンドは実行されません。常にエラーがなければ実行は完了です。
これを使用する場合、「|」はパイプ文字、& は並列実行、「||」と && はそれぞれその上級バージョンであることに注意してください。
ティー
teeはファイル管理コマンドで、標準入力データを読み込み、その内容をファイルに出力します。好き:
tee 1.txt
ls -l | tee 2.txt
ターミナル出力やログなどを印刷するために使用できます。
しっぽ
tail コマンドを使用してファイルの内容を表示できます。共通パラメータ -f があり、これは変更中のログ ファイルを表示するためによく使用されます。好き:
tail 1.txt
tail -f 1.txt
ログ ファイルの変更を表示するために使用できます。
キオール
kill コマンドは指定されたプロセス PID を強制終了するため、ps とともに使用する必要がありますが、killall はプロセス名に直接作用するため、より便利です。kill の後には PID コードが続くことが多く、killall の後にはプロセス名が続くことがよくあります。好き:
kill -9 8178
killall -9 bash
killall -9 roscore
killall -9 rosmaster
プロセスを終了するために使用できます。
以上。