Bashスクリプトの「find」コマンドについて混乱していますか?

Bashスクリプトの「find」コマンドについて混乱していますか?

フォルダを自動的にTARリングしてバックアップするために意味を説明できない人が作成したbashスクリプトがあります。現在、私は最後の行について混乱しています。

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

ベストアンサー1

このコマンドは、7日以上(より正確には先週)、変更されていないfindディレクトリ内または下のすべての一般ファイルを削除します。/home/_backups/pokebrawl

そうしなければならないおそらく読む

find "$DESDIR" -mtime +6 -type f -delete

または

find "${DESDIR:?Not set correctly}" -mtime +6 -type f -delete

そのディレクトリ名を保持する非常に良い変数がすでに存在するためです。 2番目のバリアントは、何らかの理由で空または設定されていないとDESDIRエラーを発生させます。

私はこれが先週のバックアップのみを維持する方法であると仮定しています。より多くのスペースを使用せずに、より長い期間バックアップをアーカイブできるようなものをborgbackup使用することをお勧めします。resticデータの重複を排除し、borgbackup圧縮もサポートします(両方ともリモートバックアップと暗号化をサポート)。

24時間(真夜中)ごとにスクリプトを実行するには、クローンジョブを使用してください。

まず、コマンドを実行してください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マニュアル()を参照してください。

おすすめ記事