Last active
July 2, 2020 09:04
-
-
Save yqt/ba9ae1ea2134fdf8d721a15e5c65e68e to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
## sysctl | |
init_sysctl() { | |
cat << EOF > /etc/sysctl.d/local.conf | |
# max open files | |
fs.file-max = 1024000 | |
# max read buffer | |
net.core.rmem_max = 67108864 | |
# max write buffer | |
net.core.wmem_max = 67108864 | |
# default read buffer | |
net.core.rmem_default = 65536 | |
# default write buffer | |
net.core.wmem_default = 65536 | |
# max processor input queue | |
net.core.netdev_max_backlog = 4096 | |
# max backlog | |
net.core.somaxconn = 4096 | |
# resist SYN flood attacks | |
net.ipv4.tcp_syncookies = 1 | |
# reuse timewait sockets when safe | |
net.ipv4.tcp_tw_reuse = 1 | |
# turn off fast timewait sockets recycling | |
net.ipv4.tcp_tw_recycle = 0 | |
# short FIN timeout | |
net.ipv4.tcp_fin_timeout = 30 | |
# short keepalive time | |
net.ipv4.tcp_keepalive_time = 1200 | |
# outbound port range | |
net.ipv4.ip_local_port_range = 10000 65000 | |
# max SYN backlog | |
net.ipv4.tcp_max_syn_backlog = 4096 | |
# max timewait sockets held by system simultaneously | |
net.ipv4.tcp_max_tw_buckets = 5000 | |
# TCP receive buffer | |
net.ipv4.tcp_rmem = 4096 87380 67108864 | |
# TCP write buffer | |
net.ipv4.tcp_wmem = 4096 65536 67108864 | |
# turn on path MTU discovery | |
net.ipv4.tcp_mtu_probing = 1 | |
net.ipv4.tcp_congestion_control = htcp | |
# forward ipv4 | |
net.ipv4.ip_forward = 1 | |
EOF | |
sysctl --system | |
} | |
## limits | |
init_limits() { | |
sed -i 's/# End of file//g' /etc/security/limits.conf | |
cat << EOF >> /etc/security/limits.conf | |
* soft nofile 512000 | |
* hard nofile 1024000 | |
# End of file | |
EOF | |
cat << EOF >> /etc/profile | |
ulimit -SHn 1024000 | |
EOF | |
} | |
## lotServer | |
prepare_lotServer() { | |
# backup apt souce list | |
cp /etc/apt/sources.list /etc/apt/sources.list.bak | |
# downgrade kernel | |
wget -N --no-check-certificate https://moeclub.org/attachment/LinuxShell/Debian_Kernel.sh | |
apt install ethtool bc | |
bash Debian_Kernel.sh | |
# need to reboot and go on with init_lotServer | |
#sed -i 's/256 2048/512 4096/g' /serverspeeder/etc/config | |
} | |
init_lotServer() { | |
wget -N --no-check-certificate https://git.io/lotServerInstall.sh | |
bash lotServerInstall.sh install | |
sed -i 's/256 2048/512 4096/g' /appex/etc/config | |
sed -i 's/maxmode="0"/maxmode="1"/g' /appex/etc/config | |
/appex/bin/lotServer.sh restart | |
} | |
## check root | |
check_root() { | |
if [[ $EUID -ne 0 ]]; then | |
echo "This script must be run as root" 1>&2 | |
exit 1 | |
fi | |
} | |
process() { | |
check_root | |
echo "init sysctl..." | |
init_sysctl | |
echo "done." | |
echo "init limits..." | |
init_limits | |
echo "done." | |
echo "prepare lotServer..." | |
prepare_lotServer | |
echo "done." | |
echo "please reboot." | |
} | |
if [ x$1 != x ]; then | |
case $1 in | |
init_lot) | |
init_lotServer | |
;; | |
process) | |
process | |
;; | |
?) | |
echo "usage: process|init_lot" | |
;; | |
esac | |
else | |
echo "default action: process" | |
process | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment