#!/bin/sh
dataDir="/data"
if [ ! -d "$dataDir" ];then
mkdir $dataDir
echo -e '\033[32m /data dir create success!! check success!! \033[0m'
else
echo -e '\033[32m /data dir already exists check success!! \033[0m'
fi
user=admin
group=admin
url='https://c2.binjie.fun/#/chat'
#create group if not exists
egrep "^$group" /etc/group >& /dev/null
if [ $? -ne 0 ]; then
groupadd $group
echo -e '\033[32m admin add group success!! \033[0m'
else
echo -e '\033[32m admin group already exists check success!! \033[0m'
fi
#create user if not exists
egrep "^$user" /etc/passwd >& /dev/null
if [ $? -ne 0 ]; then
useradd -g $group $user
echo "semisemi" | passwd --stdin admin
echo "admin ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
echo -e '\033[32m admin add user success!! check success!! \033[0m'
else
echo -e '\033[32m admin user already exists check success!! \033[0m'
fi
check_transparent_hugepage(){
enabledFile='/sys/kernel/mm/transparent_hugepage/enabled'
defragFile='/sys/kernel/mm/transparent_hugepage/defrag'
if [ -f "$enabledFile" ]; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo -e '\033[32m hugepage enabled set never success!! check success!! \033[0m'
fi
if [ -f "$defragFile" ]; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo -e '\033[32m hugepage defrag set never success!! check success!! \033[0m'
fi
}
check_profile(){
grep -q 'export HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S" `whoami`' /etc/profile
if [ $? -eq 1 ];then
echo 'export HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S" `whoami`' >> /etc/profile
echo -e '\033[32m exoport whoami succeed check success!! \033[0m'
else
echo -e '\033[32m whoami already exists in /etc/profile check success!!\033[0m'
fi
grep -q "HISTFILESIZE=10000" /etc/profile
if [ $? -eq 1 ];then
echo "HISTFILESIZE=10000" >> /etc/profile
echo -e '\033[32m export historysize check success!! \033[0m'
else
echo -e '\033[32m historysize already exists in /etc/profile check success!! \033[0m'
fi
}
set_limits(){
cat <<'LIMIT' | sudo tee /etc/security/limits.d/90-nproc.conf > /dev/null
* soft nproc 655350
* hard nproc 655350
LIMIT
cat <<'DEF' | sudo tee /etc/security/limits.d/def.conf > /dev/null
* soft nproc 655350
* hard nproc 655350
DEF
cat <<'EOF' | sudo tee /etc/security/limits.conf > /dev/null
# End of file
* soft nproc 655350
* hard nproc 655350
* soft nofile 655350
* hard nofile 655350
* - memlock unlimited
EOF
}
check_limits(){
grep -q "* soft nproc 655350" /etc/security/limits.conf
if [ $? -eq 1 ];then
set_limits
echo -e '\033[32m ulimit set success!! please close this session. check success!! \033[0m'
else
echo -e '\033[32m ulimit -n is already 655350 !! check success!! \033[0m'
fi
}
check_hostname(){
hostname=`hostname`
if [ "$hostname" == 'localhost.localdomain' ];then
echo -e '\033[31m please check hostname ,hostname not set!!! check failed !!\033[0m'
elif [[ ${hostname} == *_* ]]; then
echo -e '\033[31m please check hostname ,hostname must not contain any "_" signs. check failed !\033[0m'
else
echo -e '\033[32m hostname check success!! \033[0m'
fi
}
check_timezone(){
# check timezone
timezone=`date -R|awk '{print $6}'`
if [ $timezone != '+0800' ];then
echo -e '\033[31m please check timezone ,you can try exec " ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime " check failed! \033[0m'
fi
echo -e "\033[32m timezone check success!! \033[0m"
}
check_os(){
if [ -f /etc/redhat-release ] ; then
DIST=`cat /etc/redhat-release |sed s/\ release.*// |awk -F ' ' '{print $1}'`
MAJOR_VERSION=`cat /etc/redhat-release | sed s/.*release\ // |sed s/\ .*// |awk -F '.' '{print $1}'`
os="${DIST}_${MAJOR_VERSION}"
if [ $os == 'CentOS_7' ]; then
echo -e "\033[32m os is CentOS_7 check success!! \033[0m"
else
echo -e "\033[31m os is not CentOS_7 check failed !! \033[0m"
fi
else
echo -e '\033[31m linux os is not Centos ,please check OS !! check failed !! \033[0m'
fi
}
check_swap(){
sudo sed -i '/ swap /s/^/#/' /etc/fstab
sudo swapoff -a
}
check_volums(){
mountpoint -q /data
if [ $? -eq 0 ]; then
echo -e '\033[32m /data dir is already mount success! \033[0m'
grep -q '/data' /etc/fstab
if [[ $? -ne 0 ]]; then
echo -e '\033[31m /data Not in "/etc/fstab",you must write /data to "/etc/fstab" check failed! \033[0m'
fi
data_size=`df -m | grep -w /data | awk '{print $2}'`
if [ $data_size -lt 100000 ]; then
echo -e '\033[31m /data size must greater than 100G check failed! \033[0m'
else
echo -e '\033[32m /data size check success! \033[0m'
fi
else
echo -e '\033[31m /data dir is unmount,please check it check failed! \033[0m'
fi
root_size=`df -m | grep -w / | awk '{print $2}'`
if [ $root_size -lt 100000 ]; then
echo -e '\033[31m / size must greater than 100G check failed! \033[0m'
else
echo -e '\033[32m / size check success! \033[0m'
fi
}
check_aiworkEnv(){
echo `cat /proc/cpuinfo | grep flags | uniq | grep sse4_1 && cat /proc/cpuinfo | grep flags | uniq | grep sse4_2` >& /dev/null
if [ $? -ne 0 ]; then
echo -e '\033[33m because cpu flags missing sse4_1 and ssh4_2 ,aiwork not allowed to install this platform \033[0m'
else
echo -e '\033[32m aiwork model env check success! \033[0m'
fi
}
check_port(){
port_list=(80 81 82 85 86 465 2181 2888 3888 3000 3306 6379 16379 26379 8006 8077 8079 8082 8084 8085 8086 8087 8089 8090 8091 8600 8864 8876 8889 9020 9021 9029 9091 9090 9092 9515 9516 9533 )
for i in ${port_list[*]}
do
count=`ss -tnpl | grep -w $i | wc -l`
process_name=`netstat -tnpl | grep -w $i | awk '{print $7}'`
if [[ $count -gt 0 ]]; then
echo -e "\033[31m $i port is used ,process_name is $process_name check failed! \033[0m"
else
echo -e "\033[32m $i port check success !! \033[0m"
fi
done
}
check_env(){
if [ $HADOOP_HOME ];then
echo -e "\033[31m hadoop env exists HADOOP_HOME = $HADOOP_HOME check failed! \033[0m"
else
echo -e "\033[32m hadoop_env check success!! \033[0m"
fi
if [ -z $JAVA_HOME ];then
echo -e "\033[32m java_env check success!! \033[0m"
else
echo -e "\033[31m java env exists JAVA_HOME = $JAVA_HOME check failed! \033[0m"
fi
}
check_data(){
a=`lsblk` | grep data | wc -l`
if [ $a -eq 0 ]
do
echo -e "\033[32m the disk of data is not mount \033[0m"
done
}
check_python_home(){
# echo `python -version` >/dev/null 2>&1 &
if [ $? -eq 0 ];then
echo "\033[32m python is exist\033[0m"
docker-compose
if [ $? -eq 0 ];then
echo "\033[32m docker-compose is not installed \033[0m"
cp -r /home/$user/docker-compose /usr/lib/bin/
if [ $? -eq 0 ];then
echo "\033[32m docker-compose is installed \033[0m"
else
exit 1
}
check_transparent_hugepage
check_limits
check_profile
check_hostname
check_timezone
check_os
check_volums
check_aiworkEnv
check_port
check_env
check_swap
check_data
echo_python
服务器初始化脚本
于 2023-07-12 23:09:23 首次发布