システムサービスの管理
ジョブスケジューラー
ジョブスケジューラーとして、定期的にジョブを実行する。 システム関連のジョブは anacron
で実行する。
crond
- RedHat 系: crond (/usr/sbin/crond)
- Debian 系: cron (/usr/sbin/cron)
crontab コマンド
設定ファイルは /var/spool/cron
配下にユーザー名をファイル名として追加する。 crond は変更を検知して自動的にリロードする。
- -e: 編集
- -l: 表示
- -d: 削除
起動の指定
- 分: 0 – 59
- 時: 0 – 23
- 日: 1 – 31
- 月: 1 – 12
- 曜日: 0 – 6 (0 が日曜日)
使える記号は次の通り。
- *: すべて
- -: 範囲
- :: リスト
- /:間隔
cron の許可
/etc/cron.allow
: cron を許可するユーザーを記載する/etc/cron.deny
: cron を許可するユーザーを記載する
一度のみ実行
at コマンド、batch コマンド
コマンドを一度だけスケジューリングして実行する。
at [オプション] 時間
batch [オプション] [時刻]
at | 類似コマンド | 説明 |
---|---|---|
-l | atq | 実行ユーザーのキューに入っているジョブを表示する |
-c | atc | ジョブの内容を表示する |
-d | atrm | ジョブを削除する |
-r | atrm | ジョブを削除する |
時間指定オプション
指定オプション | 説明 |
---|---|
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 サーバーの構造
- NPT リファレンスクロック (stratum0)
- ルート NTP サーバー (stratum1)
- 子 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
に記録する。
ファシリティ.プライオリティ アクション
ファリシティ
ファシリティ番号 | ファシリティ名 | 説明 |
---|---|---|
0 | kern | カーネルメッセージ |
1 | user | ユーザーレベルメッセージ |
2 | メールシステム | |
3 | daemon | システムデーモン |
4 | auth | セキュリティ、認証メッセージ |
5 | syslog | syslogd による内部メッセージ |
6 | lpr | Line Printer サブシステム |
7 | news | news サブシステム |
8 | uucp | UUCP サブシステム |
9 | cron | cron デーモン |
10 | authpriv | セキュリティ、認証メッセージ |
11 | ftp | ftp デーモン |
16 ~ 23 | local0 ~ 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 コマンド
文字コードの種類を確認する。
コメント