Closed16

学習記録#31 250710

ろみぃ(konatsu)ろみぃ(konatsu)

anacron:
crontabで指定された時刻にシステムが起動していなかった場合、そのcronジョブは実行されないままになってしまう。
そこで、anacronを使うと、システム停止中に経過してしまったスケジューリングも実行できる

anacronのスケジューリングは、/etc/anacrontabに記述される

ろみぃ(konatsu)ろみぃ(konatsu)

/etc/anacrontabファイルの内容の例

SHELL=/bin/sh
PATH=/sbin:bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=45 ←ランダムに遅らせる最大値
# the jobs will be started during the follwing hours only
START_HOURS_RANGE=3-22 ←3時〜22時の間だけ開始される

# period in days delay in minutes job-identifier command
# 1dayおきに実行する
# 実行するまで5minutes待機する
# (これに、RANDOM_DELAYで指定された範囲でランダムに遅らせられる)
# 実行日はcron.dailyに記述される
# niceコマンド付きで、run-partsコマンドを実行する
1 5 cron.daily nice run-parts /etc/cron.daily
7 25 cron.weekly nice run-parts /etc/cron.weekly
@monthly 45 cron.monthly nice run-parts /etc/cron.monthly
ろみぃ(konatsu)ろみぃ(konatsu)

crontabは1分単位で実行タイミングを指定できるが、anacrontabでは実行タイミングは指定できない

RANDOM_DELAYでランダムに遅らせるのは、ホスト間でジョブの実行タイミングを分散させられるようにするため

ろみぃ(konatsu)ろみぃ(konatsu)

atコマンド:
cronが定期的に繰り返し実行するジョブを扱うのに対し、atコマンドは1回限りの実行スケジュールを扱う

スケジューリングの実施には、atデーモンが動作している必要がある

ろみぃ(konatsu)ろみぃ(konatsu)
$ at 5:00 tomorrow ←スケジュール指定
$ at -d tomorrow ←スケジュール削除
$ ar -l ←スケジュールリスト
ろみぃ(konatsu)ろみぃ(konatsu)

cronやatの利用制限は、ユーザー単位で実施できる

ろみぃ(konatsu)ろみぃ(konatsu)

cronのアクセス制限:
/etc/cron.allow、/etc/cron.denyを使ってアクセス制限する

/etc/cron.allowがあれば、そこに記述されたユーザーのみアクセス権を持つ。必然的に/etc/cron.denyは無視されることになる

デフォルトでは、空の/etc/cron.denyファイルだけがある

ろみぃ(konatsu)ろみぃ(konatsu)

言語や通貨単位、日付の書式など地域や国に合わせることをローカライゼーションというが、国毎に行うのは大変なので、最近は最初から多言語・多地域に対応する国際化(internationalization, i18n)が行われていることが多い

ろみぃ(konatsu)ろみぃ(konatsu)

利用者の地域情報をロケールといい、これに従って表示言語や表示書式を変更できるように作られている

メッセージの出力、通過、日時の書式など複数のカテゴリがある

環境変数LC_ALL:
これが設定されてたら、すべてのカテゴリに対してこの値が使われる
LC_ALLが設定されておらず、個々のカテゴリに対応した環境変数が設定されていれば、その値が使われる。

環境変数LANG:
これが設定されていたら、すべてのカテゴリに対してこの値が使われるが、個々のカテゴリごとに個別の設定をすることも可能

ろみぃ(konatsu)ろみぃ(konatsu)

文字コードの変換にはiconvコマンドを使う

例)
日本語EUCで作成されたファイルをUTF-8に変換して保存する

$ iconv -f eucjp -t utf8 report.euc.txt > report.utf8.txt
このスクラップは2ヶ月前にクローズされました