It has a check for mount intervals and day check intervals :
Code: Select all
ERRFLG_FUNC() { ###KRG
echo -e "\\033[1;34m"'Checking for unpropper previous shutdown ... '"\\033[0;39m"
echo -n -e "\\033[1;33m"'Searching for *fsckme* file 3 levels deep ... '"\\033[0;39m"
ErrFlag=`busybox find / -maxdepth 3 -type f -iname '*fsckme*' | head -n1` ###KRG 3 deep for fsckme.file@etc @boot @$HOME ..etc..
if [ -z "$ErrFlag" ] ; then ##1
echo -e "\\033[56G\\033[1;5;32m"'Hurray , not found !'"\\033[0;39m"
echo -e "\\033[1;33m"'Checking for filesystem check intervals using'"\\033[0;39m"
LANG=C
VARS=`dumpe2fs $DEVROOTDRIVE | grep -E 'Maximum mount count|Mount count|Next check after|Check interval'`
###+++2011-11-15 had logically removed this ; would have been a bug due interN used further down
interC=`echo "$VARS" | grep 'Check interval' | tr '\n' ' '`
interN=`echo "$interC" | tr -s ' ' | cut -f 3 -d ' ' | grep -o -e '[[:digit:]]*'`
interN=$((interN/60/60/24))
###+++2011-11-15
nextch=`echo "$VARS" | grep 'Next check after' | tr '\n' ' '`
nextcM=`echo "$nextch" | tr -s ' ' | cut -f 5 -d ' '`
nextcD=`echo "$nextch" | tr -s ' ' | cut -f 6 -d ' '`
#echo "$nextch" ##+++2012-01-11
nextcY=`echo "$nextch" | tr -s ' ' | cut -f 8 -d ' '` ##+++2012-01-11 major bug !!
todays=`date`
todayY=`echo "$todays" | tr -s ' ' | cut -f 6 -d ' ' | tr -d [[:punct:]]` ##+++ 2011_11_15 from luci218
todayM=`echo "$todays" | tr -s ' ' | cut -f 2 -d ' ' | tr -d [[:punct:]]` ##lang dependent pos
todayD=`echo "$todays" | tr -s ' ' | cut -f 3 -d ' ' | tr -d [[:punct:]]`
mntcnt=`echo "$VARS" | grep 'Mount count'| grep -o '[[:digit:]]' | tr -d '\n'`
maxmnt=`echo "$VARS" | grep 'Maximum mount count' | grep -o '[[:digit:]]' | tr -d '\n'`
diffMC=$(( $maxmnt - $mntcnt ))
monthN=`for i in $(seq 1 12) ; do cal $i 1 | head -n 1 | grep -o '[[:alpha:]]*' | sed "s/^/$i /"; done`
monthT=`echo "$monthN" | grep "$todayM"`
montTN=`echo "$monthT" | cut -f 1 -d ' '`
monthC=`echo "$monthN" | grep "$nextcM"`
montCN=`echo "$monthC" | cut -f 1 -d ' '`
val30C=`cal $montCN 1 | grep '[[:digit:]]$' | sed '/^$/d' | tail -n 1 | grep -o -e '[[:digit:]]*$'`
##+++ 2011_11_15 from luci218
val30B=0
for i in `seq $((montCN+1)) $((montTN-1))` ; do
val30i=`cal $i 1 | grep '[[:digit:]]$' | sed '/^$/d' | tail -n 1 | grep -o -e '[[:digit:]]*$'`
val30B=$((val30B+val30i))
done
##+++ 2011_11_15 from luci218
val30T=`cal $montTN 1 | grep '[[:digit:]]$' | sed '/^$/d' | tail -n 1 | grep -o -e '[[:digit:]]*$'`
echo -e "\\033[0;39m"
#echo $LINENO $todayY $nextcY
FSCK=
if [ "$mntcnt" -ge "$maxmnt" ] ; then ##2
echo -e "\\033[1;33m"'Maximum mount count reached'"\\033[0;39m"
FSCK='yes'
##fi ##2
#echo $LINEMO
else ##2
if [ "$todayY" -ge "$nextcY" ] ; then #2.1 ##+++2011_11_15 from luci218
#echo $LINENO
if [ "$montTN" = "$montCN" ] ; then #3
#echo $LINENO
if [ "$todayD" -gt "$nextcD" ] ; then #4
echo -e "\\033[1;33m"'Day interval reached'"\\033[0;39m"
FSCK='yes'
fi #4
#echo $LINENO
else #3
#echo $LINENO
if [ "$montTN" -gt "$montCN" ] ; then #5
MinusTD=$todayD
PlusCD=$(( $val30C - $nextcD ))
##+++2011_10_19 month difference missing val30B
SUM=$(( $MinusTD + $val30B + $PlusCD ))
#echo $LINENO
if [ "$SUM" -gt "$interN" ] ; then #6
echo -e "\\033[1;33m"'Day interval reached'"\\033[0;39m"
FSCK='yes'
fi #6
#echo $LINENO
else #5
FSCK=''
fi #5
#echo $LINENO
fi #3
fi #2.1
fi ##2
#echo $LINENO
if [ -z "$FSCK" ] ; then #7
echo -e "\\033[1;32m"'OK , '"\\033[0;32m""next check '$nextcM $nextcD' or in '$diffMC' mounts""\\033[0;39m"
echo -e "\\033[0;39m"
BUSYBOX_INIT_FUNC
#echo $LINENO
else #7
echo -e "\\033[1;33m"'Filesystem check interval reached :'"\\033[0;39m"
echo -e "\\033[0;33m"'Today : '"\\033[0;33m""$todayM $todayD""\\033[0;33m"' , next check was or would be : '"\\033[0;33m""$nextcM $nextcD""\\033[0;33m"
echo -e "\\033[0;33m"'mount intervals : '"\\033[0;33m""$mntcnt""\\033[0;33m"' of '"\\033[0;33m""$maxmnt"
echo -e "\\033[0;39m"
fi #7
#echo $LINENO
else #1
echo -e "\\033[1;31m" ' Found : '"\\033[0;39m""\\033[1;5;31m""$ErrFlag"
echo -e "\\033[0;39m"
fi #1
}
I have put a removal of /var/tmp and /tmp gets moved to /var/tmp/ .
Note 2 :
Due to giving access to keyboard i have put in a lot of the module loading part of rc.sysinit .
Note 3 :
I am working on implementing other filesystem capabilities atm , reiserfs 3x first .