Shell-Script
收集所有 sar 數據
任務:
我可以
sar -u > tmp.csv
而且我可以sar -r > tmp.csv
但我需要的是一個包含所有選項的所有 sa* 文件的大表。sar -r -u -S -q > tmp.csv
不能很好地完成工作
問題
sar -r
和的長度sar -u
可能會有所不同。其中一個是 3625,另一個是 3650,這是不可接受的。可能的解決方案
對於我所做的每個 sa* 文件,我都會這樣做
sar -r sa* > sar_r_sa*.csv
,-r -u -S -q
我會得到大約 120 個數據文件,我可以通過第一列(例如())以某種方式與 Python 合併7,50,01
。但我覺得這個問題有一個更簡單的解決方案。
問題
我應該如何在一個文件中收集所有數據
您可以嘗試
join
將所有數據收集到一個文件中:join <(join <(sar -q) <(sar -S)) <(join <(sar -u) <(sar -r))
試試這個:
paste <(sar -r) <(sar -u) <(sar -q) <(sar -S) > sar.out
範例輸出:
12:00:01 AM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit 12:00:01 AM CPU %user %nice %system %iowait %steal %idle 12:00:01 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 12:10:01 AM 1737724 6311336 78.41 22036 85856 5583532 45.60 12:10:01 AM all 3.92 0.00 8.85 0.01 0.00 87.22 12:10:01 AM 2 872 1.00 1.00 1.00 12:20:01 AM 1737228 6311832 78.42 22484 85860 5582312 45.59 12:20:01 AM all 3.93 0.00 8.83 0.01 0.00 87.23 12:20:01 AM 2 871 1.00 1.01 1.00 12:30:01 AM 1736764 6312296 78.42 22956 85852 5582192 45.59 12:30:01 AM all 3.96 0.00 8.79 0.01 0.00 87.24 12:30:01 AM 2 871 1.00 1.00 1.00 12:40:01 AM 1735636 6313424 78.44 23420 85868 5582264 45.59 12:40:01 AM all 3.92 0.00 8.85 0.01 0.00 87.22 12:40:01 AM 2 871 1.00 1.00 1.00 12:50:01 AM 1734644 6314416 78.45 23884 85872 5582248 45.59 12:50:01 AM all 3.90 0.00 8.86 0.01 0.00 87.22 12:50:01 AM 2 871 1.00 1.00 1.00 01:00:01 AM 1733992 6315068 78.46 24356 85876 5582252 45.59 01:00:01 AM all 3.95 0.00 8.79 0.01 0.00 87.24 01:00:01 AM 2 871 1.00 1.00 1.00 01:10:01 AM 1731508 6317552 78.49 24836 85892 5583444 45.60 01:10:01 AM all 3.95 0.00 8.80 0.01 0.00 87.24 01:10:01 AM 2 872 1.00 1.00 1.00 01:20:01 AM 1732028 6317032 78.48 25304 85880 5582144 45.59 01:20:01 AM all 3.95 0.00 8.80 0.01 0.00 87.24 01:20:01 AM 2 871 1.00 1.00 1.00 01:30:01 AM 1730776 6318284 78.50 25752 85888 5582324 45.59 01:30:01 AM all 3.95 0.00 8.79 0.01 0.00 87.25 01:30:01 AM 2 871 1.00 1.00 1.00 01:40:01 AM 1729152 6319908 78.52 26224 85892 5582404 45.60 01:40:01 AM all 3.95 0.00 8.79 0.01 0.00 87.25 01:40:01 AM 2 871 1.00 1.00 1.00
注意:您將在最終輸出中有重複的時間列