#!/bin/sh

#根据硬件时间设置系统时间
hwclock -s

#设置core位置和文件名格式
echo "/var/core/%e.%s.%t.%p" > /proc/sys/kernel/core_pattern

#设定tmp目录大小为100M
mount -o remount,size=100M /tmp
mount -o remount,size=100M /dev/shm

#设置启动时间（blackbox需要）
date +%y%m%d-%H%M%S >/var/boottime

if [ ! -f /var/lib/misc/udhcpd.leases ]; then
        touch /var/lib/misc/udhcpd.leases
        chmod 666 /var/lib/misc/udhcpd.leases
fi


#mod for wns1.5
if [ ! -f /wns/data/databasebk ]; then
	mkdir -p /wns/data/databasebk
fi
chmod 777 /wns/data/databasebk
if [ ! -f /wns/data/webui/temp ]; then
	mkdir -p /wns/data/webui/temp
fi
rm -rf /wns/data/webui/temp/*
mkdir -p /tmp/ci
chown  nobody:nogroup /tmp/ci/
chmod 777 /tmp/ci
ln -sf /wns/data/webui/temp /tmp/ci/temp
chmod 777 /wns/data/webui/temp



rm /wns/tmp -rf
ln -sf /tmp /wns/tmp
ln -sf /var /wns/var

#wuliang add
#ln -s /tmp/ci/temp /wns/webui/tmppic

mkdir -p /wns/var/core
mkdir -p /wns/var/contchk
mkdir -p /wns/var/sock
mkdir -p /var/run

mkdir -p /wns/etc/ap_update_files


#/wns/3party/php/bin/php /wns/webui/index.php wl_network create_wlan_tool

# PHP相关的文件夹给nobody权限
chown nobody /wns/3party/apache/logs/fcgidsock
chown -R nobody /wns/etc/config
chown -R nobody /wns/webui
chown -R nobody /var/tmp
chown -R nobody /var/frontend-cache
chmod +x /wns/3party/apache/conf/apache_pass.sh
chown nobody /wns/3party/apache/conf/apache_pass.sh
chmod -R 777 /wns/etc/ap_update_files
chown nobody -R /wns/etc/ap_update_files
chmod -R 777 /wns/upgrade

. /wns/etc/init.d/wns_functions.sh

etc_mirro_capacity="250M"
cfg_pool_capacity="2000M"
log_capacity="2000M"
upgrade_capacity="1400M"
frontend_cache="20M"
contchk_cache="200M"
lock_cache="10M"
httpd_logs="10M"
actrace_cache="40M"
TotalMem=`free -m | grep Mem | awk '{print $2}'`
let TotalMem=TotalMem/500+1
if [ $TotalMem -lt 10 ]; then
	run_cache="10M"
else
	run_cache="${TotalMem}M"
fi

#td45557 从ui上升级设备 32G的s5000需扩展/wns/upgrade分区 16G的和原来一样  by3.0
#td52685 分销wac dac1100也是32G硬盘，判断条件不能限制为S5000，直接判断硬盘大小 by3.2r3
#HW_MODEL=`cat /hwinfo|grep "model=s5000"`
sda_size=$(fdisk -l /dev/sda  2>/dev/null | grep "Disk /dev/sda:" | awk '{print $3}' | awk -F. '{print $1}')
#if [ "x$HW_MODEL" != "x" ];then
if [ "${sda_size}" -lt "33" ]; then    
		log_capacity="900M"
	if [ "${sda_size}" -lt "17" ];then
		upgrade_capacity="500M"
		cfg_pool_capacity="500M"
	fi
fi

#td48494 /wns/etc_mirror扩容到2G inode增加到300000
sda5_size=$(df -h /wns_mount_file/ | grep wns_mount_file | awk '{print $2}' | awk -F'[.G]' '{print $1}')
if [ "$sda5_size" -gt "8" ];then
	etc_mirro_capacity="2000M"
	etc_mirro_inodes="300000"
fi

get_actrace_cache_size
actrace_cache="$?M"

mount_quota_file "ext4" "$etc_mirro_capacity" "/wns_mount_file/etc_mirror_part"  "/wns/etc_mirror"      "noatime,data=journal" false "$etc_mirro_inodes"
mount_quota_file "ext4" "$cfg_pool_capacity" "/wns_mount_file/cfg_pool_part"  "/wns/cfg_pool"      "noatime,data=journal" false
mount_quota_file "ext4" "$log_capacity" "/wns_mount_file/log_part"  "/wns/log"      "noatime,barrier=0,data=writeback" false

#新增设备升级目录
mount_quota_file "ext4" "$upgrade_capacity" "/wns_mount_file/upgrade_part"  "/wns/upgrade"      "noatime,barrier=0,data=writeback" false

#rhb添加 修正sshd.pid文件丢失导致S02remove-default中，stop sshd 失败。
#将/var/run下文件备份
mkdir -p /tmp/run
cp -a /var/run/* /tmp/run/

#为var目录下文件夹预留空间，防止var目录满了影响正常业务
mount_quota_file "ext4" "$frontend_cache" "/var/frontend_part"  "/var/frontend-cache"      "noatime,barrier=0,data=writeback" false
mount_quota_file "ext4" "$run_cache" "/var/run_part"  "/var/run"      "noatime,barrier=0,data=writeback" true
mount_quota_file "ext4" "$lock_cache" "/var/lock_part"  "/var/lock"      "noatime,barrier=0,data=writeback" false
mount_quota_file "ext4" "$httpd_logs" "/var/httpd-logs_part"  "/var/httpd-logs"      "noatime,barrier=0,data=writeback" false
mount_quota_file "ext4" "$actrace_cache" "/var/actrace_part"  "/var/actrace"      "noatime,barrier=0,data=writeback" true
#TD43674不需要通过contchkcfg生成中间文件，所以目录不需要了
rm -rf /var/contchk_part

# 上面如果mount失败，则记录var目录文件信息
write_varinfo 6

mkdir -p /wns/var/lock/subsys/
rm -rf /wns/var/lock/subsys/*
touch /wns/var/lock/subsys/_etc

#rhb添加 将备份的文件还原到/var/run下
cp -a /tmp/run/* /var/run/
rm -rf /tmp/run

#td47789 by liutao
chown -R nobody /var/frontend-cache

# 创建backup文件，保证在重启或关机的时候调用K01backup
touch /wns/var/lock/subsys/backup

#2.0 扩增/wns/cfg_pool的大小为2G， 将update_add_cant_convert_file中备份的配置恢复到/wns/cfg_pool中
if [ -d /wns/data/tmp_back_file ]; then
	echo "wns/data/tmp_back_file exists cp cfg back"; 
	mv /wns/data/tmp_back_file/* /wns/cfg_pool/
	rm -rf /wns/data/tmp_back_file;
fi


mkdir -p /wns/log/appinit
mkdir -p /wns/log/bugreport
mkdir -p /wns/log/hislog
mkdir -p /wns/log/security_alarm

#删除apache临时文件夹目录 避免这些文件影响apache启动
rm -rf /wns/3party/apache/logs/*

# 创建blackbox目录
mkdir -p /wns/data/blackbox
mkdir -p /var/spool/cron/crontabs/
ln -sf /etc/crontab /var/spool/cron/crontabs/admin

#qsy 给php添加平台宏定义
hwinfo=/etc/hwinfo

wns_catagory()
{
    local type=`busybox awk -F= '/type/{print $2}' $hwinfo`
    local product=`busybox awk -F= '/product/{print $2}' $hwinfo`
    echo  "${type}_${product}"
}
catagory=`wns_catagory`
case $catagory in
    "x86_WAC")
        sed 's/<%PLATFORM%>/WAC_X86/g' /wns/webui/application/config/platdef.php.tmp >/wns/webui/application/config/platdef.php
        ;;
    "mips_WAC")
        sed 's/<%PLATFORM%>/WAC_MINI/g' /wns/webui/application/config/platdef.php.tmp >/wns/webui/application/config/platdef.php
        ;;
    *)
        ;;
esac
#
find /wns/etc/cron -type f -exec dos2unix {} \; >/dev/null 2>&1
find /wns/shell -type f -exec dos2unix {} \; >/dev/null 2>&1

#去掉/wns/etc/目录下cron rc2.d init.d目录及其文件的写权限
chmod -R a-w /wns/etc/cron
chmod -R a-w /wns/etc/init.d
chmod -R a-w /wns/etc/rc2.d


#升级客户端升级和web升级，都上传到/wns/upgrade下面
if [ ! -f /wns/upgrade ]; then
	mkdir -p /wns/upgrade
fi
rm -rf /stmp
ln -sf /wns/upgrade/ /stmp

#提供给UI一个判断升级的别名接口
ln -sf /wns/sbin/web_upgrade /wns/sbin/web_upgrade_check_valid


#1.8新增拒绝访问页面，首次初始化软链接
chmod a+x /wns/webui/application/shells/denyPortal.sh
/wns/webui/application/shells/denyPortal.sh
#引用缓存文件数据格式有变更，需要删除，等下次自动重建为新格式的文件
rm -rf /wns/etc/config/wac/*.json

chmod a+x /wns/shell/rev_only_one_kdump_core.sh
/wns/shell/rev_only_one_kdump_core.sh

#2.4 td39048 temp目录不删除
#删除/wns/data/webui下的文件
#rm -rf /wns/data/webui/*
filenames=`ls /wns/data/webui`
for filename in $filenames
do
	if [ "$filename" == "sc_bak" ];then
		continue;
	fi
    if [ "$filename" == "tmppic" ];then
		rm -rf /wns/data/webui/${filename}/*
	    continue;
	fi
    if [ "$filename" == "temp" ];then
		rm -rf /wns/data/webui/${filename}/*
	    continue;
	fi
	rm -rf /wns/data/webui/$filename
done

#3.0sp1 td48054
rm /var/frontend-cache/* -rf

#给/var/run加权限的语句要移动到这里，因为前面将/var/run重新挂载了!
#给/var/run目录加上写权限，否则非root用户无法执行cli
mkdir -p /var/run
chmod 757 /var/run

#执行guestdb_to_pushdb转换程序
#chmod a+x /wns/shell/guestdb_to_pushdb.sh
#/wns/shell/guestdb_to_pushdb.sh &


#重建sup软连接
rm -rf /etc/sup
ln -s /wns/sup/cfg /etc/sup
if [ ! -L /etc/eeprom_bk ]; then
	rm -rf /etc/eeprom_bk
	ln -sf /wns/etc/eeprom_bk /etc/eeprom_bk
fi
