2時間ごとに新しく作成されたすべてのファイルをあるディレクトリに圧縮し、圧縮されたファイルを別のディレクトリに移動する方法

2時間ごとに新しく作成されたすべてのファイルをあるディレクトリに圧縮し、圧縮されたファイルを別のディレクトリに移動する方法

/kit/bkpファイルは5分ごとに/ kitディレクトリに作成されます。すべてのファイルを圧縮し、2時間ごとにそのファイルをディレクトリに移動したいと思います。

答え1

find your_path -t f -mmin 5 -exec tar -zcvf your_compress_file.tar.gz {} +

スクリプトを作成して保存できますcrontab

答え2

スクリプトを作成し、クローンジョブまたはシステムタイマーとして実行するように設定します。tarスクリプトに適切なコマンドを含め、tarの除外フラグを使用して/tar/bkpフォルダをtaringしないようにします。findこのフラグと組み合わせて使用​​すると、-mmin 120圧縮ファイルを過去120分以内に変更されたファイルに制限できます。

たとえば、

#!/bin/bash
source='/kit'
dest='/kit/bkp'
find "${source}" -mmin 120 -exec \
  tar cpf "${dest}/$(date +'%Y%m%d%H').tar" --exclude="${dest}" {} +

スクリプトはExecuteを使用し、/bin/bashソースとターゲットのパスを定義し、過去120分以内に変更されたファイルのみを選択し、ターゲットフォルダにyear-month-day-hourという名前のtarファイルを作成して権限と所有権を維持し、ターゲットフォルダ。

次に、読み取りおよび実行権限...書き込み、読み取りおよび実行権限...そして、以前に作成したスクリプトに対する読み取りおよび実行権限を持つcrontab -eユーザーとして入力します。 cron ファイルに次の行を追加します。/kit/kit/bkp

0 */2 * * * /path/to/your/script.sh > /dev/null

これは、2時間ごとにスクリプトを実行し、stdoutをパイプして/dev/nullエラーが発生しない限り、スクリプトを自動的に維持します。エラーが発生した場合、Cronはメッセージを送信する必要があります。

関連情報