Linux システムでログを手動でスクロールする方法

Linux システムでログを手動でスクロールする方法

ログローテーションは、Linux システムでは非常に一般的な機能です。ログローテーションは、システムの監視とトラブルシューティングに必要なログコンテンツを保持しながら、ログが多すぎて 1 つのログファイルが大きくなりすぎるのを防ぎます。

ログ ローリング プロセスは、ログ ファイルのグループのうち、番号が最も大きい (最も古い) ログ ファイルが削除され、残りのログ ファイルに連続した番号が付けられて古いログ ファイルが置き換えられ、新しいファイルが現在のログ ファイルとして置き換えられます。このプロセスは簡単に自動化でき、必要に応じて詳細を微調整できます。

ログローテーション操作を手動で実行するには、 logrotateコマンドを使用します。この記事では、手動でログをローリングする方法と期待される結果を紹介します。

この記事の例は、Ubuntu などの Linux システムに適用されます。他の種類のシステムでは、ログ ファイルと構成ファイルが異なる場合がありますが、ログ ローリング プロセスは同様です。

なぜ丸太を転がす必要があるのでしょうか?

通常、ログ ファイルを手動でローテーションする必要はありません。 Linux システムは、1 日おき (またはそれ以上) に、またはログ ファイルのサイズに応じて、ログを自動的にローテーションします。ストレージ領域を解放するため、またはログの一部を現在のアクティビティから分離するためにログをローテーションする必要がある場合は、ファイル ローテーション ルールに応じて簡単に実行できます。

ちょっとした背景

Linux システムがインストールされると、ログローテーションの範囲に多くのログファイルが含まれるようになります。さらに、一部のアプリケーションでは、インストール時に生成されるログ ファイルのローテーション ルールも設定されます。一般的に、ログローテーション設定ファイルは/etc/logrotate.dに配置されます。ログローリングの詳細な実装を知りたい場合は、この以前の記事を参照してください。

ログのローリング中、アクティブ ログの名前は log.1 などの新しい名前に変更され、以前に log.1 という名前だったファイルは log.2 に名前が変更されます。このファイル セットでは、最も古いログ ファイル (たとえば、log.7) がシステムから削除されます。ログのローテーション時に保持されるログ ファイルの命名方法と数は、 /etc/logrotate.d logrotate.d ディレクトリ内の構成ファイルによって決まります。そのため、ログ ファイルによっては、数回のローテーションでのみ保持されるものもあれば、7 回以上ローテーションされるものもあります。

たとえば、ログのローテーション後、syslog は次のようになります (行末のコメントは、ローテーション プロセスがファイル名にどのように影響するかを示すためだけのものであることに注意してください)。

$ ls -l /var/log/syslog*
-rw-r----- 1 syslog adm 128674 Mar 10 08:00 /var/log/syslog <== 新しいファイル -rw-r----- 1 syslog adm 2405968 Mar 9 16:09 /var/log/syslog.1 <== 以前の syslog
-rw-r----- 1 syslog adm 206451 3月9日 00:00 /var/log/syslog.2.gz <== 前の syslog.1
-rw-r----- 1 syslog adm 216852 3月8日 00:00 /var/log/syslog.3.gz <== 以前の syslog.2.gz
-rw-r----- 1 syslog adm 212889 3月 7日 00:00 /var/log/syslog.4.gz <== 以前の syslog.3.gz
-rw-r----- 1 syslog adm 219106 3月 6日 00:00 /var/log/syslog.5.gz <== 以前の syslog.4.gz
-rw-r----- 1 syslog adm 218596 3月5日 00:00 /var/log/syslog.6.gz <== 以前の syslog.5.gz
-rw-r----- 1 syslog adm 211074 3月4日 00:00 /var/log/syslog.7.gz <== 以前の syslog.6.gz

現在アクティブなログと最後にロールされたログ ファイルを除き、他のすべてのファイルはストレージ スペースを節約するために圧縮されていることがわかります。この設計の理由は、ほとんどのシステム管理者は最新のログ ファイルのみをチェックすればよいからです。残りのログ ファイルは圧縮されており、必要に応じて解凍してチェックできます。これは良い妥協案です。

手動ログローテーション

logrotate コマンドを実行して、ログを手動でローテーションすることができます。

$ sudo logrotate -f /etc/logrotate.d/rsyslog

logrotateコマンドは設定ファイル/etc/logrotate.d/rsyslogを使用し、-f パラメータを通じて「強制ローテーション」を実装することに注意してください。したがって、全体のプロセスは次のようになります。

  • syslog.7.gzを削除します。
  • 元のsyslog.6.gzの名前をsyslog.7.gzに変更します。
  • 元のsyslog.5.gzの名前をsyslog.6.gzに変更します。
  • 元のsyslog.4.gzの名前をsyslog.5.gzに変更します。
  • 元のsyslog.3.gzの名前をsyslog.4.gzに変更します。
  • 元のsyslog.2.gzの名前をsyslog.3.gzに変更します。
  • 元のsyslog.1.gzの名前をsyslog.2.gzに変更します。
  • ただし、必ずしも新しい syslog ファイルを作成する必要はありません。

ファイルの所有権と権限が正しいことを確認するには、次のコマンドを実行します。

$ sudo touch /var/log/syslog
$ sudo chown syslog:adm /var/log/syslog
$ sudo chmod 640 /var/log/syslog

/etc/logrotate.d/rsyslogに次の行を追加して、 logrotate上記の 3 つのコマンドを実行させることもできます。

0640 syslog adm を作成

構成ファイル全体の内容は次のとおりです。

ログファイル
{
7回転
毎日
行方不明
空でない
0640 syslog adm を作成 <==
遅延圧縮
圧縮する
後回転
rsyslog は、次のディレクトリに格納されます。
終了スクリプト
}

以下は、ユーザーのログイン情報を記録する wtmp ログを手動でスクロールする例です。 /etc/logrotate.d/wtmp の rotate 2 の設定により、システムには wtmp ログ ファイルのコピーが 2 つだけ保持されます。

巻く前に:

$ ls -l wtmp*
-rw-r----- 1 ルート utmp 1152 3月12日 11:49 wtmp
-rw-r----- 1 ルート utmp 768 3月11日 17:04 wtmp.1

スクロールコマンドを実行します。

$ sudo logrotate -f /etc/logrotate.d/wtmp

スクロール後:

$ ls -l /var/log/wtmp*
-rw-r----- 1 ルート utmp 0 3月12日 11:52 /var/log/wtmp
-rw-r----- 1 ルート utmp 1152 3月12日 11:49 /var/log/wtmp.1
-rw-r----- 1 ルート adm 99726 2月 21 07:46 /var/log/wtmp.report

ログ ローリングが自動か手動かに関係なく、最新のローリング時間がlogrorateステータス ファイルに記録されることを知っておくことが重要です。

$ grep wtmp /var/lib/logrotate/status
「/var/log/wtmp」 2020-3-12-11:52:57

要約する

Linux システムでの手動ローリング ログに関するこの記事はこれで終わりです。Linux ローリング ログに関する関連コンテンツをさらにご覧になりたい場合は、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Linux環境でログファイルを表示するコマンドの詳細な説明
  • Linux ログ表示方法 6 つのまとめ
  • Linux のタイムドログ削除を実装する簡単な方法
  • Linux環境でglogログライブラリを使用する方法
  • Linuxシステムのログの詳細な紹介

<<:  jQuery+h5 で 9 マス抽選特殊効果を実現 (フロントエンドとバックエンドのコード)

>>:  Navicat が MySQL にリモート接続するときに発生する 10060 不明エラーを解決する方法

推薦する

Linux ファイル/ディレクトリの権限と所有権の管理

1. ファイルの権限と所有権の概要1. アクセス権Read r: ファイルの内容を表示し、ディレクト...

Vue ルーターにパラメータを渡すときにページを更新するとパラメータが失われる問題に対処する方法

目次概要方法1: params経由でパラメータを渡す方法2: クエリを通じてパラメータを渡す方法3:...

HTMLからPDFへの変換のための純粋なクライアント側と純粋なサーバー側の実装ソリューション

必要ユーザーがフォームに入力して「保存」をクリックすると、PDF ドキュメントを直接ダウンロードでき...

Linux システムでデプロイメント プロジェクトを設定する方法

1. ファイアウォールの設定を変更し、対応するポートを開きますLinux システムのファイアウォール...

Dockerを使用してプライベートGitLabを構築する2つの方法

最初の方法: docker インストール1. オープンソース版のイメージを取得する2. 対応するデー...

mysql5.6 の無効な utf8 設定の問題を解決する

mysql5.6 のグリーン バージョンを解凍すると、my-default.ini ファイルが作成さ...

Docker Docker の保存場所を変更する コンテナイメージのサイズ制限を変更する操作

これは新しいバージョンではもう不可能なようで、推奨されません。そうでない場合は、ソフト リンクを直接...

Vue3 トランジションアニメーションの落とし穴記録について

目次背景問題の場所さらなる分析要約する背景私のコース「Vue 3 エンタープライズレベルの音楽アプリ...

WeChat パブリック アカウントの録音ファイルを再生して保存します (amr ファイルを mp3 に変換)

目次オーディオトランスコーディングツール原理JAVE プロジェクトの問題このプロジェクトの特徴拡張機...

TortoiseSvn Little Turtle インストール 最新の詳細なグラフィックチュートリアル

tortoiseGit のインストール時にいつも問題があったので、単純に svn に変更しました。途...

優れたユーザー エクスペリエンス デザイナーが行うべき 5 つのこと (画像とテキスト)

この記事は、@C7210 によって翻訳されたブログ「Usability Counts」からの翻訳です...

複雑なウェブサイトのナビゲーションを簡素化

<br />ナビゲーション設計は構造設計における主要なタスクの 1 つです。ソフトウェア...

IE で ClearType をオンにした後の透明フォントの問題の解決方法

IE で ClearType をオンにした後に発生する透明フォントの問題を解決するには、透明要素に背...

MySQL ストアドプロシージャの長所と短所の分析

MySQL バージョン 5.0 ではストアド プロシージャのサポートが開始されました。ストアド プロ...

MySQLがOracleのnvlと同様の機能を持つことができるかどうかについての簡単な議論

isnullの代わりにifnullを使用するisnull は、null かどうかを判断するために使用...