linux findコマンド+日付でソートされた最後の5つを除くすべてのスナップショットファイルを削除する

linux findコマンド+日付でソートされた最後の5つを除くすべてのスナップショットファイルを削除する

以下には、/zookeeper/version-2飼育士のスナップショットファイルがたくさんあります。

.
.
.

-rw-r--r-- 1 zookeeper hadoop 495333240 Aug  3 14:51 snapshot.5d00011991
-rw-r--r-- 1 zookeeper hadoop 495333240 Aug  3 14:53 snapshot.5d00011992
-rw-r--r-- 1 zookeeper hadoop 495333240 Aug  3 14:56 snapshot.5d00011993
-rw-r--r-- 1 zookeeper hadoop 495333235 Aug  4 06:18 snapshot.5d0001e0b4
-rw-r--r-- 1 zookeeper hadoop 495326760 Aug  5 11:54 snapshot.5d0003660f
-rw-r--r-- 1 zookeeper hadoop 495335787 Aug  6 08:39 snapshot.5d00047faf
-rw-r--r-- 1 zookeeper hadoop 495335268 Aug  7 01:26 snapshot.5d000563eb

ソートする必要がありますスナップ写真ファイルを日付で並べ替え、すべて削除スナップ写真最近5つのスナップショットファイルを除くファイル。スナップショット以外のすべてのファイルは維持する必要があります。

すべてを削除するために、次のcli構文を作成しました。スナップ写真findファイルは最後の5つを除いて日付別にソートされていますが、それをコマンドと統合する方法がわかりません。

ls -ltr zookeeper/version-2 | grep snapshot  | head -n -5 | xargs rm -f

最後の目標は、cronジョブ(crontab)でfindコマンドを設定することです。

予想出力の例

-rw-r--r-- 1 zookeeper hadoop 495333240 Aug  3 14:56 snapshot.5d00011993
-rw-r--r-- 1 zookeeper hadoop 495333235 Aug  4 06:18 snapshot.5d0001e0b4
-rw-r--r-- 1 zookeeper hadoop 495326760 Aug  5 11:54 snapshot.5d0003660f
-rw-r--r-- 1 zookeeper hadoop 495335787 Aug  6 08:39 snapshot.5d00047faf
-rw-r--r-- 1 zookeeper hadoop 495335268 Aug  7 01:26 snapshot.5d000563eb

ベストアンサー1

ZooKeeperスナップショットを直接削除すると、Hadoopクラスターに予測不能な結果が生じる可能性があります。この目的のための特定のコマンドがあります:

zkCleanup.sh -n 5

おすすめ記事