cronを実行すると、topの出力が80列に切り捨てられます。

cronを実行すると、topの出力が80列に切り捨てられます。

次のログ記録スクリプトがあります。

#!/bin/bash
top -b -c -n 1 >> /var/log/toplog/top.log

私のcrontabの記録は次のとおりです。

*/1 * * * *     /home/clime/scripts/toplog.sh

問題はtop.logの行が80文字に切り捨てられることです。たとえば、次のようになります。

 1512 root      20   0 80756 1436  572 S  0.0  0.1   0:05.92 /usr/libexec/postfi

コンソールから直接コマンドを実行すると、これは発生しません。

COLUMNS変数を使ってみました。

*/1 * * * *     COLUMNS=999 /home/clime/scripts/toplog.sh

ただし、これにより各行の長さは999文字になります。未使用のスペースは空白で埋められますが、これは私が望むものではありません。

この奇妙な問題を解決するには?私のシステムはcentos 6.3です。

ベストアンサー1

topスペースは常に最後の画面列まで表示されます。末尾の空白のある行と空白のない行を視覚的に区別できないため、端末に印刷するときにそれを認識しません。マウスを使ってコピーして貼り付けるscreen

スペースを削除するには、スペースをフィルタリングします。

COLUMNS=9999 top -b -c -n 1 | sed 's/  *$//' >>/var/log/toplog/top.log

何のために走っていても、おそらくtopより良い選択肢があります。監視装置利用可能なツール。

おすすめ記事