私は、意味を説明できなくなった誰かが作成したbashスクリプトを使用しています。これは、フォルダーの自動TAR処理とバックアップに使用されます。現時点では、最後の行と混同しています。
find '/home/_backups/pokebrawl' -mtime +6 -type f -delete
完全なスクリプトは次のとおりです。
#!/bin/bash
#Purpose = Backup of Important Data
#Created on 17-1-2012
#Author = Hafiz Haider
#Version 1.0
#START
TIME=$(date +"%m-%d-%Y-%T")
FILENAME=pokebrawl-$TIME.tar.gz
SRCDIR=/home/servers/brawl/world
DESDIR=/home/_backups/pokebrawl
tar -cpzf $DESDIR/$FILENAME $SRCDIR
find '/home/_backups/pokebrawl' -mtime +6 -type f -delete
#END
find
コマンドは、7日以上経過した/home/_backups/pokebrawl
ディレクトリ内またはそれ以下の通常のファイルを削除します(より正確には、先週に変更されていない)。
おそらく読むべきです
find "$DESDIR" -mtime +6 -type f -delete
または
find "${DESDIR:?Not set correctly}" -mtime +6 -type f -delete
そのディレクトリ名をすでに保持している完全に良い変数があるので。 2番目のバリエーションでは、何らかの理由でDESDIR
が空または未設定の場合、エラーが発生します。
これは先週分のバックアップのみを保持する方法だと思います。代わりにborgbackup
やrestic
のようなものを使用することをお勧めします。これらは、多くのスペースを使用せずにバックアップをより長く保持できるためです(1年の1時間ごとのバックアップでもそれほど時間はかかりません)データがあまり変化していなかった場合は、まったくスペースがありません)。データの重複排除を実行し、borgbackup
はさらに圧縮をサポートします(リモートバックアップと暗号化もサポートされます)。
スクリプトを24時間ごと(真夜中)に実行するには、cronジョブを使用します。
最初に、コマンドcrontab -e
を発行します。これにより、アクティブユーザーの現在のcrontabでエディターが開きます(これは空のファイルである場合とそうでない場合があります)。
それから加えて
@daily /path/to/the/script.sh
(ここで、path/to/the/script.sh
はスクリプトのパス名です)。
保存してエディターを終了します。
このスクリプトは今夜も真夜中に呼び出されます。
たとえば、毎日午後13時30分にスクリプトを実行する場合は、代わりに次をcrontabエントリとして追加します。
30 13 * * * /path/to/the/script.sh
Crontabスケジュール(man 5 crontab
)を作成する方法の詳細については、システムのcrontabマニュアルを参照してください。
find '/home/_backups/pokebrawl' -mtime +6 -type f -delete
これにより、過去/home/_backups/pokebrawl
日間に変更されていないディレクトリ+6
内のすべてのファイルが検索され、削除されます。注:+6
は7日間に相当します。
man find
を見て、これらのスイッチがどのように機能するかを確認してください。
$ man find
...
-mtime n
File's data was last modified n*24 hours ago. See the comments
for -atime to understand how rounding affects the interpretation
of file modification times.
Redhatディストリビューションでは、このスクリプトを/etc/crondaily
ディレクトリに置くだけで、毎日実行されます。例として使用できる他のスクリプトがすでにあることがわかります。
$ Sudo ls -l /etc/cron.daily/
total 12
-rwx------. 1 root root 219 Aug 1 2017 logrotate
-rwxr-xr-x. 1 root root 618 Mar 17 2014 man-db.cron
-rwx------. 1 root root 208 Nov 4 2016 mlocate