centos7初始化bashshell脚本
centos7初始化bashshell脚本
#!/bin/bash
if [[ "$(whoami)" != "root" ]]; then
echo "请切换root用户 ." >&2
exit 1
fi
echo "适用CENTOS 7"
echo -e "\033[31m 修改selinux 关闭防火墙 修改网卡名eth0 系统参数等,有需要可自己微调 5秒后执行 \033[0m"
sleep 1
echo "1秒"
sleep 1
echo "2秒"
sleep 1
echo "3秒"
sleep 1
echo "4秒"
sleep 1
echo "开始执行中请勿操作,结束后会有提示"
#下载yumepel源 ,获取阿里源
yum_config(){
yum install wget epel-release -y
cd /etc/yum.repos.d/ && mkdir bak && mv -f *.repo bak/
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all && yum makecache
#选装,如需自行调整 yum -y install iotop iftop net-tools lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo ntp libaio-devel wget vim ncurses-devel autoconf automake zlib-devel python-devel bash-completion
}
#防火墙关闭
iptables_config(){
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl stop iptables
systemctl disable iptables
}
#selinux关闭 时区 时间服务器chrony(需要自己删除注释)
system_config(){
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
timedatectl set-local-rtc 1 && timedatectl set-timezone Asia/Shanghai
#yum -y install chrony && systemctl start chronyd.service && systemctl enable chronyd.service
}
# 默认不开启设置,如需开启在下面mian方法中设置
ulimit_config(){
echo "ulimit -SHn 102400" >> /etc/rc.local
cat >> /etc/security/limits.conf << EOF
* soft nofile 102400
* hard nofile 102400
* soft nproc 102400
* hard nproc 102400
EOF
}
# 内核参数设置
#file-max:这个参数表示进程可以同时打开的最大句柄数,这个参数直接限制最大并发连接数。
#tcp_tw_reuse:这个参数设置为1,表示允许将TIME-WAIT状态的socket重新用于新的TCP链接。这个对服务器来说很有意义,因为服务器上总会有大量TIME-#WAIT#状态的连接。
#tcp_keepalive_time:这个参数表示当keepalive启用时,TCP发送keepalive消息的频度。默认是7200 seconds,意思是如果某个TCP连接在idle 2小时后,##内核才发起probe。若将其设置得小一点,可以更快地清理无效的连接。
#tcp_fin_timeout:这个参数表示当服务器主动关闭连接时,socket保持在FIN-WAIT-2状态的最大时间。
#tcp_max_tw_buckets:这个参数表示操作系统允许TIME_WAIT套接字数量的最大值,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。默认#是i180000,过多TIME_WAIT套接字会使Web服务器变慢。
#tcp_max_syn_backlog:这个参数表示TCP三次握手建立阶段接受WYN请求队列的最大长度,默认1024,将其设置大一些可以使出现Nginx繁忙来不及accept新连接#的情况时,Linux不至于丢失客户端发起的连接请求。
#ip_local_port_range:这个参数定义了在UDP和TCP连接中本地端口的取值范围。
#net.ipv4.tcp_rmem:这个参数定义了TCP接受缓存(用于TCP接收滑动窗口)的最小值,默认值,最大值。
#net.ipv4.tcp_wmem:这个参数定义了TCP发送缓存(用于TCP发送滑动窗口)的最小值,默认值,最大值。
#netdev_max_backlog:当网卡接收数据包的速度大于内核处理的速度时,会有一个队列保存这些数据包。这个参数表示该队列的最大值。
#rmem_default:这个参数表示内核套接字接收缓存区默认的大小。
#wmem_default:这个参数表示内核套接字发送缓存区默认的大小。
#rmem_max:这个参数表示内核套接字接收缓存区默认的最大大小。
#wmem_max:这个参数表示内核套接字发送缓存区默认的最大大小。
sysctl_config(){
cp /etc/sysctl.conf /etc/sysctl.conf.bak
cat > /etc/sysctl.conf << EOF
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
net.ipv4.tcp_max_tw_buckets = 6000
net.ipv4.tcp_sack = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_rmem = 4096 87380 4194304
net.ipv4.tcp_wmem = 4096 16384 4194304
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.core.netdev_max_backlog = 262144
net.core.somaxconn = 262144
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_fin_timeout = 1
net.ipv4.tcp_keepalive_time = 30
net.ipv4.ip_local_port_range = 1024 65000
EOF
/sbin/sysctl -p
echo "sysctl set OK!!"
}
main(){
yum_config &>/dev/mull
iptables_config &>/dev/mull
system_config &>/dev/mull
#ulimit_config &>/dev/mull
sysctl_config &>/dev/mull
echo"初始化完成!"
}
main
centos7初始化bashshell脚本的更多相关文章
- ActiveX控件的安全初始化和脚本操作 和 数字签名SIGN
摘要:数字签名SIGN保证控件在下载时候的安全性.如果你的代码已经经过数字签名,即使用户IE的安全设置很高也能下载,安装并登记.但是在页面上初始化,或者用脚本运行这个控件,为了保证安全性,还需要进行M ...
- 基于CentOS7系统添加自定义脚本服务及参数说明【转】
概述 centos6如果要添加自定义脚本服务只需要把脚本放到/etc/init.d然后授权后用chkconfig添加后就可以管理了,那么centos7又是怎么添加自定义脚本服务呢? CentOS7添加 ...
- CentOS7——初始化
CentOS7--初始化 #禁止关闭显示器 archlinux wiki 提及的方法 echo -ne "\033[9;0]" >> /etc/issue # 重启,c ...
- Centos7初始化脚本
今天分享一个自己写的一个初始化的小脚本. 编写初始化系统要考虑到系统的版本问题,现在用的比较多的就是centos6和centos7,所以首先要判断一下系统的版本. cat /etc/redhat-re ...
- centos7 初始化脚本
#!/bin/bash # 时间: 2018-11-21 # 作者: HuYuan # 描述: CentOS 7 初始化脚本 # 加载配置文件 if [ -n "${1}" ];t ...
- centos7初始化脚本(转)
#!/bin/bash # 描述: CentOS 初始化脚本 # 加载配置文件 if [ -n "${1}" ];then /bin/} fi # 可接受配置(shell 变量格式 ...
- JLink V8初始化exynos4412脚本
/** ****************************************************************************** * @author Maox ...
- SQL Server 数据库初始化准备脚本
通常我们在项目部署前都会写一份数据库初始化脚本.由于数据库外键的限制,我们需要按照数据引用顺序添加初始记录,这个整理过程相当麻烦. 因此写了以下脚本,原理是先去掉所有外键,然后执行一次清空,然后添加数 ...
- VS C++工程类成员初始化检测脚本
最近项目中出现由类成员未初始化而进行读写而造成的问题,于是想将项目中所有的为初始化的地方找出来,优化一下代码,维护了这么多年的程序已有百万余行且VS2015还尚未支持检查类成员初始化的方法.,于是想写 ...
随机推荐
- SCI EI 检索的会议期刊
SCI EI 收录 SCI EI 收录 SCI Impact Factor Search: http://www.heavyoil.cn/if.aspx SCI indexed journal lis ...
- UEFI+GPT下安装Win10和Ubuntu16.04双系统相关问题(引导、无线连不上网)
1.安装双系统 1)先制作U盘启动,制作过程不再赘述 2)进入bios,设置从U盘启动 3)如下图,选择第二项为安装Ubuntu 4)前几不没什么问题,就直接往下走,选择语言,往下拉有中文选项 5)下 ...
- Textual Entailment(自然语言推理-文本蕴含) - AllenNLP
自然语言推理是NLP高级别的任务之一,不过自然语言推理包含的内容比较多,机器阅读,问答系统和对话等本质上都属于自然语言推理.最近在看AllenNLP包的时候,里面有个模块:文本蕴含任务(text en ...
- Confluence与Jira安装及后期迁移问题记录
Confluence与Jira 由于线上jira和confluence之前互相关联,confluence的登录用户全部关联自jira的用户,confluence安装时会提示是否关联jira,由于这个问 ...
- Netty源码之解码中两种数据积累器(Cumulator)的区别
上一篇随笔中已经介绍了解码核心工作流程,里面有个数据积累器的存在(Cumulator),其实解码中有两种Cumulator,那他们的区别是什么呢? 还是先打开ByteToMessageDecoder的 ...
- 石子合并2——区间DP【洛谷P1880题解】
[区间dp让人头痛……还是要多写些题目练手,抽空写篇博客总结一下] 这题区间dp入门题,理解区间dp或者练手都很妙 ——题目链接—— (或者直接看下面) 题面 在一个圆形操场的四周摆放N堆石子,现要将 ...
- url编码问题小计
昨天通过get访问服务器遇到了服务器获取不到参数的问题,最后排查下来是因为url编码的原因,之前使用的是字符串拼接,所以有一些特殊字符如‘%’没有正确的编码, 通过改成各个部分编码,正确获取到数据. ...
- Spring Boot 版本支持
一.Spring Boot 版本支持 Spring Boot Spring Framework Java Maven Gradle 1.2.0之前版本 6 3.0+ 1.6+ 1.2.0 4.1. ...
- SQL SERVER中Datetime时间的范围与.net的DateTime对象的区别
对于编写.net程序中我们一般写默认的时间,我们会自动创建一个new DateTime()对象.但与SQL SERVER连用我们就会出现一个时间范围的问题. 今天我就记录一下该时间问题. 我们创建的n ...
- Django: ORM 数据库设置和读写分离
一.Django的数据库配置 (一)修改settings.py文件关于数据库的配置: Django默认使用sqlite: # Django默认的数据库库,SQLit配置 DATABASES = { ' ...