手を挙げて、サーバーを再起動したい人は何人いますか?手が見えません。
長い稼働時間は印象的ですね。これにより、本番システムでの853日間の稼働時間を自慢できるクールな子供たちの1人になります。それほどクールではないのは、ユーザーが/tmp
を使用することを好むことです。 システム全体の健全性や稼働時間の自慢の権利に関係なく、個人的なゴミ捨て場として。また、再起動してもユーザーファイルは削除されず、システムファイルのみが削除されます。サービスが再起動してユーザーがアプリケーションを開くまでは一時的なものです。
注: 再起動後にユーザーの一時ファイルを削除しない場合の例外は、
tmp.mount
を有効にすることです。 、しかしそれは別の記事のトピックです。さらに、RHEL7以降のシステムハウスキーピングスクリプトが用意されています。
/tmp
からファイルを削除するポリシーにユーザーを強制的に準拠させることはできません。 タイムリーにディレクトリ。したがって、数十、数百、さらには数千の/tmp
がある場合、システム管理者は何をすべきでしょうか。 処理するディレクトリとユーザー?答えは、ユーザーファイルのハウスキーピングスクリプトを展開することです。
ハウスキーピングスクリプトを作成して、crontab
に配置できます。 /tmp
からユーザーファイルを定期的に削除します ディレクトリ。残念ながら、ユーザーに提供するために必要なサービスです。ほとんどのベテランのシステム管理者は、/tmp
からファイルを削除するべきではないと言うでしょう ただし、それらが使用されていないことがわかっている場合を除きます。それは良いアドバイスです。一部のサービスは、ロックファイルを/tmp
に書き込みます 、一部のアプリケーションはそれを使用し、ユーザーはそれを使用します。では、ハウスキーピングスクリプトが問題なく一掃できるファイルをどのように判断しますか?
[無料ダウンロード:高度なLinuxコマンドのチートシート。 ]
最後にアクセスした時間でファイルをフィルタリングするのはどうですか? /tmp
に残っているファイルに時間制限がある場合は、これは良い選択です。 。たとえば、ファイルが/tmp
に残っていることをユーザーに警告する場合 2日間アクセスされなかった場合、ディレクトリは削除されます。ローリングベースで、注意が必要です。 rootユーザーが所有するファイルも除外すると、ユーザーファイルに最終アクセス時刻を使用することで問題が解決します。たとえば、次を使用します:
find /tmp -type f \( ! -user root \) -atime +2
このスクリプトは、/tmp
内のすべてのファイルを表示します 2日以上前にアクセスされたrootが所有していないディレクトリ。次に、コマンドの削除スイッチを追加します。
find /tmp -type f \( ! -user root \) -atime +2 -delete
そのテキストをファイルにコピーして実行可能にし、crontab
を作成します このスクリプトを8時間ごとに実行するエントリ。たとえば、これをcrontab
に追加できます。 :
* */8 * * * /opt/scripts/tmp.clean.sh
このスクリプトとスケジュールにより、/tmp
ディレクトリは比較的ゴミがない状態に保たれています。ただし、これは絶対確実ではありません。ユーザーが大量のデータを/tmp
にダンプすることにした場合 ディレクトリの場合、このアクションにより、SSH経由でシステムにログインできないなどの他の問題が発生する可能性があります。
/tmp
の維持 ディレクトリは簡単ではありません。ユーザーはファイルを/tmp
にダンプするのが大好きです そしてそれらを無期限にそこに残します。幸いなことに、繰り返し犯した場合は、マネージャーが問題を解決するまで、アカウントをロックしたり、システムにアクセスできなくなったことを示す強力なメールを送信したりする可能性が常にあります。これらの戦術は通常、ユーザーの注意を引き、それ以上の攻撃はまれです。