Linuxはシェルスクリプトを使用して履歴ログファイルを定期的に削除します

Linuxはシェルスクリプトを使用して履歴ログファイルを定期的に削除します

1. ツールディレクトリのファイル構造

[root@www tools]# ツリーツール/
ツール/
├──ビン
│ ├── 履歴ファイルを削除する
│ 
└──など
  ├── del_history_files.cfg
 
2 つのディレクトリ、2 つのファイル

2. 履歴ファイルを削除するスクリプト del_history_files

[root@www tools]# その他の tools/bin/del_history_files
#!/bin/sh
 
# 指定されたディレクトリ内の、指定された時間ノードより前のファイルを削除します。時間の粒度: 時間# 設定ファイルの形式: クリーンアップするディレクトリ = 時間数#
#
# 制限パスを定義する
PATH="/bin:/usr/bin:/sbin:/usr/sbin"
 
# adirname - 指定されたファイルの絶対ディレクトリ名を返す
adirname() { odir=`pwd`; cd `dirname $1`; pwd; cd "${odir}"; }
 
 
# ---------
# 定数
# ---------
MYNAM=`ベース名 "$0"`
MYDIR=`ディレクトリ名 "$0"`
MYCFG="${MYDIR}/../etc/${MYNAM}.cfg"
MYTMP="${MYDIR}/../tmp"
MYLCK="${MYTMP}/${MYNAM}.ロック"
 
# ロックを実行します(シェル内で可能な限り)
[ -s "${MYLCK}" ] && kill -0 `cat "${MYLCK}"` 2>/dev/null &&
    die "${MYNAM}: すでに実行中です!"
echo "$$" > "${MYLCK}"
 
PATHS=(`cat ${MYCFG}`)
${PATHS[@]}のPPの場合
する
  APP_PATH=`echo ${PP} | awk -F'=' '{print $1}'`
  N=`echo ${PP} | awk -F'=' '{print $2}'`
    [ -d ${APP_PATH} ] の場合;
    T=`/bin/date --date "${N} 時間前" "+%Y%m%d%H%M"`
    TMP_FILE="/tmp/`echo ${PP} | md5sum | awk '{print $1}'`"
    タッチ -t ${T} ${TMP_FILE}
    ${APP_PATH} を見つけてください! -新しい ${TMP_FILE} -type f -print0 | xargs -0 -n 100 rm -rf
    ${APP_PATH} を見つけます -type d -empty -print0 | xargs -0 -n 100 rm -rf &> /dev/null
    フィ
終わり
 
rm -rf ${MYLCK}

3. 履歴ファイルスクリプトの設定ファイルdel_history_files.cfgを削除します。

[root@www tools]# その他のツール/etc/del_history_files.cfg
# クリーンアップするディレクトリ = 時間数 /home/logs/nginx=720
/home/logs/varnish=720

4. crontabを実行する

[root@www tools]# /etc/crontab の詳細
シェル=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=ルート
ホーム=/
#古いログをクリア
00 6 * * * ルート /home/tools/bin/del_history_files

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Windows および Linux で特定の日より古いファイルを定期的に削除するスクリプト
  • Linux のスクリプトを使用して Oracle データベースを自動的にバックアップし、指定した日数より古いバックアップを削除します。
  • Linux 無効なリンク ファイル スクリプトの共有を削除する
  • 誤って削除されないようにするためのカスタム Linux スクリプトのアイデアとテスト

<<:  React+axios は github 検索ユーザー機能を実装します (サンプル コード)

>>:  MySQL でよく使われる連結文のまとめ

推薦する

Vueルータールーティングガードの詳細な説明

目次1. グローバル beforeEach 1. グローバル beforeEach 2. 実装2. ...

Dockerコンテナのホスト間通信におけるダイレクトルーティングの詳細な説明

概要Docker 自体の現在のデフォルト ネットワークについては、単一ホスト上の異なる Docker...

Dockerでの接続例外中のエラーを解決する

Docker を初めて使い始めると、通常とは異なる問題に遭遇して、必然的に混乱してしまいます。大丈夫...

この記事ではCSSボーダーの使い方を説明します

境界線のスタイルborder-style プロパティは、表示する境界線の種類を指定します。 bord...

ウェブページのカスタム選択ボックス選択

選択ドロップダウン リスト フォームは誰もがよく知っているかもしれませんが、デフォルトのドロップダウ...

ウェブページ作成における絶対パスと相対パスの違い

1. 絶対パスまず、ローカル コンピューターでは、ファイルの絶対パスは、当然、ハード ディスク上でフ...

Centos7はMySQLログに基づいてデータを復元するためのサンプルコードを実装します

導入Binlog ログ、つまりバイナリ ログ ファイルは、データベースに対するユーザー操作の SQL...

1 つの記事で Nginx ロケーション マッチングの実装を理解する

チームはフロントエンドとバックエンドを分離しているため、フロントエンドが Nginx とノード層を引...

Nginx レイヤー 4 負荷分散構成ガイド

1. レイヤー4負荷分散の概要レイヤー 4 ロード バランシングとは何ですか?いわゆる 4 層負荷分...

最初のReactページを作成する方法

目次Rractとは何ですか?背景React スキャフォールディングJSXとは何かRractとは何です...

丸い角や鋭い角を表現するために、絵の代わりに文字を使用する研究

Google Gmail ページから撮った次のスクリーンショットをご覧ください (同じ場所からスクリ...

Vueは、選択した月に応じて日付に対応する曜日を動的に表示します。

私たち謙虚なプログラマーは、今でもこう歌わなければなりません。「あなたも私も、この世に生まれて、一日...

MySQLのさまざまなオブジェクトのサイズと長さの制限について話しましょう

目次識別子の長さ制限権限テーブルの範囲フィールドの長さ制限データベースとテーブルの数の制限テーブルサ...

MySQLストアドプロシージャの原理と使用法の詳細な説明

この記事では、例を使用して、MySQL ストアド プロシージャの原理と使用方法を説明します。ご参考ま...

MySQL 8.0.12 クイックインストールチュートリアル

MySQL 8.0.12 のインストールには 2 日かかり、さまざまな問題が発生しました。以下にまと...