たくさんのファイルとフォルダーがあります。このパスのような構文があります
/opt/logs/qnap/[ホスタ、ホストb]/2012/03/12
すべてのログ ファイルは Qnap データ ストレージにあり、別の場所にあります。そのため、180 日以上経過したファイルとフォルダーを削除したい場合、find コマンドを使用できず、速度が低下します。だから私はこのようなスクリプトを書きました。
SixMonthAgo=$(date --date='190 day ago' "+%Y/%m/%d/%H") = 2011/06/12/12
Hosts="hosta hostb"
maxDay=181
qnapFolder="/opt/logs/qnap"
for host in $(echo "${Hosts}"); do
maxDayAgo=$(date --date="${maxDay} day ago" "+%Y/%m/%d")
countCharacters=$(echo ${maxDayAgo} | wc -c)
if [ ${countCharacters} -ge 10 ]; then
rm -rf ${qnapFolder}/${host}/${maxDayAgo} #output of this just like 2012/03/12
fi
done
しかし、時々エラーが発生しました。このソリューションは、私が望むように正しく機能していません。180 日以内にすべてのファイルとフォルダーを削除したい。これどうやってするの ?たとえば、2012/03/23 より前のすべてのファイルとディレクトリを削除する必要があります。
前もって感謝します