
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/journal
systemdはリンクが指すファイルシステムではなく、リンク自体がマウントされるファイルシステムのみを待ちます。したがって、ソートは機能しません。
バインドインストールを介してこの問題を解決できます。他のファイルシステムにシンボリックリンクする代わりに、/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
答え2
~からシステムログマニュアルページ:
ログサービスはログデータを/var/log/journalに永続的に保存するか、/run/log/journal/に一時的に保存します(後者の場合、再起動時にログデータが失われます)。デフォルトでは、ログデータは起動時に/var/log/journal/が存在する場合は永続的に保存され、そうでない場合は揮発性リポジトリに暗黙的に置き換えられます。 /var/log/journal/ 存在するかどうかにかかわらず、ログ・データの配置場所を構成するには、ジャーナル d.conf(5) で Storage= を使用します。
したがって、ログを他の場所に保存することが可能で安全です。追加/変更するだけです
Storage=/some-filesystem-with-free-space/some-dir/
存在するログ構成ファイルの1つ。