2009年3月19日木曜日

(FreeBSD) portsを、いつインストール/アップデート/アンインストールしたか、記録しておきたい

FreeBSDのportupgradeを使っていると、ときどき変な不具合

(FreeBSD) たまにportupgradeがおかしなことをする? ~ アップデートに失敗してアンインストールされてしまう

が発生。知らないうちにライブラリなどがアンインストールされてしまっていて、それに依存するソフトウェアが動かなくなってしまう、という困ったことが、過去に何度かありました。



そこで、portsで、アンインストールされたり、ついでに、アップデートされたり、または、新規インストールしたもの、それらの記録を残しておきたい、と思い、ちょっとスクリプトを作ってみました。

「100.pkg.txt」をダウンロード

これは、/etc/periodic/security/100.chksetuid をちょっとだけ書き換えたもので、
/usr/local/etc/periodic/security/100.pkg
とかいう名前で保存しておき、
ファイルのモードは、chmod 555
そして、/etc/periodic.conf に、
daily_status_security_pkg_enable="YES"
と書いておけば、毎日実行されるdaily、securityのログの中に(管理者あてにメールで送られるもの)、こんな感じで



ホスト名 pkg diffs:
--- /var/log/pkg.today  2009-03-14 03:10:14.000000000 +0900
+++ /tmp/security.zjswVqvw      2009-03-17 03:11:33.000000000 +0900
@@ -3 +3 @@
--rw-r--r--  1 root  wheel   672 Mar  6 08:55:01 2009 ImageMagick-6.4.9.8/+DESC
+-rw-r--r--  1 root  wheel   672 Mar 16 10:07:41 2009 ImageMagick-6.4.9.8_1/+DESC
@@ -54 +54 @@
--rw-r--r--  1 root  wheel   391 Dec 17 09:09:09 2008 avahi-app-0.6.24/+DESC
+-rw-r--r--  1 root  wheel   391 Mar 16 09:43:25 2009 avahi-app-0.6.24_1/+DESC
@@ -58,3 +58,3 @@
--rw-rw-r--  1 root  wheel   620 Jan  8 10:53:33 2009 bacula-client-2.4.4/+DESC
--rw-rw-r--  1 root  wheel   620 Jan  8 10:51:35 2009 bacula-server-2.4.4/+DESC
--rw-rw-r--  1 root  wheel   381 Jan  6 08:38:01 2009 bash-3.2.48_1/+DESC
+-rw-r--r--  1 root  wheel   620 Mar 16 08:18:14 2009 bacula-client-2.4.4_1/+DESC
+-rw-r--r--  1 root  wheel   620 Mar 16 09:41:39 2009 bacula-server-2.4.4_1/+DESC
+-rw-r--r--  1 root  wheel   368 Mar 16 08:15:41 2009 bash-4.0.10_2/+DESC
@@ -186 +186 @@
--rw-r--r--  1 root  wheel   539 Mar  4 11:22:28 2009 evolution-2.24.5/+DESC
+-rw-r--r--  1 root  wheel   539 Mar 16 11:05:28 2009 evolution-2.24.5_1/+DESC



記録されるようになります。
どうも、「+DESC」というファイルのタイムスタンプが、portsをインストール/アップデートした日時になっている(らしい!?)というのがミソかも。



dailyが実行されるまで待つ必要はなくて、手でスクリプトを実行してもよいです。



あと、これって、「security」なのか?って気もしますが。



0 件のコメント:

コメントを投稿