/etc/cron.daily/apache2

  • 投稿者:
  • 投稿カテゴリー:未分類

/etc/cron.daily/apache2 について、重要なツールかと思いきや、disk_cacheモジュールのキャッシュを削除するツールだったお話

#!/bin/sh

# run htcacheclean

# コマンドが0以外のステータスで終了した場合、一部の場合を除いて即座に終了する
set -e
# 未定義の変数を参照するとエラー・メッセージを表示する
set -u

# htcacheclean,/etc/default/apache2が存在しないとexit
[ -e /usr/sbin/htcacheclean ] || exit 0
[ -e /etc/default/apache2 ]   || exit 0


# edit /etc/default/apache2 to change this
HTCACHECLEAN_MODE=daemon
HTCACHECLEAN_RUN=auto
HTCACHECLEAN_SIZE=300M
HTCACHECLEAN_PATH=/var/cache/apache2/mod_disk_cache
HTCACHECLEAN_OPTIONS=""

# /etc/default/apache2によって先ほど設定した変数が上書きされる
. /etc/default/apache2

# cronでない場合、exit
[ "$HTCACHECLEAN_MODE" = "cron" ] || exit 0

# HTCACHECLEAN_RUNがyes、または、autoかつdisk_cacheモジュールが有効のときのみexitしない
[ "$HTCACHECLEAN_RUN" = "yes"   ] ||
( [ "$HTCACHECLEAN_RUN" = "auto" ] && \
  [ -e /etc/apache2/mods-enabled/disk_cache.load ] )  || exit 0


# -n:CPU使用の優先度を最低にして動作させる
# -p:ディスクキャッシュのルートディレクトリを
# -l:トータルでのディスクキャッシュサイズの制限値を指定する
/usr/sbin/htcacheclean  ${HTCACHECLEAN_OPTIONS} \
                        -p${HTCACHECLEAN_PATH}  \
                        -l${HTCACHECLEAN_SIZE}