2019-05-01

FreeBSDのpkgに付属するperiodicスクリプト

1990年代のノートPCでFreeBSD/i386を利用しています。もう十何年も24x365の連続運転中ですが、高性能なCPUが必要になる処理はおこなっていないので、それほど困ってはいません。ただしハードウェア(特にネットワークI/F)が不調になってきており、またFreeBSDそのものがSSE2をサポートしていないCPUに対応しなくなっているようなので、そろそろ新しいマシンに交換しようと思っています。そう思い始めたのは数年前で、代替マシンとしてジャンクのThinkPad Edge E530cを入手しました。それも2年位前のことになり、スマートな移行手順を検討していました。いつまでも放置していても仕方ないので、最近になって本腰をいれることにしました。

FreeBSD/amd64は導入済みです。当初は11.0でしたが、放置しているうちに12.0が出てしまったので、バージョンアップも済んでいます。

FreeBSD/i386は日常的に使用しているマシンなので、同程度の作業ができないの差し障りがあります。最低限必要なものはpkgなどで導入しました。TeXを使っており、ちょうど2019年5月1日よりTeXlive 2019が公開されたので、近いうちに導入しようと思います。

FreeBSD/i386の頃は利用するアプリケーションをportsを使ってソースから作っていましたが、FreeBSD/amd64ではpkgでバイナリを入れるだけにしようと思います。ソースから作ればオプションを自由に変更できて、それは便利なのですが、ほとんどのアプリケーションはデフォルトのオプションを使っているだけなので、ソースから作る意義はありませんでした。

FreeBSDではpkg(移行期にはpkgngと呼ばれていたようです)が使われています。/usr/sbin/pkgの他に/usr/local/sbin/pkgもあるのが謎です。それはともかく、pkgに付属するperiodicスクリプトがあるようです。
# pkg info -l pkg | grep periodic
        /usr/local/etc/periodic/daily/411.pkg-backup
        /usr/local/etc/periodic/daily/490.status-pkg-changes
        /usr/local/etc/periodic/security/410.pkg-audit
        /usr/local/etc/periodic/security/460.pkg-checksum
        /usr/local/etc/periodic/weekly/400.status-pkg
periodicスクリプトは、挙動を変えるための設定を/etc/periodic.conf.localなどでおこなえますが、どのような設定があって、どのように変えればよいのか、説明する文書がみあたりません。所詮はシェルスクリプトなので、中を覗けばよいということなのかもしれません。

ひとつひとつのスクリプトは、それほど長くもないので、備忘のために調べてみました。全てのスクリプトがjailやchrootのための対処がされています。またpkgngの頃の設定があれば活かすようになっている箇所もありますが、全てそうなっている訳でもありませんでした。


  1. /usr/local/etc/periodic/daily/411.pkg-backup
    pkgの情報をバックアップする。指定された世代分を、指定されたディレクトリに残す。
    1. daily_backup_pkg_enable
    2. daily_backup_pkg_dir
    3. daily_backup_pkg_count
    4. daily_backup_pkg_chroots
    5. daily_backup_pkg_jails
  2. /usr/local/etc/periodic/daily/490.status-pkg-changes
    pkg infoにより、前回実行時の結果との差分を出力する。
    1. daily_status_pkg_changes_enable
    2. daily_status_pkg_changes_chroots
    3. daily_status_pkg_changes_jails
  3. /usr/local/etc/periodic/weekly/400.status-pkg
    pkg versionを実行する。
    1. weekly_status_pkg_enable
    2. weekly_status_pkg_chroots
    3. weekly_status_pkg_jails
  4. /usr/local/etc/periodic/security/410.pkg-audit
    pkg auditを実行する。
    1. daily_status_security_pkgaudit_enable
    2. daily_status_security_pkgaudit_expiry
    3. daily_status_security_pkgaudit_quiet
    4. daily_status_security_pkgaudit_chroots
    5. daily_status_security_pkgaudit_jails
  5. /usr/local/etc/periodic/security/460.pkg-checksum
    pkg check -qsaを実行する。
    1. daily_status_security_pkg_checksum_enable
    2. daily_status_security_pkg_checksum_chroots
    3. daily_status_security_pkg_checksum_jails

0 件のコメント:

コメントを投稿