LoginSignup
1
0

システムサービスの管理

Last updated at Posted at 2023-10-23

タイムゾーン

地域ごとに区分された標準時間帯のこと。タイムゾーン毎にUTC(Coordinated Universal Time: 協定世界時)からの時差や、夏時間の実施期間などが決められている。
Linuxの内部では、UTC 1970年1月1日午前0時0分0秒からの経過秒数であるエポック(epoch)時間で時間を管理しており、設定されたタイムゾーンにしたがってエポック時間から変換して、日付時刻を扱う。UNIX時間(Unix Timestamp)とも呼ばれます。

タイムゾーンの情報は、/usr/share/zoneinfoディレクトリ以下のバイナリファイルに格納されている。このファイルを/etc/localtimeにコピーすることで、システムで利用することが出来るようになる。環境変数TZでも設定することは可能

#タイムゾーンを日本に設定する場合
$ cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

#タイムゾーンを日本に設定する場合(シンボリックリンクでも可能)
ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

#環境変数TZで設定する場合
$ export TZ="Asia/Tokyo"

/etc/localtimeにはシステムクロックの時刻からローカルタイムへ変換するための時差情報が格納されている。

全ユーザーで利用するには/etc/timezoneファイルに設定することで反映される

環境変数TZ

タイムゾーンを指定することが可能。設定する値はtzselectコマンドで選択及び表示することが出来る。

dateコマンドの[-u],[--utc],[--universal]オプションでも指定することが可能

tzselectコマンド

タイムゾーンの設定を確認するコマンド。対話式で設定することが出来る。

tzconfigコマンド

/etc/localtime/etc/timezoneを値をまとめて変更できるDebian系のコマンド。

最近のディストリビューションでは利用できない
その場合は、dpkg-reconfigure tzdataコマンドを使用する

時刻

時刻の表示には2種類存在する

  • UTC(Coordinated Universal Time:協定世界時)
    原子時計を基に定められた世界共通の標準時で、天体観測を基にしたGMT(グリニッジ標準時)とほぼ同じ

  • ローカルタイム(地域標準時)
    国や地域に共通の地域標準時。日本の場合はJST(Japan Standard Time:日本標準時)になる。時差は9時間あり、JSTがUTCより9時間進んでいる。

さらに、システムの内蔵時計には2種類のものが存在する

  • ハードウェアクロック
    ハードウェアとして内蔵された時計。コンピューター内に取り付けられた電池で動作するため、電源がオフの状態でも動作する。

  • システムクロック(system clock)
    Linuxカーネル内に存在する時計。Linux起動時にハードウェアクロックを参照して設定されるが、その後は別々に動き続ける。そのため、起動してからの時間経過につれ差が生じてくる

キャプチャ12.PNG

dateコマンド

書式:date [MMDDhhmm[[CC][YY][.ss]]
システムクロックを参照して現在の日時を表示するコマンド。rootユーザー権限でシステムクロックを変更することも可能
引数を[+]で始めると、指定した書式で表示することが出来る

時刻設定 内容
MM
DD
hh
mm
CC 西暦の上2桁
YY 西暦の下2桁
ss
書式 説明
%Y
%m 月(01~12)
%d 日(01~31)
%H 時(00~23)
%M 分(00~59)
%a 曜日
%b 月名
#「年/月/日(曜日)」の書式で表示する場合
$ date "+%Y/%m/%d (%a)"

#自動的なバックアップファイルを作成し、ファイル名にバックアップ日時が入る
$ tar czf /backup/`date "+%Y%m%d"`.tar.gz /home 

hwclockコマンド

書式:hwclock [オプション]
ハードウェアクロックの参照や設定を行うコマンド

オプション 説明
-r ハードウェアクロックを表示する
-w(--sysohc) システムクロックの時刻をハードウェアクロックに設定する
-s(--hctosys) ハードウェアクロックの時刻をシステムクロックに設定する

timedatectlコマンド

書式:timedatectl [サブコマンド]
systemdを採用したディストリビューションの日付と時刻。タイムゾーンを管理するコマンド。コマンドのみを実行すると、現在の日時、タイムゾーン、NTPを利用しているかどうか表示する

サブコマンド 説明
status 現在の状態を表示する(デフォルト)
set-time 時刻 時刻を設定する(HH:MM:SS)
set-time 日付 日付を設定する(YYYY-MM-DD)
set-time 日付 時刻 日付と時刻を設定する(YYYY-MM-DD HH:MM:SS)
set-timezone タイムゾーン タイムゾーンを設定する
list-timezone タイムゾーンを一覧表示する
set-ntp yes(パイプ)no NTPを使うかどうか

timedatectlコマンドはシステムクロックとハードウェアクロックを同時に設定する。NTPサービスが有効になっている場合はエラーになる

# timedatectl status
      Local time: 日 2023-08-27 12:02:02 JST
  Universal time: 日 2023-08-27 03:02:02 UTC
        RTC time: 日 2023-08-27 03:02:02
       Time zone: Asia/Tokyo (JST, +0900)
     NTP enabled: yes
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

NTP(Network Time Protocol)

ネットワーク経由でクロックを同期するプロトコル。ハードウェアクロック、システムクロックと違い正確な時刻をNTPサーバ(タイムサーバ)から取得し設定することが出来る。
階層構造になっていて、最上位には原子時刻、GPSなどの極めて正確な時刻情報の提供元がある。その直下にあるサーバを「Stratum1」,「Stratum2」と下に増えていく。最下層はstratum16まで階層化されている

キャプチャ13.PNG

NTPサーバ

stratum0を時刻減とするstratum1のこと
NTPサーバは自前で運用することもでき、/etc/ntp.confで設定を行う。

コンフィグレーションコマンド 説明
driftfile ntpdデーモンが計測した、NTPサーバの参照時刻からのインターバルタイマーの発振周波数のずれ(drift)をPPM(parts-per-million:0.0001%)単位で記録するファイルの名前を指定する
resttrict ACL(Access Control list)の指定。アドレス(最初のフィールド)がdefaultと書かれている行がデフォルトのエントリで、restrict行の最初のエントリとなる。defaultの右に禁止フラッグを指定する。フラッグを指定しない場合は全てのアクセスを許可する
server リモートサーバのIPアドレスかDNS名、あるいは参照クロックのアドレスを指定する

stratum0とは?
NTPのリファレンスクロックのことで、原子時計(セシウムクロック)、原子時計を持つ人工衛星からのGPS受信機、標準電波の受信機が該当する

NTPサーバーを提供するサービス(NTPサービス)は複数あり、なかでも、pool.ntp.orgは有名。複数のNTPサーバーで強固なネットワークを構築しているため、信頼性が高い。

iburst

NTPサーバとの初期の同期にかかる時間を短縮するオプション。serverコマンドのオプションとして指定する。
iburstを指定しない通常の場合は、64秒間隔でポーリングするが、指定すると初期の同期時に2秒間隔で8個のパケットを送信して同期をとる。そのため、通常より早く同期を取ることが可能になる。

NTPクライアント(ntp client)

時刻情報を受信するコンピュータのこと。自ホストのシステムクロックと、ネットワーク上のNTPサーバの参照クロック(reference clock)の時間差を監視し補正する。
NTPサーバとの時刻同期にrootユーザー権限が必要。

ntpdateコマンド

書式:ntpdate [オプション] NTPサーバ名
指定したNTPサーバから現在時刻を取得するコマンド。NTPサーバの指定はIPアドレスではなく、ホスト名を指定することが推奨されている。

オプション 説明
-q 時刻が正しいかどうか問い合わせのみを行う
#pool.ntp.orgから時刻を取得する
# ntpdate pool.ntp.org

ntpqコマンド

書式:ntpq [オプション] 接続先サーバ
ntpd の時刻同期状況を照会するコマンド。

オプション 説明
-p serverに指定したサーバとの同期状態を一覧表示する。対話モードのpeersと一緒
-i 対話モードで起動する(デフォルト)
表示項目 説明
remote serverに指定したNTPサーバのホスト。先頭に*がついているものが時刻同期先、「+」は時刻同期可能なサーバ、「-」は参照しないことが決定したサーバを意味する
refid remoteのサーバの時刻参照先アドレス。同期開始時は「.INIT.」を表示し、stratum1のサーバでは「.GPS.」などを表示する
st remoteのサーバのstratum
t ntpパケットの交換方法。uはユニキャストを表す
when 前回ntpパケットを好感してからの経過時間(秒)
poll 時刻問い合わせの間隔(秒)。同期が安定すると間隔が自動で長くなっていく。最大1024秒(約17分)ごとに時刻問い合わせを行うようになり、システムへの負荷が少なくなるようになっていく
reach 過去8回の時刻問い合わせ結果を8進数で表示。
delay ntpパケットの往復に要した遅延時間(ミリ秒)
offset remoteのサーバーとの時刻のズレ(ミリ秒)
jitter 同期した時刻とのズレ具合(ミリ秒)

Chrony(クローニー)

ntpd/ntpdateの代替えとなるNTPサーバ/クライアントソフトウェア。
機能およびパフォーマンスを改善したデーモンプロセスchronydとクライアントコマンドchronycから構成されている。
chronydはntpdに比べて、ネットワークの混雑が続いたり通信が不安定な状態でも良好に動作し、高い精度で時刻を同期できる。必要な時だけCPUを使用し、メモリ使用量も少なく、RHEL7やCentOS7以降では標準の時刻同期システムとなっている。
設定ファイルは/etc/chrony.conf

設定項目 説明
server 時刻を取得するNTサーバを指定。サーバ/クライアントの関係
peer 時刻を取得するNTPサーバを指定。同じstratum同士
pool 時刻を取得するNTPサーバのプール(複数アドレスを集約した名前)を指定
driftfile 自身の時刻のずれ具合を記録するファイルを指定
rtcsync システムクロックをハードウェアクロック(RTC)にコピーする
makestep 参照クロックとの時間差の閾値と、ステップ方式による時刻補正の回数を指定する

chronycコマンド

書式:chronyc [サブコマンド]
chronydの管理を行うコマンド。

サブコマンド 説明
activity NTPサーバのオンライン/オフライン数を表示する
sources 時刻ソースの情報を表示する
sourcestats 時刻ソースの統計情報を表示する
tracking トラッキングを確認する
quit 対話状態を終了する
[root@localhost ~]# chronyc tracking
Reference ID    : E1FE1EBE (time.cloudflare.com)
Stratum         : 4
Ref time (UTC)  : Mon Sep 04 22:38:51 2023
System time     : 0.000159072 seconds slow of NTP time
Last offset     : -0.000174037 seconds
RMS offset      : 0.000459791 seconds
Frequency       : 0.668 ppm fast
Residual freq   : -0.018 ppm
Skew            : 0.923 ppm
Root delay      : 0.136974722 seconds
Root dispersion : 0.002087610 seconds
Update interval : 257.9 seconds
Leap status     : Normal

[root@localhost ~]# chronyc sources
210 Number of sources = 4
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^? tama.paina.net                0   9     0     -     +0ns[   +0ns] +/-    0ns
^* time.cloudflare.com           3   9   377   371  -1213us[-1387us] +/-   72ms
^? ipv4.ntp3.rbauman.com         0   9     0     -     +0ns[   +0ns] +/-    0ns
^? 122x215x240x52.ap122.ftt>     0   9     0     -     +0ns[   +0ns] +/-    0ns

システムログ

「システムロギング」とも呼ばれる。コンピューターの動作状況の記録をログと呼ぶ。
あらゆるシステムログを収集する「journald(systemd-journald)」というシステムサービスがあり、各サービスで起きた出来事はすべてjournaldが収集し、journalファイルに記録される。

journalファイルにはさまざまな内容が混ざっており確認が困難なため、昔から使われてきたシステムログ記録用のシステムサービスsyslogデーモンを使用し、journalファイルから必要な情報を仕分け、適切なログファイルに出力してくれる。

d7293cc0-5bd4-4b3f-94c0-3a2583b1fc43.png

Linuxではsyslogを使っているが、他にもrsyslog(reliable-syslog)やsyslog-ng(syslog next-generation)が使われている。

rsyslog(reliable-syslog)

syslog(ログメッセージを送受信する規格)の問題点を克服した次世代のsyslogとして、主要なディストリビューションで採用されている。
/etc/rsyslog.confファイルおよび/etc/rsyslog.dディレクトリ以下のファイルで設定を行う。
各種機能をプラグインモジュールによって拡張することが出来る

プラグインモジュール 説明
imuxsock UNIXソケットによるローカルキングサポート(loggerコマンドなど)
imjournal systemdのジャーナルサポート
imklog カーネルログのサポート
immark マークを出力(--MARK--)
imudp UDPでメッセージを受信
imtcp TCPでメッセージを受信

/etc/rsyslog.confファイル内の設定は以下の書式で行える
書式:ファシリティ.プライオリティ 出力先

指定したファシリティが出力するメッセージのうち、指定のプライオリティ以上のものが、出力先に出力される。低いレベルを指定するほど、出力されるログの量も多くなる。
設定変更した場合、rsyslog.serviceの再起動もしくは設定ファイルの再読み込みが必要になる

#プライオリティがnotice以上のものは/var/log/secureに保存
$ authpriv.notive /var/log/secure

ファシリティ(facility)

メッセージの生成元を表し、カーネルや実行中のプロセスのこと。大まかに言えば「システムログの分類」。[*]を使うと全てのファシリティを選択することできる

ファシリティ 説明
auth,authpriv 認証システム(loginなど)による出力
cron cronによる出力
daemon 各種デーモンによる出力
kern カーネルによる出力
lpr 印刷システムによる出力
mail メールサービス関連による出力
user ユーザーアプリケーションによる出力
local0~local7 ローカルシステムの設定

プライオリティ(priority)

メッセージの重要度を表し、低く設定すればするほどログとして出力される情報量も多くなる。[*]を使うと全てのプライオリティを選択できる。
以下の表は優先度の高い順に並んでいる

重要度 説明
emerg 緊急事態
alert 早急に対処が必要な事態
crit システムの処理は継続できるものの深刻な事態
err 一般的なエラー
warning 一般的な警告
notice 一般的な通知
info 一般的な情報
debug デバッグ情報
none ログを記録しない。指定されたファシリティのログを除外する役割を持つ

出力先

ログファイルやユーザーの端末、他のホストなどに選択することが出来る。この部分をアクションフィールドと呼ぶ。
ファイルであれば絶対パス、外部のsyslogサーバであれば「@サーバアドレス」とする。

アクションフィールド 説明
/var/log/messages ログファイルに出力
/dev/tty1 コンソール(tty1)に出力
@sv.example.com ホストsv.example.comにUDPで出力
@@sv.example.com ホストsv.example.comにTCPで出力
violet ユーザーvioletの端末に出力
* ログイン中のすべてのユーザーの端末に出力
# Logging much else clutters up the screen.
#kern.*                                                 /dev/console

# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none                /var/log/messages

# The authpriv file has restricted access.
authpriv.*                                              /var/log/secure

# Log all the mail messages in one place.
mail.*                                                  -/var/log/maillog

loggerコマンド

書式:logger [-p ファシリティ.プライオリティ][-t タグ] メッセージ
ログメッセージを生成するコマンド。syslog.confの設定をチェックする場合に利用出来る。

オプション 説明
-f 指定したファイルの内容を送信する
-p ファシリティ、プライオリティを指定する。デフォルトはuser.notice
#cronからのログ(重要度はerr)に「sample」というタグを付けをつけ「テストメッセージ」を送る
# logger -p cron.err -t sample "テストメッセージ"

systemd-journald

systemdの動作するシステムでデーモンを動作させ、ログの一元管理を行う。systemdから起動したプロセスの標準出力やsyslogへのログメッセージをバイナリ形式で記録する。
syslogの規格にも対応していて、同じファシリティ(ログの送信元)やプライオリティ(監視レベル)が指定できる。

デフォルトの設定では、バイナリ形式のログは/run/log/journal配下にシステム固有のディレクトリを作成し、その中のsystemd.journalジャーナルファイルに記録する。/runディレクトリはメモリ上に作成されたファイルシステム上のディレクトリのため、再起動するとデータが消える。

再起動によって消えないようにするには、/etc/systemd/journald.confでジャーナルファイルの保存先を成業する設定項目「Storage=persistent」を設定する。

systemd-catコマンド

書式:systemd-cat コマンド
systemdを採用したシステムで、コマンドの実行結果をジャーナルに書き込むことが出来るコマンド。

journalctlコマンド

書式:journalctl [オプション] 検索文字列
systemdを採用したシステムで、systemdのログ(ジャーナル)を閲覧できるコマンド。/var/log/jounal(不揮発性ストレージを使用:デフォルト)や/var/run/log/jounal(揮発性ストレージを使用)ディレクトリ内にあるバイナリファイルに保存され、一定量越えると古い物から消去される。
デフォルトではページャーによる表示を行うため、ページ単位での表示や文字列の検索が可能。

オプション 説明
-a(--all) 画面表示されない文字も含めて、省略せずすべて表示する
-b(--boot) ブート時のメッセージを表示する
-D(--directory) 指定されたディレクトリのログを表示
-e (--pager-end) ジャーナルの末尾(最新)を表示する
-f(--follow) ログの末尾を表示し続ける
-k (--dmesg) カーネルからのメッセージを表示
-l (--full) 画面表示可能なすべてのログを表示する。行数未指定時のデフォルトは10行
-n (--lines) 直近のログから指定行数分を表示。行数未指定時のデフォルトは10行
-o (--output) ログの出力形式を指定
-p(--priority) プライオリティ 指定したプライオリティより高いメッセージを表示する
-r (--reverse) ログを新しい順に表示する(デフォルトは古い物から)
-u(--Unit) 指定したUnitのログを出力する
-x 説明文付きで表示する
--full エスケープ文字を除いてプレーンテキストで出力する
--since 指定した日付時刻以降のログを表示
--until 指定した日付時刻以前のログを表示
--no-pager 1ページごとに表示せず、全てのログを出力する

バイナリファイルはlessコマンドなどで閲覧不可。設定によってはジャーナルは永続的に保存されず、システムの再起動によって消える。
設定ファイル/etc/systemd/jounald.comfで「Storage=persistent」となっていれば永続的に保存される。

検索キー 説明
_PID= プロセス番号の指定
_UID= ユーザーIDの指定
_SYSTEMD_UNIT= Unit名の指定

ログの調査

ログを調べることにより、システムの利用状況やソフトウェアの動作に異常がないかどうかを確認できる。また、問題の徴候を発見できることもある。
Debian,Ubuntuでは、/var/log/syslogが使用される

#ログファイルを継続して監視する
$ tail -f /var/log/messages

#特定のメッセージだけを調べる
$ grep eth0 /var/log/messages
ログファイル 説明
/var/log/secure 認証などセキュリティ関連のログが保存される。
/var/run/utmp ログイン中のユーザー情報が格納されている。who,wコマンドはこのファイルを参照している。
/var/log/wtmp lastコマンドが参照しているファイル。最近ログインしたユーザの一覧を表示する。ユーザのログイン/ログアウト情報が記録されているバイナリファイル
/var/log/lastlog lastlogコマンドが参照しているファイル

whoコマンド

ログイン中のユーザーを調べるコマンド

wコマンド

ログイン中のユーザーに加え、システム情報も表示されるコマンド。

lastコマンド

最近ログインしたユーザーの一覧を表示するコマンド

lastlogコマンド

ユーザー毎に最近のログイン一覧を表示するコマンド。一度もログインしたことがないユーザーは「**Never logged in**」と表示される。

ローテーション機能

古くなったログを切り分けて、ログファイルが肥大化するのを防ぐことが出来る。
logrotateユーティリティが提供し、cronを利用して定期的に実行される。/etc/logrotate.confファイルで設定を行う。

logrotateコマンド

書式:logrotate [オプション] 設定ファイル
ログ名、間隔、回数を設定ファイルで指定してローテーションすることが出来るコマンド。/etc/cron.daily/logrotateスクリプトにより1日1回実行される。

メール管理

電子メールを取り扱うソフトウェアはいくつか存在する。

  • MTA(Message Tranfer Agent)
    外部からのネットワーク経由でのメール転送依頼や、サーバ内部でのメール転送依頼を受け取り、メールキューに格納する。

  • MDA(Mail Delivery Agent)
    宛先ユーザ名を確認し、当該ユーザのメールスプールへ配送する。

  • MUA(Mail User Agent):メールクライアントソフトウェア

キャプチャ4.PNG

名称 特徴
sendmail 古くから使われるMTAで、様々なメール転送方式に対応している。1つのプログラムですべての処理を実行できる反面、設定は難解で専用のツールを使う必要がある。また、セキュリティ面での問題がたびたび発生したり、処理速度が遅いなどの問題もある。送信待ちの設定ファイルは/var/spool/mqueue/
postfix sendmailとの高い互換性を保ちながら、処理を高速化している。設定が容易でsendmailよりもセキュリティが向上しているため、最近の一部のLinuxディストリビューションで標準のMTAになっている
exim Debian系の標準MTA。設定は容易だが、日本語の情報ば比較的少ない。設定ファイルの内容はバージョンによって異なる
#SysVinit採用システムでの起動
# /etc/init.d/postfix start

#systemd採用システムでの起動
# systemctl start postfix.service

主要なメールサーバ

SMTP(Simple Mail Transfer Protocol):ポート番号25

メールを送信するために利用する通信プロトコル.。これがないとメールの送受信を行うことができない
送信元のメールサーバーから受信側のサーバーへメール転送する
オープンリレー設定はしないようにする

・オープンリレーとは??
MTA間でメールの転送を行うことをリレー(中継)といい、リレー対象を制限せず、誰からのメール送信、転送依頼でも受け付ける設定になっているMTA(SMTPサーバ)の事。誰でも利用できるため、悪質な迷惑メール(スパム)送信に使用されてしまう恐れがある

IMAP(Internet Message Access Protocol):ポート番号143

電子メールを受信する際に利用する通信プロトコル。メールサーバと接続しメールを閲覧する。メールサーバ上に保管されているので、職場以外のPCや自宅PC、スマホなどから同じ電子メールが閲覧できるバージョンが存在し、今はIMAP4

POP3(Post Office Protocol version 3):ポート番号110

利用者のPC上で動作するメールソフトが、メールサーバから自身のメール取り出す処理において使用するメール受信用プロトコル

mailコマンド

書式:mail [-s 題名] 宛先メールアドレスまたはユーザー名
メールの送受信に使用されるコマンド。引数なしで実行すると、メールボックスに届いているメールを確認することが出来る。
ユーザー名のみを指定すると、ローカルシステムのユーザー宛にメールを送ることが出来る。[-s]オプションはタイトル(Subject)を指定する。

$ mail -s samplemail student
〈本文入力〉
#入力終了時は「.」を入力する

sendmailコマンド

古くからあるMTAのsendmailでメール送信やMTAの制御のために使用されているコマンド。数無しで単独で実行すると、標準入力からメールのデータを受け取り、.(ピリオド)のみの行を受け取った時点でメールの送信をする。

MTAとしてPostfixやeximが動作しているシステムでも使用することができる。

newaliasesコマンド

メールアドレスの(別名)エイリアスを設定を有効にするコマンド。/etc/aliasesファイルを設定することで、rootユーザー宛に届いたメールを他のユーザーでも受け取ることが出来るようになり、rootユーザーにはメールが届かなくなる。編集後コマンドを実行させることで、設定を反映させることができる。

~/.forwardファイル

一般ユーザが自分宛のメールを、別のメールアドレスに転送したい時に設定するファイル。
各ユーザーのホームディレクトリに.forwardファイルを用意し、その中に転送先のメールアドレスを記述する。ユーザー各自で設定できるため、管理者の設定は不要。

mailqコマンド

送信待ちのメールが蓄えられるメールキューの内容を表示するコマンド。

宛先がDNSで検索できなかったメールなども保存される

プリンタ管理

CUPS(Common Unix Printing System)

多くのディストリビューションで採用されている印刷サブシステムのこと。
/etc/cups/printers.confファイルにプリンタに関する設定を記述する。設定ファイルは/etc/cups/cupsd.confで、UNIXの印刷サービスCUPSのデーモンcupsdの設定を行う。接続要求を受けるポート番号(デフォルトは631)や、接続するクライアントのアクセス制御などの設定を行う。

http://localhost:631
  • IPP(Intenet Printer Protocol)の採用
    ネットワーク上のプリンタをサポートするプロトコルで、インターネットを経由した印刷も可能

  • PPD(PostScript Printer Description)ファイルのサポート
    AdobeのPPD形式のファイル(テキストファイル)でデバイスドライブの設定が可能。プリンタの機種依存情報が記述され、中間形式(PDF、Postscript)からの変換ルールを提供する。
    /etc/cups/ppdディレクトリ以下にファイルは格納される。

  • Webベースで設定可能
    webブラウザから設定できるツールが組み込まれている

  • プリンタクラスのサポート
    複数のプリンタを1台のプリンタに見せかける機能をサポートしている

#SysVinit採用システムでの起動
# /etc/init.d/cups start

#systemd採用システムでの起動
# systemctl start cups.service

キャプチャ11.PNG

CUPSには、標準的なコマンドとレガシーなコマンドがある。レガシーなコマンドはLPD(Line Printer Daemon protocol)と互換性がある。

標準的なコマンド 説明
lp 印刷ジョブを生成し、プリントキューに登録
cansel プリントキューにある印刷ジョブを削除
lpstat プリントキューにある印刷ジョブを表示
レガシーなコマンド 説明
lpr 印刷ジョブを生成し、プリントキューに登録
lprm プリントキューにある印刷ジョブを削除
lpq プリントキューにある印刷ジョブを表示

lprコマンド

書式:lpr [オプション] ファイル名
ファイルを印刷するときのコマンド。指定されたファイルや標準入力をプリントキューに送る。

オプション 説明
-#部数 印刷部数を指定する
-Pプリンタ名 印刷を行うプリンタを指定する
#/etc/passwdファイルを5部印刷する
$ lpr -#5 /etc/passwd

#dmesgコマンドの出力を印刷する
$ dmesg | lpr

lpadminコマンド

作成書式:lpadmin -p プリンタ名 [オプション]
設定書式:lpadmin -d プリンタ名
削除書式:lpadmin -x プリンタ名

CUPSでのプリンタの登録や削除を行うことが出来るコマンド。

オプション 説明
-p 作成するプリンタ名を指定する
-E プリンタジョブを受け付け、プリンタへの出力を開始状態にする。
-v デバイスURIを指定する
-m modelディレクトリ/usr/share/cups/modelの下のPPDファイル名を指定する
-P PPDファイル名を指定する

lpqコマンド

書式:lpq [オプション] ユーザー名 ジョブ番号
プリントキューの内容を表示するコマンド。オプション指定せずに実行すると、デフォルトに設定されているプリンタのプリントキューを表示する。

オプション 説明
-Pプリンタ名 プリンタを指定する
-a 全てのプリントキューのジョブを表示する
ファイル内表示 説明
Rank 印刷ジョブの状態を表す。「active」は印刷中で、印刷待ちは何番目にあるか表示される
Owner 印刷を指示したユーザー
Job 印刷ジョブ番号
File 印刷対象のファイル
Total Size プリントキュー内でのファイルサイズ

lpstatコマンド

書式:lpstat [オプション]
SystemV系でプリントキューを表示するコマンド。

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

lpcコマンド

書式:lpc [コマンド]
コマンドの指定なしに実行すると、プロンプトが表示されて対話的なコマンドが実行できる。

lprmコマンド

書式:lprm [オプション] ジョブ番号
プリントキューにある印刷要求を削除するコマンド。一般ユーザーは自分の発行した印刷要求のみ、rootユーザーは全ての印刷要求を削除可能。

オプション 説明
-Pプリンタ名 プリンタを指定する
- 自分の全印刷ジョブを削除する

cupsdisableコマンド

指定したプリンタを停止状態にするコマンド。

オプション 説明
-c プリントキューの全てのジョブをキャンセル
-r 停止の理由を示すメッセージを指定。キューの状態の中にメッセージが表示される

cupsrejectコマンド

指定したプリンタへのジョブを受け付けないようにするコマンド

オプション 説明
-c プリントキューの全てのジョブをキャンセル
-r キューの状態の中にメッセージが表示される

GhostScript

PostScript言語のインタープリター。プリンタやデバイスのドライバが組み込まれていて、入力されたPostScriptを解釈し、プリンタやデバイスの形式に変換して出力する。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0