ラベル Terminal の投稿を表示しています。 すべての投稿を表示
ラベル Terminal の投稿を表示しています。 すべての投稿を表示

2015年2月9日

Mac OS X で porg を使って "make install"したソフトを管理する

Porgは「make install」でインストールされるファイルの記録を取り、後で削除したりするのを簡単にするためのソフトです。
以前は Paco と言う名前でしたので、Paco に関する記事を見ると良いです。

"make install"したソフトウェアを管理できる超便利ツール「Paco」 - 元RX-7乗りの適当な日々

こういうのは MacPortsとかHomebrewとかを使うのが普通なのですが、make install も結構してしまうので使うと便利です。

porgのインストール

porg の最新版をダウンロードします。この記事を記述している時点だと「0.7」です。

curl -LO http://downloads.sourceforge.net/project/porg/porg-0.7.tar.gz

Mac で正常に動作させるにはパッチが必要ですのでダウンロードします。

curl -LO https://trac.macports.org/raw-attachment/ticket/46702/adapt-to-osx.patch
curl -LO https://trac.macports.org/raw-attachment/ticket/46702/patch-doubleDESTDIR.diff

コンパイルします。gropというGUIツールを一緒にインストールしようとしますが、わたしは使わないのでdisable しておきます。ためしたい人は gtkmm をインストールすると使えるはずです。

tar xvf porg-0.7.tar.gz
cd porg-0.7

# パッチを当てます
patch -p0 < ../adapt-to-osx.patch
patch -p0 < ../patch-doubleDESTDIR.diff

# disable-grop します
./configure --disable-grop
make
sudo make install

「/usr/local/bin」にインストールされるので PATH を通しておいてください。

動作確認をします。動作確認には、porg に porg 自身を登録します。

sudo make logme
porg -a

「-a」で管理パッケージ一覧が表示できます。無事 porg 自身が表示できていればインストールに問題ないです。
パッチを当てれば Mac でも動作します。

2015/02/09 追記

どうやら上手く追加できない物が結構あるみたいなので確認中。

パッチを追記。

2009年5月30日

何かを監視して screen のステータスラインにメッセージを表示する

プロセスとかハードディスク容量とかとにかく何かを監視して、メッセージを出してほしい場合があります。

screen のステータスラインに出すなら以下のようにします。

例えばハードディスクの容量を監視するなら、以下みたいなスクリプトを書いて、パーミッションを設定しておきます。

#!/bin/sh

capacity=`df $dir|awk 'NR==2{sub("%","",$5);print $5}'`

if [ $capacity -gt 80 ];then
    msg="disk is 80 over!!"

else
    msg=""
fi

echo $msg

で .screenrcに以下みたいに書きます。

backtick 0 2 2 /path/to/shell.sh
hardstatus alwayslastline "%?%{=b rw}%0`%{-} %?"

backtick は 以下みたいな感じです。

backtick id lifespan autorefresh command [args]

一番目のが 「id」 で hardstatus で 「%id`」で参照できます。この例の場合「id」に「0」を採番してるので「%0`」で参照できます。

「lifespan」、「autorefresh」とかで監視間隔を修正します。

hardstatus の「%?」はその間の参照が展開されたら表示するっていわゆる条件分岐です。

なのでこの例だと「%0`」の内容が空文字以外だったら表示されます。

よってこの例だと df の結果でハードディスクが80%以上利用されているとステータスラインに文字が表示されます。

スクリプトを工夫するといろいろできると思います。

何かを監視してターミナルの色を変更する(Mac OS X限定)

@totte が「そういえばCPU負荷率に応じて色が変化する管理コンソールってないのかな。緑→赤で。」と Twitter でつぶやいていた。管理コンソールっていってもいろいろあるので、とりあえず監視できれば良いだろうってことでターミナルでやってみた。

スクリプトは即席なので超いい加減です。

#!/bin/sh

capacity=`df $dir|awk 'NR==2{sub("%","",$5);print $5}'`

if [ $capacity -gt 80 ];then
    background="red"

elif [ $capacity -gt 60 ];then
    background="yellow"
elif [ $capacity -gt 50 ];then

    background="black"
else
    background="blue"
fi

osascript << EOF

tell application "Terminal"
    tell window 1
        set background color to "${background}"
    end tell
end tell
EOF

とりあえずこれで df の結果からハードディスクの利用率を見ることができる。

CPUの負荷だったら、uptime の結果を処理すれば可能です。

であとはこれを cron で回すとか screen で backtick 設定するとかするとターミナルの背景色が変更できる。

これだと AppleScript利用しているけど、もっと普通のやり方があったはずなのだけどなー。

追記 : screen版として何かを監視して screen のステータスラインにメッセージを表示するを追記しました。

追記:よく考えると「管理コンソール」の意味が広いからちがっている気がしてきた。Windowsの「管理コンソール」とか、APサーバの「管理コンソール」とか一杯あるから。何かの「管理コンソール」でとにかく色が変更できれば良いってことならそういう製品がないかなーってことなのかもしれないけど。まあこれはこれで役に立つから良いや。