私の/ var/log/lastlogファイルは巨大です。実際には数キロバイトしかないことはわかっていますが、tarはそれを知るのに十分なほど賢くないので、仮想マシンをイメージすると、ディスクの容量よりも多くのデータを読み込もうとしていると思われるため、復元が失敗します。
/ var/log/lastlogを削除して、ファイルへのすべてのログを停止したいと思います。私はセキュリティへの影響を認識しています。バックアップ戦略を維持するには、このロギングを停止する必要があります。
/etc/pam.d/loginに変更を加えたところ、/ var/log/lastlogへのログ記録が無効になると言われましたが、/ var/log/lastlogが増え続けるため、機能していないようです。
# Prints the last login info upon succesful login
# (Replaces the `LASTLOG_ENAB' option from login.defs)
#session optional pam_lastlog.so
何か案は?
[〜#〜]編集[〜#〜]
興味のある方は、CentrifyExpressを使用してLDAP経由でユーザーを認証します。 Centrify Expressは「無料」ですが、欠点の1つは、LDAPを介してユーザーUIDを管理できないため、サーバーにログインしたときに動的UIDが与えられることです。 Centrifyはいくつかのクレイジーな高いUID値を選択します(おそらく、サーバー上のローカルユーザーと競合しません)。/var/log/lastlogはUIDによってインデックスが付けられ、システム上の最大のUIDに対応するように拡張されます。これは、Centrifyユーザーがログインすると、UID範囲の上限のUIDを取得することを意味します。これにより、ファイルシステムによると、lastlogはわいせつな量のスペースを割り当てます。
~$ ll /var/log/lastlog
-rw-rw-r-- 1 root root 291487675780 Apr 10 16:37 /var/log/lastlog
~$ du -h /var/log/lastlog
20K /var/log/lastlog
More Into ---> スパースファイル
このコマンドを試してください:
ln -sfn /dev/null /var/log/lastlog
ここでの最善の解決策は、私の意見では、tarの-S/--sparseオプションを使用して、スパースファイルを適切に処理することです。
サードパーティがシステムtarを使用している場合は、tarの名前をtar.realに変更します。次に、サードパーティソフトウェアによって呼び出された場合にのみ-Sを使用するtarというスクリプトを作成します。
より良いのは、ラッパースクリプトを介してサードパーティを呼び出すことです。このスクリプトは、パスの前に特別なbin dirを追加します。ここで、tarのラッパーがあり、サードパーティが絶対パスを使用していない場合にのみ機能します。