ホームページ  >  記事  >  バックエンド開発  >  Linux スケジュールされたファイル クリーニング スクリプト シェル

Linux スケジュールされたファイル クリーニング スクリプト シェル

伊谢尔伦
伊谢尔伦オリジナル
2016-11-29 10:41:181134ブラウズ

仕事でよく使うものはすべてインターネットから収集したもので、簡単に検索できるように記録します

ステートメントの作成:

対応するディレクトリを検索 -mtime + 日数 -name "ファイル名" -exec rm -rf {} ;

例 1:

find /usr/local/backups -mtime +10 -name "*.*" -exec rm -rf {} ;

は、/usr/local/backups 内の「.」を含むすべてのファイルを検索します。ファイルの削除

find: Linux の検索コマンド、ユーザーは指定された条件でファイルを検索します

/usr/local/backups: クリーンアップしたい任意のディレクトリ

-mtime: 標準的なステートメントの記述

+10: 10 日前のファイルを検索 ファイル、ここの数字は日数を表します。+30 は 30 日前のファイルを検索することを意味します

"*.*": 検索するデータ タイプ、"*.jpg" はすべてのファイルを検索することを意味します拡張子が jpg のファイル、「*」はすべてのファイルを検索することを意味します。これは柔軟に使用できます。一例から推測します

-exec: 書き込み方法を修正

rm -rf: ディレクトリを含むファイルの強制削除

{} ;: 中括弧 + スペースのペア++という書き方を修正しました

例2 :

1.#touch /usr/local/bin/clear

#chmod 777 clear

新しい実行ファイルを作成clear

2. vi clear

クリアファイルを次のように編集します:

#!/bin/sh

find /usr/local/backups -mtime +10 -name “*.*” -exec rm -rf {} ;

ok 、保存して終了します
3.#crontab -e

クリアファイルをシステムプランに追加しますポイントに達するとタスクが自動的に実行されます

入力:

* 2 * * */usr/local/bin/クリア

ここでの設定は、データ クリーニングのために毎日午前 2 時にクリア ファイルを実行することです。cron を学習して、独自のニーズを策定できます。スケジュールされたタスク

例:

#!/bin/sh

find /usr/ local/jboss-4.2.3.GA/server/default/log -mtime +6 -name “server.log.*” - exec rm -rf {} ;

exit

[root@web3 ~]# crontab - l

ユーザーの Crontab ファイルを編集します

crontabl -e

ユーザーが作成した Crontab ファイルは /var/spool/cron に保存され、ファイル名はユーザー名と同じです。
フォーマットは 6 つのセクションに分かれており、最初の 5 つのセクションは時刻設定セクションであり、6 番目のセクションは実行されるコマンドセクションです。
フォーマットは次のとおりです。 * * * * *
時刻セクションの意味。は表 2 に示すとおりです。

段落

意味

値の範囲

最初の段落

は分を表します

0—59

2 番目の段落

は時間を表します

0—23

3 番目の段落

は日付を表します

1—31

4番目の段落

は月を表します

1—12

5番目の段落

は曜日を表し、0は日曜日を表します

0—6

名前: crontab
権限: すべてのユーザー
使用法:
crontab [ -u user ] file
crontab [ -u user ] { -l -r | -e }
説明:
crontab は、ユーザーが固定でプログラムを実行できるようにするために使用されます。時間または一定の間隔、つまりユーザーのスケジュールに似ています。 -u user は、指定されたユーザーのスケジュールを設定することを指します。他のユーザーのスケジュールを指定するには、そのユーザーの権限 (root など) が必要であることが前提となります。 -u user を使用しない場合は、独自のスケジュールを設定することを意味します。
食事の数:
-e: テキストエディタを実行してスケジュールを設定します。デフォルトのテキストエディタは VI です。別のテキストエディタを使用したい場合は、VISUAL 環境変数を設定して、どのテキストエディタを使用するかを指定してください。 as setenv VISUAL joe)
-r: 現在のスケジュールを削除します
-l: 現在のスケジュールをリストします
スケジュールの形式は次のとおりです:
f1 f2 f3 f4 f5 プログラム

ここで、f1 は分を表し、f2 は時間を表し、 f3 は日、f4 は月、f5 は曜日を表します。 Program は実行されるプログラムを表します。
f1 が * の場合、プログラムは 1 分ごとに実行されることを意味し、f2 が * の場合、プログラムは 1 時間ごとに実行されることを意味し、以下同様です
f1 が a-b の場合、プログラムは a 分から実行されることを意味しますf2 が a-b の場合、a 時間から b 時間まで実行されることを意味します。 f1 が */n の場合、n- ごとに実行されることを意味します。 f2 が */n の場合は、n 時間ごとに 1 回実行することを意味します。f1 が a、b、c、... の場合、a、b、c、を意味します。 ... 分が実行されます。f2 が a、b、c、... の場合、1 時間ごとに実行する必要があることを意味します。最初にファイル内のすべての設定を行ってから、crontab ファイル方式を使用してスケジュールを設定します。
例:
毎月毎日、毎時 0 分に /bin/ls を実行:
0 7 * * * /bin/ls

12 か月間、毎日午前 6 時から午前 12 時まで、20 回ごとに実行/usr/bin/backup 1 分ごとに 1 回:
0 6-12/3 * 12 * /usr/bin/backup

月曜日から金曜日まで毎日午後 5 時に alex@domain.name にレターを送信します:
0 17 * * 1-5 mail -s "hi" alex@domain.name /dev/null 2>&1

例: ユーザーの Crontab ファイルの内容が次の場合: 29 19 * * * 夕食の時間をエコーし​​、システムは毎日19時29分に「夕食の時間」を表示

例(cronのプロセス全体を作成し、test.txtに1分ごとに現在時刻を入力):

1. Linux システムに通常のユーザーとしてログインします (私は CentOS4.1 を使用しています)。

2. $crontab –e
注: システムのデフォルトのエディターが VIM でない場合は、次のシェルを追加してください。
$EDITOR=vi
$export EDITOR

3. 「*/1 * * * * date > $HOME/test.txt」と入力し、VIM を保存して終了します

4. $su root

5. $cd /etc/ init.d

6. ./crond restart

具体的な例をいくつか見てみましょう:

● 0 */2 * * * /sbin/service httpd restart は、2 時間ごとに Apache を再起動することを意味します。

● 50 7 * * * /sbin/service sshd start は毎日 7:50 に ssh サービスを開始することを意味します

● 50 22 * * * /sbin/service sshd stop は 22 時に ssh サービスを終了することを意味します毎日:50

● 0 0 1 ,15 * * fsck /home 毎月 1 日と 15 日に /home ディスクを確認します

● 1 * * * * /home/bruce/backup /home/bruce を実行します/backup file at the first minutes of each hours

● 00 03 * * 1-5 find /home “*.xxx” -mtime +4 -exec rm {} ; 毎週月曜日から金曜日の午前 3 時に、次のように検索します。 /home ディレクトリにある *.xxx という名前のファイルを作成し、4 日以上経過したファイルを削除します。
● 30 6 */10 * * ls は、毎月 1 回、1 日、11 日、21 日、31 日の 6:30 に ls コマンドが実行されることを意味します


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。