47 lines
1.5 KiB
Smarty
47 lines
1.5 KiB
Smarty
![]() |
#!/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
|
||
|
|
||
|
|