私はファイルを効率的にスパイする方法を尋ねるいくつかの質問を読んでrsync
、ファイル/var/log/lastlog
と/var/log/faillog
。
それで、私が気になったのは、これらのファイルをまれに大きなファイル(私の場合は1.1TB)として持つ必要性/背景の動機ですか?
これに関連するフォローアップ:ログファイルであると仮定しているため、このファイルを切り捨てることにはあまり興味がありません。このファイルを切り取って破損したものはありますか?
ベストアンサー1
それで、私が気になったのは、これらのファイルをまれに大きなファイル(私の場合は1.1TB)として持つ必要性/背景の動機ですか?
状況はこうなります。
/var/log/lastlog
そのようなログファイルの代わりに、/var/log/syslog
名前は「最後のログファイル」ではなく「最後のログインリスト」でなければなりません。
これはpam_lastlog(8)
モジュールによって維持され、基本的には次のような配列です。
struct lastlog {
time_t ll_time; // 4
char ll_line[UT_LINESIZE]; // 32
char ll_host[UT_HOSTSIZE]; // 256
} entry[UINT_MAX];
一般的なx86-64システムのフィールドサイズは注釈に記載されています。 1つの項目は4 + 32 + 256 = 292バイトでなければなりません。
pamモジュールを使用するプログラムは、pam_lastlog(8)
ユーザーにログインするたびにそのuid * sizeof(struct lastlog)
ユーザーに対応するエントリを見つけて上書きします。
このファイルを切り取って破損した部分がありますか?
あなたは実際にコマンドの出力を破損しており、lastlog(1)
とにかく誰もそれを使用しません;-)