Centos7 で crontab + シェル スクリプトによる定期的な自動ファイル削除の問題を解決する

Centos7 で crontab + シェル スクリプトによる定期的な自動ファイル削除の問題を解決する

問題の説明:

最近、rsyncで毎回同期するデータ量が多いが、データベースのbakファイルを保持する必要があるという要望がある。

7日間保存するだけで十分なので、フォルダ内のbakファイルを自動的にクリーンアップする必要があります。

解決:

シェルスクリプトを使用してフォルダー内のタスクを定期的に削除する

1. シェルファイルを作成する

[root@zabbix スクリプト]# vim backup_sql_clean.sh
#!/bin/sh
/data1/backup/KDKDA\$AGKDPAYKT/XNAKSD/FXUIJ -mtime +10 -name "*.bak" -exec rm -rf {} \; を検索します。

パラメータの説明:

/data1/backup/KDKDA\$AGKDPAYKT/XNAKSD/FXUIJ #これはファイルパスです

-mtime +10 #これは保持する日数です。10は10日間を意味します

-name "*.bak" #これは削除するファイルの名前です。ここにサフィックスを追加すると、このタイプのファイルが削除されます

その他はLinuxコマンド

2. シェルファイルの権限を設定する

[root@zabbix スクリプト]# chown 777 backup_sql_clean.sh

3. crontabの定期実行を設定する

crontabコマンドは、定期的に実行される命令を設定するために使用されます。

Crontab 関連コマンドの説明: https://www.jb51.net/article/151069.htm

[root@zabbix /]# crontab -e
0 0 * * 7 /data/script/backup_sql_clean.sh

4. crondプロセスを開始する

crond の概念は crontab と切り離せません。 Crontab は、Unix および Unix 系オペレーティング システムでよく使用されるコマンドで、定期的に実行される命令を設定するために使用されます。

このコマンドは、標準入力デバイスから命令を読み取り、後で読み取って実行できるように「crontab」ファイルに保存します。そして、crond はそのデーモンです。

[root@zabbix /]# systemctl status crond.service #crond ステータスを表示 [root@zabbix /]# systemctl start crond.service #crond サービスを開始 [root@zabbix /]# systemctl restart crond.service #crond サービスを再起動

補充する;

CentOS7でのファイル削除スケジュールの紹介です

1. Linuxシステムに入る

2. 任意のディレクトリに、次のように sh というサフィックスを持つファイルを作成します。

3. 図に示すように、ファイルを編集して開きます。

4. キーボードの「i」キーまたは「insert」キーを押して編集モードに入ります。

入力:

#!/bin/sh
/data/iqmkj/backup/mysql を見つけます -mtime +7 -name "*.sql" -exec rm -rf {} \;

図に示すように:

例:

"/data/iqmkj/backup/mysql": 削除するファイルが保存されているディレクトリ。
「+7」: ファイルを保持する日数。つまり、数日以上経過したファイルは削除されます。
「*.sql」: 拡張子が .sql のファイルを削除します。
その他は固定文字です。

5: 編集したファイルを保存する

キーボードの「esc」キーを押して、現在のウィンドウに「:wq」と入力します。ファイルは正常に保存され、自動的にメイン インターフェイスに戻ります。

6. ファイルを承認する

入力:

chown 777 バックアップ_mysql.sh

認証に失敗した場合は、ファイルを直接選択し、右クリックして権限をすべてチェックするか、「777」に設定してください。

7: Centos7のスケジュールされたタスクを使用してタイマーを作成する

メイン インターフェイスに「crontab -e」と入力して、スケジュールされたタスク編集インターフェイスに入ります。

8. スケジュールされたタスクを設定する

「0 4 * * * /data/iqmkj/backup/mysql/backup_mysql_clean.sh」を挿入します。
例:
ファイル パスは、2 番目の手順で作成されたファイル パスです。

9. スケジュールされたタスクの設定を保存する

キーボードの「esc」キーを押して、現在のウィンドウに「:wq」と入力します。ファイルは正常に保存され、自動的にメイン インターフェイスに戻ります。

10. タイマーを開始する

メイン インターフェイスに「/bin/systemctl start crond.service」と入力します。これですべての設定が完了しました。

例:

スケジュールされたタスクを開始します: /bin/systemctl start crond.service
スケジュールされたタスクを停止します: /bin/systemctl stop crond.service
スケジュールされたタスクを再起動します: /bin/systemctl restart crond.service
スケジュールされたタスクのステータスを確認します: /bin/systemctl status crond.service

要約する

上記は、Centos7 で crontab + シェル スクリプトを使用して定期的にファイルを自動的に削除する問題を解決する方法について紹介したものです。お役に立てば幸いです。ご質問がある場合は、メッセージを残してください。すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

以下もご興味があるかもしれません:
  • CentOS7 で Jenkins+Maven+Git 継続的インテグレーション環境を構築する方法
  • Win10にCentOS7仮想マシンをインストールする
  • CentOS7仮想マシンで固定IPアドレスを設定する方法
  • Centos7 に Nginx 統合 Lua サンプル コードをインストール
  • CentOS7.6 システムで yum を使用して lnmp 環境を構成する方法
  • CentOS7.3 での MySQL 8.0.13 のインストールと設定のチュートリアル
  • Centos7 での Rsync+crontab 定期同期バックアップ
  • Centos7 に php7 をコンパイルしてインストールし、php-fpm モードで Apache に接続する
  • Centos7 に mysql 8.0.13 (rpm) をインストールする詳細なチュートリアル
  • Centos7のホスト名を変更する3つの方法

<<:  Vue ターンテーブル抽選の簡単な実装

>>:  mysql5.7.18 解凍バージョンで mysql サービスを起動します

推薦する

あるテーブルからバッチデータをクエリし、それを別のテーブルに挿入する MySQL の完全な例

事前に言っておくNodejs はデータベースを非同期操作として読み取るため、データベースがデータを読...

CocosCreatorでクールなレーダーチャートを描く方法

目次序文プレビュー文章グラフィックコンポーネントプロパティ機能グリッドを描く軸角度を計算するスケール...

レスポンシブWebデザイン学習(1) - 画面サイズと使用率の決定

最近では、モバイルデバイスがますます普及しており、ユーザーがスマートフォンやタブレットを使用して W...

vue で h5 側のアプリを開きます (Android か Apple かを判断します)

1. 開発環境 vue+vant 2. コンピュータシステム Windows 10 Profess...

バージョン管理ツール Rational ClearCase の紹介

Rational ClearCase は、コードやその他のソフトウェア開発資産のバージョン管理を実...

ROS2のインストールとdocker環境の使い方について

目次Docker を使用する理由は何ですか? DockerのインストールROSイメージを取得するRO...

Ubuntu で .sh ファイルを実行するいくつかの方法の違いについて簡単に説明します。

序文特に bash 環境では、スクリプトの実行方法によって結果が異なります。スクリプトを実行する方法...

JS変数ストレージのディープコピーとシャローコピーの詳しい説明

目次可変タイプとストレージスペーススタックメモリとヒープメモリ基本的なデータ型参照タイプグラフィック...

Javascript配列の重複排除のいくつかの方法の詳細な説明

目次アレイ重複排除1 2層forループ(バブルソートの2層ループ記述に類似) 2 ループとインデック...

JavaScript parseInt() と Number() の違いのケーススタディ

学習目標: parseInt() と Number() という 2 つの関数は、文字列をデータ型に変...

21 の MySQL 標準化および最適化のベスト プラクティス!

序文良い習慣はすべて宝物です。この記事は、SQL の後悔の治療法、SQL パフォーマンスの最適化、S...

Vue でスクロールバーのスタイルを変更する方法

目次まず、スクロール バーのスタイルを変更するには、疑似要素-webkit-scrollbarを使用...

MySQL 8.0 で列を素早く追加する方法

序文: MySQL 8.0 では高速な列追加がサポートされ、数秒で大きなテーブルにフィールドを追加で...

イメージのアップロードとダウンロードに docker をプロキシするためのプライベート ライブラリとして nexus を使用する

1. Nexusの設定1. Dockerプロキシを作成する外部ネットワーク ウェアハウスからローカル...