2

cronjobがデータベース/ファイルシステムのバックアップを保存する/var/backupフォルダーがあります。これには、latest.gz.zipと、timestamp.gz.zipという名前の古いダンプが多数含まれています。フォルダはどんどん大きくなっているので、次のようなbashスクリプトを作成したいと思います。

  • latest.gz.zipを保持する
  • 最年少の10個のファイルを保持する
  • 他のすべてのファイルを削除します

残念ながら、私は優れたbashスクリプターではないため、どこから始めればよいのかわかりません。ご協力いただきありがとうございます。

4

2 に答える 2

2

zshでは、拡張フラグを使用してそのほとんどを実行できます。

files=(*(.Om))
rm $files[1,-9]

このコマンドには注意してください。どの一致が行われたかを確認できます。

print -rl -- $files[1,-9]
于 2012-09-10T14:13:43.613 に答える
1

次のようなfindコマンドを使用する方法を学ぶ必要があります。xargs

 find /var/backup -type f -name 'foo' -mtime -20 -delete

またはあなたfindが持っていない場合-delete

 find /var/backup -type f -name 'foo' -mtime -20 -print0 | xargs -0 rm -f

もちろん、あなたは多くを改善する必要があるでしょう、これはただアイデアを与えるためです。

于 2012-09-10T12:50:51.453 に答える