openstack-helm-infra/postgresql/templates/bin/_postgresql_archive_cleanup.sh.tpl

47 lines
1.5 KiB
Smarty
Raw Normal View History

#!/bin/bash
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
set +ex
# ARCHIVE_LIMIT env variable is Threshold of archiving supposed to be kept in percentage
clean_up () {
echo "Cleanup required as Utilization is above threshold"
# Get file count and delete half of the archive while maintaining the order of the files
FILE_COUNT=$(ls -1 ${ARCHIVE_PATH} | sort | wc -l)
COUNT=0
echo $((FILE_COUNT/2))
for file in $(ls -1 ${ARCHIVE_PATH} | sort); do
if [[ $COUNT -lt $((FILE_COUNT/2)) ]]; then
echo "removing following file $file"
rm -rf ${ARCHIVE_PATH}/$file
else
break
fi
COUNT=$((COUNT+1))
done
}
#infinite loop to check the utilization of archive
while true
do
# checking the utilization of archive directory
UTILIZATION=$(df -h ${ARCHIVE_PATH} | awk ' NR==2 {print $5} ' | awk '{ print substr( $0, 1, length($0)-1 ) }')
if [[ $UTILIZATION -gt ${ARCHIVE_LIMIT} ]];
then
clean_up
fi
sleep 3600
done