rootsh/logrotate-rootsh.sh
Grooooot 26e362598a rootsh: Package init
Signed-off-by: Grooooot <isula@huawei.com>
2020-02-19 10:44:49 +08:00

76 lines
1.4 KiB
Bash

#!/bin/bash
DEFAULT_PATH="/var/log/rootsh/"
MaxSize=0
GSize=0
# Get Max Size in Configure File
function getmaxsize() {
size=`grep size /etc/logrotate.d/rootsh | head -1 | awk '{print $2}'`
unit=${size: -1}
case $unit in
'G' | 'g')
size=${size:0:-1}
size=$(($size*1024*1024))
;;
'M' | 'm')
size=${size:0:-1}
size=$(($size*1024))
;;
'K' | 'k')
size=${size:0:-1}
;;
[[:digit:]])
;;
*)
size=102400
;;
esac
MaxSize=$size
}
function getsize() {
GSize=`du -d 1 $1 | awk '{print $1}'`
}
function logrotate_dir() {
path=$1
size=$2
getsize ${DEFAULT_PATH}
while [ $GSize -gt $size ]; do
file=`ls -ltr ${DEFAULT_PATH} | awk '{if(NR>1){print $9}}' | head -1`
# Do not delete the whole directory
if [ -n "$file" -a $file != "logrotate" ]; then
rm -rf ${DEFAULT_PATH}/$file
else
break
fi
getsize ${DEFAULT_PATH}
done
}
function lastaction() {
# Get Max Size in Configure File
getmaxsize
# Rotate /var/log/rootsh/*
logrotate_dir ${DEFAULT_PATH} $MaxSize
# Move rotated file to the monitor file
if [ -f "/var/log/rootsh/logrotate.1" ]; then
rm -f /var/log/rootsh/logrotate.1
fi
}
if [ $# -eq 1 ]; then
if [ $1 == "lastaction" ]; then
lastaction
fi
fi