R.A. Epigonos et al.

[apt] updateとupgradeをcronで自動化

新しいVineになったことだし、インストールされたパッケージのアップデートを行っておかないと外に開放するサーバとしてはセキュリティ的に問題がある。当然ながら、アップデートはこまめに行わないとまずいわけで、アップデートの度にrootでログインするのも面倒だ。というわけでcronで作業を省力化してみようと思う。始めにシェルスクリプトを書いた。関連のページを検索した。

まずはapt lineにextraを追加しておく。Vine Linux 4.1のデフォルトではextraが追加されていないと思う。そのために以下のようにする。 例えば、 extraが無いとpstoeditとかがインストールできない(Vineのパッケージは用意されているのにコンパイルしないと導入できない)。これでは面倒なので、とりあえずやっておこうと思う。

$ su -
# vi /etc/apt/sources.list
> [rpm] http://hoge.com/**/** *** extra
> [rpm-src] http://hoge.com/**/** *** extra
> のようにapt lineの最後にextraを追加する。
# apt-get update

インストール後すぐにやっておくこと。これはセキュリティのためもあるけど、インストールできねーとおもってたらupdateしてなかっただけというミスを減らすため。インストール後はapt-searchで参照するファイルは空っぽ?と思われる。

# echo "apt-get update && apt-get -y upgrade" >> ~/apt.sh
# cat ~/apt.sh
apt-get update >> apt-get -y upgrade

Vine Linux 4.1を最小構成(base system)でインストールした場合、crondはインストールされない。というわけで調べてみた。どうやら、世の中にはcrondとして、vixie-cron、dcron、fcronとあるらしい。ではVinePlusにあるcrondはなにか。

# apt-cashe search cron

答えは、vixie-cronだった。その他のcrondも探したが、見つからない。ということは、apt-getできるのはvixie-cronというcrondのようだ。依存関係をチェックしてcrontabsが含まれているか調べた。

# apt-cashe showpkg vixie-cron

Dependenciesの項を見ると、crontabsは含まれていないようだ。というわけであとからcrontabsを導入することにした。crontabというプログラムはvixie-cronを導入すれば使えるようになる。ということは、crontabsいらなかったかも。crontabというプログラムはctontabsに含まれていると思っていたのは勘違い。

# apt-get install vixie-cron
# apt-get install crontabs

crondの起動するランレベルをチェック。人それぞれだけど、僕は2,3,4,5で起動して欲しい。

# chkconfig --list | grep crond

crondは導入されたが、起動してないので、起動。OKがでることを確認。psでも確認。

# /etc/rc.d/init.d/crond start
# ps wax | grep crond

crontabを使ってスケジュールを追加。

# crontab -e
10 4 * * * sh ~/apt.sh を追加

小話

上のようにするととってもうまくできていた。何も問題なかった。でも、下のように入力してみたところ、面白そうなパッケージが見つかった。apt-cronとcron-aptだ。

# apt-cashe search cron

導入するならapt-cronだろうな。google検索ではcron-aptよりも多くのページが引っかかるから。でも入れない。ほとんどドキュメントを読んでないから確かなことはいえないけど、crontabでcrontabは入れるし、cronはapt以外の仕事にも使うから。

ソーシャルブックマーク

  1. はてなブックマーク
  2. Google Bookmarks
  3. del.icio.us

ChangeLog

  1. Posted: 2008-08-31T07:38:30+09:00
  2. Modified: 2008-08-31T06:57:23+09:00
  3. Generated: 2024-11-18T23:09:15+09:00