フォルダを自動的に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マニュアル()を参照してください。