システムクロックとハードウェアクロック
システムクロック
- OSが管理するシステムクロック
- Linuxカーネルで管理される
- dateコマンドで表示・調整
- ntdateコマンドでntpサーバと同期
ハードウェアクロック
- マザーボードに実装されている
- PCのハードウェア上で実装されている ⇨ PCの電源を切った状態でも時刻を刻む
- システムの起動時に参照される
- hwclockコマンドで表示・修正
- 電池切れで停止する問題もある
システムクロックの表示と設定
時刻の表示
【現在時刻を表示】
$ date
【現在時刻を UTC 時刻で表示】
$ date -u
【現在時刻をフォーマット指定で表示(年/月/日 時:分:秒 の形式を指定)】
$ date "+%Y/%m/%d %H:%M:%S"
時刻の設定
オプションなしで数時列によって時刻を指定
フォーマット:mmddHHMM[YYYY][.SS] 年・秒は省略可能
$ sudo date 01010000
-s または --set オプションで時刻を指定
$ sudo date -s "2000/08/13 08:13:00"
ハードウェアクロックの表示と設定
hwclockコマンド
- ハードウェアクロックの表示と設定を行うことができる
【時刻を表示】
$ hwclock --show
【ハードウェアクロック時刻をシステムクロックに反映】
$ sudo hwclock --hctosys
【システムクロック時刻をハードウェアクロックに反映】
$ sudo hwclock --systohc
タイムゾーンの概要と設定
タイムゾーン
- 世界中の国や地域では異なるタイムゾーンを採用
タイムゾーンの設定方法
- 変数TZによる設定
# 一時的に環境変数を変更する
$ TZ="Asia/Tokyo" date
# export することでユーザで利用するタイムゾーンを変更
$ export TZ="Asia/Tokyo"
# 地域などから利用する TZ の値を調べる
$ tzselect
NTPの利用
NTP
- ネットワークを経由してコンピュータの時計を同期するプロトコル
- コンピュータの時刻のずれをNTPサーバーと通信して修正
ntpd
- デーモンプロセス
- デーモンとして常駐、定期的に時刻同期
- 設定ファイル「/etc/ntp.conf」
【コマンド実行による時刻同期】
$ ntpd -q
ntpdコマンド
- ntpd の状態を確認
$ ntpq -p
chrony
- NTPサーバ・クライアント実装としてntpd
- 同様にNTP 実装としてchrony
- デーモンプロセスchronyd
- 操作コマンドchronyc
ntpdと比較したchronydの利点
- ハードウェアクロックを同期することができる
- メモリ使用量が少なく、必要な時だけ CPU を利用するため効率が良い
- クロックをより高速に、より高精度で同期できる
- クロックがズレていても修正可能な幅が ntpd よりも大きい
/etc/chrony/chrony.conf
# アクセス許可; アクセス制限なら allow → deny
allow 192.168/16
# 同期先の NTP サーバ (プール)
pool pool.ntp.org iburst
chronycコマンド
- chronydの制御を行う
# 同期の状態を表示
$ chronyc tracking
# 同期先として利用できるサーバ一覧を表示
# 同期中のサーバは先頭に * が表示される
$ chronyc sources
ログ管理
ファシリティ・プライオリティ
- プロセス・カーネルからjournaldへメッセージ
- 『ファシリティ』『プライオリティ』の指定
- ログを絞りこむときの条件として利用される
- ファシリティ:メッセージの発信元
- プライオリティ: メッセージの優先度・重要度
コード | ファシリティ | 概要 |
---|---|---|
0 | kern | カーネルからの出力を示す |
1 | user | ユーザレベルのアプリケーション関連の出力 |
2 | メールシステムからのメッセージ | |
3 | daemon | システムのデーモン関連 systemd もこのファシリティで出力 |
4 | auth | 認証情報 |
9 | cron | cron 関連 |
10 | authpriv | プライベート認証情報メッセージ |
11 | ftp | ftp 関連 |
16 から 23 | local0〜7 | 独自に予約される |
コード | プライオリティ | 概要 |
---|---|---|
0 | emerg | システムが利用不可能な状態 |
1 | alert | 緊急に対応が必要 |
2 | crit | 致命的な状態 |
3 | err | エラー |
4 | warning | 警告 |
5 | notice | エラーや警告ではないが重要な通知 |
6 | info | 情報を表す |
7 | debug | デバッグ情報 |
none | 記録なし |
journald(journalctl)
- journaldによって集められるログを確認
$ journalctl
$ journalctl -p 3
$ systemd-cat echo 'test'
$ journalctl -r
rsyslogの設定
-
/etc/rsyslog.conf
-
セレクタ
・ファシリティとプライオリティの組み合わせ
・複数セレクタを一括指定可能 -
アクション
・ファイルや転送先を指定
ログとは?
- コンピューターシステムやアプリケーションの動作状況、発生したイベント、ユーザーの活動などを、時系列に沿って記録したデータのこと
ログ管理とは?
- システムやアプリケーションが生成する膨大な量のログデータを、効率的に収集、保存、分析、監視、そして必要に応じて廃棄する一連のプロセスのこと
ログの内容
- ログは下記の構成になっている
①日時
②ホスト名
③出力元
④メッセージ - loggerコマンドでログメッセージを作成し確認
ログメッセージの確認
# ファシリティ user, プライオリティ alert で "alert test" とログ
$ logger -p user.alert "alert test"
# /var/log/syslog に記録されているか末尾を確認
$ tail -n 2 /var/log/syslog
ログローテーション
ログローテーションとは?
ログローテーション(Log Rotation)とは、コンピューターシステムやアプリケーションが生成するログファイルが過度に肥大化するのを防ぐため、定期的にログファイルを新しいものに切り替え、古いログファイルを圧縮、移動、または削除する仕組み
メール転送エージェント (MTA)
- 主なMTA
exim | postfix |
---|---|
現在最も利用されているとされつMTA | eximに次いで利用される |
単体のソフトウェアにMTA/MDA機能 | sendmailとの操作上の互換性 |
設定の簡素化・安全面を改善 | |
役割ごとに分割されたコアプログラム群 |
mailコマンド
- メールの送信
- 受信メールの確認
# ubuntu ユーザ (自分) にメールを作成
$ mail ubuntu
Cc:
Subject: test
test mail
<C-d>
# メールサブコマンドを実行する環境に入る
# 受信メールの確認などができる
$ mail
mailqコマンド
# メールキューの状態を確認
$ mailq