/ではなく、ファイルシステムのログパスになることができますか?

/ではなく、ファイルシステムのログパスになることができますか?

journalマウントされたデバイスにデフォルトのディレクトリを保存したいのですが、これがデバイスがマウントされる前に実行できる重要なサービスであるため、突然の直接変更が発生する可能性があるため、/var/log/journal/これが可能かどうかはわかりません。journal

マウントされたデバイスにディレクトリを保存するのは安全で可能ですか?journalそれでは、簡単なインストールが機能しない場合はどうすればよいですか?

アイテムのディレクトリリストjournal

2019-03-18 22:16:41 root@AAEB-APP206LY:/var/log/journal/d41cf15550e34487abe7103b61fbf794 => ll
total 792M
drwxr-sr-x  1 root systemd-journal  884 Mar 12 06:35 ./
drwxr-sr-x  1 root systemd-journal   64 Feb 26 18:17 ../
-rw-r-----  1 root systemd-journal  96M Mar 18 22:16 system.journal
-rw-r-----  1 root root            120M Feb 26 18:17 system@d5301574c947425cb992f7839ae52cdb-0000000000000001-0005827c7effc14d.journal
-rw-r-----  1 root systemd-journal  96M Mar  5 12:29 system@d5301574c947425cb992f7839ae52cdb-0000000000051acb-000582cf3a7ba719.journal
-rw-r-----  1 root systemd-journal  96M Mar 12 06:35 system@d5301574c947425cb992f7839ae52cdb-00000000000872b4-000583572e31154d.journal
-rw-r-----+ 1 root systemd-journal 128M Mar 18 22:16 user-5000.journal
-rw-r-----+ 1 root root            128M Mar  5 12:29 user-5000@cf6acecdf28e48c790173a36447ec2e7-0000000000051ad9-000582cf3d435013.journal
-rw-r-----+ 1 root systemd-journal 128M Mar 12 06:35 user-5000@cf6acecdf28e48c790173a36447ec2e7-00000000000872b9-000583572e312040.journal

ご覧のとおり、基本パーティションを埋めるのにほぼ800MBを占めています。したがって、別のファイルシステムに保存するというアイデアです。

ベストアンサー1

私が知る限り、systemdの事前定義されたログディレクトリの場所を変更する方法はなく、2つの/run/log/journalオプションのどちらを使用するかを選択できる設定オプションが/var/log/journalあります。Storageただし、パスを変更することはできません/anotherfs/log/journal

あなたができることは、/var/log/journalを別のディレクトリへのシンボリックリンクにし、そのディレクトリを別のファイルシステムに配置することです。 Systemd-tmpfilesはこのリンクを自動的に設定できます。

この内容を含むファイルを次の場所に配置してください/etc/tmpfiles.d/

L     /var/log/journal     -    -    -     -      /anotherfs/journal

これが存在しない場合は、/var/log/journal他のファイルシステムへのリンクになり、ログはその場所に移動されます。

しかし、それは別の問題に直面する可能性が高いです。 Journaldは、起動時に/runの非永続ログ使用を/varの永続ログ使用に切り替え、ログデータを/runから/varにフラッシュします。明らかに私たちはこの移行をしなければなりません後ろに /anotherfsインストールされました!シンボリックリンクがrootfsまたは/var/log現在と同じfsを指している場合、これは問題ではなく、ログデータのあるパスを変更する方法でうまく機能します。

これらのソート(ファイルシステムのマウント後のログフラッシュ)は通常、プロパティを介してsystemd-journal-flush.service行わRequiresMountsFor=/var/log/journalれます。シンボリックリンクの場合、/var/log/journalsystemdはリンクが指すファイルシステムではなく、リンク自体がマウントされるファイルシステムのみを待ちます。したがって、ソートは機能しません。

バインドインストールを介してこの問題を解決できます。他のファイルシステムにシンボリックリンクする代わりに、/var/log/journal他のファイルシステムのディレクトリを/var/log/journal

名前が次のような単位ファイルを作成しますvar-log-journal.mount

[Unit]
Description=Persistent Journal Storage Bind

[Mount]
What=/anotherfs/journal
Where=/var/log/journal
Type=none
Options=bind

[Install]
WantedBy=local-fs.target

インストールして有効にします。ログフラッシュデバイスはマウントされたデバイスがあることを確認しvar-log-journal(正確な名前だけを探します!)、それを待ちます。マウントユニットはディレクトリ/anotherfs/journal/var/log/journal/anotherfs/var/log/journal

おすすめ記事