LPIC-1 試験勉強メモ その 7

LPIC-1 試験勉強メモ その 7

システムサービスの管理

ョブスケジューラー

ジョブスケジューラーとして、定期的にジョブを実行する。 システム関連のジョブは anacron で実行する。

crond

  • RedHat 系: crond (/usr/sbin/crond)
  • Debian 系: cron (/usr/sbin/cron)

crontab コマンド

設定ファイルは /var/spool/cron 配下にユーザー名をファイル名として追加する。 crond は変更を検知して自動的にリロードする。

  • -e: 編集
  • -l: 表示
  • -d: 削除
起動の指定
  1. 分: 0 – 59
  2. 時: 0 – 23
  3. 日: 1 – 31
  4. 月: 1 – 12
  5. 曜日: 0 – 6 (0 が日曜日)

使える記号は次の通り。

  • *: すべて
  • -: 範囲
  • :: リスト
  • /:間隔
cron の許可
  • /etc/cron.allow: cron を許可するユーザーを記載する
  • /etc/cron.deny: cron を許可するユーザーを記載する

一度のみ実行

at コマンド、batch コマンド

コマンドを一度だけスケジューリングして実行する。

at [オプション] 時間
batch [オプション] [時刻]

at類似コマンド説明
-latq実行ユーザーのキューに入っているジョブを表示する
-catcジョブの内容を表示する
-datrmジョブを削除する
-ratrmジョブを削除する
時間指定オプション
指定オプション説明
HH:MM時刻を指定
midnight深夜 0 時
noon正午
teatime午後 4 時
am, pm午前、午後の指定
MMDDYY日付
today今日
tommorrow明日

systemd タイマー

  • monotonic timer: 指定した間隔で 1 回あるいは複数回サービスを実行する
  • realtime timer: 指定した時刻にサービスを実行する

XX.service の [Timer] セクションで起動するタイミングを指定できる。

  • m: OnActiveSec: タイマーをアクティベートしてからの時間を指定
  • m: OnBootSec: マシンが立ち上がった後の時間感覚を指定
  • m: OnUnitActiveSec: 繰り返して実行する時間間隔
  • r: OnCalendar: 実行時刻

date コマンド

1970 年 1 月 1 日 0 時 0 分 0 秒からの経過秒数を表示する。 現在秒からの経過ナノ秒を表示する。 システムクロックを直接設定できる。

  • -u, –utc, –universal: UTC で表示

TZ 環境変数にタイムゾーンを指定する。 タイムゾーンの時差情報は /etc/localtime で参照できる。

hwclock コマンド

ハードウェアクロックの調整を行う。

  • -w, –systohc: ハードウェアクロックをシステムクロックに合わせる
  • -s, –hctosys: システムクロックをハードウェアクロックに合わせる

NTP サーバーの構造

  1. NPT リファレンスクロック (stratum0)
  2. ルート NTP サーバー (stratum1)
  3. 子 NTP サーバー (stratum2)

ntpdate コマンド

NTP サーバーを参照して時刻を設定する。 公開 NTP サーバーはラウンドロビンで対応する。

ntpdate [オプション] [NTP サーバーのリスト]

  • -q: 差分確認
NTP 設定

/etc/ntp.conf で設定する。

  • driftfile: ntpd デーモンが計測した参照時刻からのずれを PPM 単位で記録するファイル名を指定
  • restrict: ACL 設定
  • server: リモート NTP サーバーの IP アドレスか DNS 名
    • iburst: 初期同期にかかる時間を短縮する

chrony

ntpd は chronyd によって制御される。

  • RedHat 系: /etc/chrony.conf
  • Debian 系: /etc/chrony/chrony.conf

chronyc コマンド

chronyc [オプション] [サブコマンド]

  • -sources: 時刻限の情報を表示
  • -tracking: システムクロックのパフォーマンス情報を表示
  • -makestep 閾値 回数: 時刻のズレが閾値を超えたら指定回数まで問い合わせて同期

chronyd デーモン

  • server ホスト名: 時刻源とする NTP サーバーを指定
  • pool プール名: 時刻源とする複数の NTP サーバーを指定
  • makestep 閾値 回数: 時刻のズレが閾値を超えたら指定回数まで問い合わせて同期
  • rtcsync: 定期的にハードウェアクロックを同期
  • rtcfile: ドリフトファイルにより時刻を補正
  • driftfile: ドリフトファイルを指定

syslog

システムに関するログデータを集約する。

syslog

rsyslog

syslog-ng

systemd-journal

カーネル (/dev/kmsg)、サービス (stdout, stderr)、アプリ (/dev/log) から systemd-journal にログが集約される。 その後 /etc/syslog.conf で指定したセレクタに従ってログを振り分ける。 ログは /var/log/messages に記録する。

ファシリティ.プライオリティ アクション

ファリシティ
ファシリティ番号ファシリティ名説明
0kernカーネルメッセージ
1userユーザーレベルメッセージ
2mailメールシステム
3daemonシステムデーモン
4authセキュリティ、認証メッセージ
5syslogsyslogd による内部メッセージ
6lprLine Printer サブシステム
7newsnews サブシステム
8uucpUUCP サブシステム
9croncron デーモン
10authprivセキュリティ、認証メッセージ
11ftpftp デーモン
16 ~ 23local0 ~ 7ローカルように予約
プライオリティ
プライオリティ名説明
emergパニック状態でシステム使用不可
alert緊急の対処が必要
crit緊急の対処が必要、alert 以下のもの
errエラー発生
warning警告、対処しないとエラーの可能性
notice通知ではないがエラーでもない
info通常稼働時の情報
debugデバッグ情報
noneログメッセージを記録しない
アクション
  • 絶対パス
  • パイプ
  • ホスト名
  • ユーザー名
  • *: すべてのユーザー

syslogd コマンド

syslogd [オプション]

  • -d: デバッグモードを有効化
  • -f: /etc/syslog.conf 以外の設定ファイルを指定
  • -h: リモートのホストから受信したメッセージをさらに転送する
  • -r: リモートホストからのメッセージ受信を許可する

journalctl コマンド

systemd-journal から収集したログを表示する。

journalctl [オプション] [フィールド=値]

  • -e, –pager-end: 最新部分までジャンプして表示
  • -f, –follow: リアルタイムに表示
  • -n, lines: 表示行数を指定
  • -p, –priority: 指定したプライオリティのログを表示
  • -r, –reverse: 逆順に表示
  • –since: 指定日時以降を表示
  • –until: 指定日時以前を表示

systemd-cat コマンド

メッセージをログファイルに記録する。

logger コマンド

logger [オプション] [メッセージ]

  • -f: 指定したフィルの内容を送信する
  • -p: ファシリティ.プライオリティを指定する (デフォルトは user.notice)

logrotate コマンド

ログ名、ファイルアーカイブ間隔、回数を設定ファイルで指定する。

logrotate [オプション] 設定ファイル

/etc/cron.daily で /etc/logrotate.conf を指定して日次実行する。

印刷

CUPS (Common Unix Printing System): 印刷システム、プリンターの標準インターフェイス。

印刷プロトコル

  • IPP (Internet Printing Protocol)
  • SMB
  • LPD
  • PostScript プリンター: PCL、ESCIP、 LIPS その他のメーカーの独自データを入力して PDD を参照する
  • 非 PostScript プリンター: プリンターごとに変換ドライバーが必要

cupsd

  • SysV init: /etc/init.d/cupsd start
  • systemd: systemctl start cups

PPD (Postscript Printer Description)

フォント、用紙サイズ、解像度などの制御情報。

  • /usr/share/foomatic/db/source/PPD
  • /usr/share/cups/model

lpadmin コマンド

CUPS でのプリンターの登録や削除を行う。

lpadmin -p プリンター名 オプション

  • -p: プリンターの作成
  • -E: プリンタージョブの受付、プリンターへの出力を開始状態にする
  • -v: デバイス URI を指定する
  • -m: model ディレクトリ配下の PPD ファイル名を指定する
  • -P: PPD ファイルを指定する
  • -x: プリンターの削除
  • -d: デフォルトプリンターの設定

Ghostscript

PostScript を解釈し、プリンターやデバイス形式に変換して出力する。(gs コマンド)

lpr コマンド

lpr [オプション] ファイル名

  • -d: 指定プリンターに出力
  • -n num: num で指定した部数を出力
  • -o raw: フィルタを通さずプリンター出力

lp コマンド

lp [オプション] ファイル名

  • -P: 指定プリンターに出力
  • -#num: num で指定した部数を出力
  • -Q raw: フィルタを通さずプリンター出力

lpstat コマンド

プリントキューを表示する。

lpstat [オプション]

  • -a: プリントキューが accept になっているか否かを表示
  • -p: プリントキューが enable になっているか否かを表示
  • -t: プリンタの状態をキューの状態を含めてすべて表示

lpg コマンド

lpg [オプション]

  • -P: 指定したプリントキューのジョブを表示
  • -a: すべてのプリントキューのジョブを表示

lpc コマンド

lpc [コマンド]

  • status キュー名: 指定したキューの状態を表示

cupsdisable コマンド

対義のコマンドは cupsenable コマンド。

cupsdisable [オプション] プリンター名

  • -c: すべてのプリントキューのジョブをキャンセル
  • -r: 停止理由を示すメッセージを指定

cupsreject コマンド

プリントジョブを受け付けないようにする。 対義のコマンドは cupsaccept コマンド。

  • -c: すべてのジョブをキャンセル
  • -r: 停止理由を示すメッセージを指定

ロケール

locale コマンド

ロケール情報を表示する。

locale [オプション]

  • -a: 利用可能なロケールをすべて表示
  • -m: 利用可能なエンコーディングをすべて表示
ロケール書式

LANG 環境変数で指定する。

  • language: 言語
  • territory: 国、地域
  • encoding: エンコーディング
  • modifer: 修飾子
language(_territory)(.encoding)(@modifer)

  • LC_TYPE: 文字種類
  • LC_NUMERIC: 数値
  • LC_TIME: 時刻
  • LC_MONETARY: 通過
  • LC_MESSAGE: メッセージ
  • LC_TELEPHONE: 電話番号フォーマット

iconv コマンド

ファイルのエンコードを変換する。

  • -f: 現在のエンコードを指定
  • -t: 目的のエンコードを指定

nkf コマンド

文字コードの種類を確認する。