2017-03-08 1 views
0

タイトルが示すように、接頭辞の付いたすべてのディレクトリ" ほとんどの場合、すべてのディレクトリには、通常、別のバックアッププロセスによって新しいディレクトリが作成されるたびに、接尾辞「_ [0-9]」が付きます。例:shスクリプトまたはPythonを使用して、3日以上経過しても一意の結果を無視する特定の文字列で始まるすべてのディレクトリを検索および削除します

drwxr-xr-x. 2 root root 4096 Mar 5 10:00 TB-setcluster 
drwxr-xr-x. 2 root root 4096 Mar 6 10:00 TB-setcluster_1 
drwxr-xr-x. 2 root root 4096 Mar 7 10:00 TB-setcluster_2 
drwxr-xr-x. 2 root root 4096 Mar 8 10:00 TB-setcluster_3 
drwxr-xr-x. 2 root root 4096 Mar 8 13:02 TB-drycluster_3 
drwxr-xr-x. 2 root root 4096 Mar 8 13:02 TB-drycluster_2 
drwxr-xr-x. 2 root root 4096 Mar 8 13:02 TB-drycluster_1 
drwxr-xr-x. 2 root root 4096 Mar 8 13:02 TB-drycluster 
drwxr-xr-x. 2 root root 4096 Mar 5 13:02 TB-testcluster 
drwxr-xr-x. 2 root root 4096 Mar 5 13:02 TB-preprod-cluster 

任意のバックアップが失敗した場合、言った、私は潜在的に、私は唯一のバックアップの価値は、以下の3日間場合は、1つのバックアップを持っているシナリオで終わる可能性を意味し、作成された増分ディレクトリを取得することはありません失敗することになった。 このイベントでは、私が持っているかもしれない1つのコピーを削除したくありません。

誰もがこれを行う最良の方法を提案できますか?私は、Linuxカーネルの縮小版であるESXIボックス上で動作しているため、これをスクリプト化するためのbourneシェルのみ、あるいは多分Python(これは私が少し知っている)を持っているだけです。

私は実行することで、一意の名前の出力を取得するfindコマンドがあります。

find /root/test/ -depth -name "TB*" -type d -mtime 3| sort | awk -F'/' '{print $4}' | sed -r 's/_[0-9]+$//g' | uniq -u 

をしかし、私はその後、上記のコマンドからの各結果は任意の除去プロセスから除外されていることを確実にする方法がわからないと思います。

ご協力いただければ幸いです。私はこれをやっていたと私は必ずしたい場合

答えて

0

、私は

  1. 別のディレクトリにすべての貴重なファイルを移動するには、上記findコマンドを使用する場合があります

    のMV $(見つけます... | awkの... | sedの... | uniqは...)special_directory

  2. 慎重な目視検査に

  3. 削除を行います残りのすべて

関連する問題