linux服务器初始化脚本
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux服务器初始化脚本相关的知识,希望对你有一定的参考价值。
脚本内容如下
#!/bin/bash
# 设置历史命令
sed -i ‘/^[ ]*HISTSIZE=.*/s/^[ ]*HISTSIZE=.*/HISTSIZE=50000/‘ /etc/profile
sed -i ‘/^HISTSIZE=.*/aHISTTIMEFORMAT="%F %T "‘ /etc/profile
echo ‘‘ >> /etc/profile
echo ‘# 设置10分钟内用户无操作就字段断开终端‘ >> /etc/profile
echo ‘export TMOUT=600‘ >> /etc/profile
echo ‘# 将值设置为readonly 防止用户更改‘ >> /etc/profile
echo ‘# readonly TMOUT‘ >> /etc/profile
# 错误口令登录超过5次后锁定用户账号20分钟
echo
# 设置alias
echo "" >> /etc/bashrc
echo "# 命令别名" >> /etc/bashrc
echo "alias ll=‘ls -l --color=auto --time-style=+%F\ %T‘" >> /etc/bashrc
# 设置vim
echo "" >> /etc/vimrc
echo "" tabstop 表示一个 tab 显示出来是多少个空格的长度,默认8" >> /etc/vimrc
echo "set ts=4" >> /etc/vimrc
echo "" 缩进用空格来表示,noexpandtab 则是用制表符表示一个缩进" >> /etc/vimrc
echo "set expandtab" >> /etc/vimrc
echo "" 自动缩进" >> /etc/vimrc
echo "" set autoindent" >> /etc/vimrc
# 登陆提示语
echo ‘‘ > /etc/motd
echo ‘ へ /| ‘ >> /etc/motd
echo ‘ /\7 ∠_/ ‘ >> /etc/motd
echo ‘ / │ / / ‘ >> /etc/motd
echo ‘ │ Z _,< / /`ヽ ‘ >> /etc/motd
echo ‘ │ ヽ / 〉 ‘ >> /etc/motd
echo ‘ Y ` / / ‘ >> /etc/motd
echo ‘ ?● ? ● ??〈 / ‘ >> /etc/motd
echo ‘ () へ | \〈 ‘ >> /etc/motd
echo ‘ >? ?_ ィ │ // ‘ >> /etc/motd
echo ‘ / へ / ?<| \\ ‘ >> /etc/motd
echo ‘ ヽ_? (_/ │// ‘ >> /etc/motd
echo ‘ 7 |/ ‘ >> /etc/motd
echo ‘ >―r ̄ ̄`?―_ ‘ >> /etc/motd
echo ‘‘ >> /etc/motd
echo ‘‘ >> /etc/motd
echo ‘ ?????‘ >> /etc/motd
echo ‘‘ >> /etc/motd
echo ‘‘ >> /etc/motd
# 系统内核优化
#cat >> /etc/sysctl.conf <<EOF
# 表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。
# 默认为 180000,改为 5000。对于Apache、nginx等服务器,上几行的参数可以很好地减少TIME_WAIT套接字数量,
# 但是对于Squid,效果却不大。此项参数可以控制TIME_WAIT套接字的最大数量,避免Squid服务器被大量的TIME_WAIT套接字拖死。
# net.ipv4.tcp_max_tw_buckets = 6000
# net.ipv4.tcp_sack = 1 #用来查找特定的遗失的数据包---因此有助于快速恢复状态
# net.ipv4.tcp_window_scaling = 1 #设置tcp/ip会话的滑动窗口大小是否可变。1示可变,0不可变。
# net.ipv4.ip_local_port_range = 1024 65536 #用来指定外部连接的端口范围,默认是32 768到61 000
# net.ipv4.tcp_rmem=4096 87380 16777216 #指定接收套接字缓冲区大小的最大值,单位是字节。
# net.ipv4.tcp_wmem=4096 65536 16777216 #指定发送套接字缓冲区大小的最大值,单位是字节。
# net.ipv4.tcp_fin_timeout = 30 #此参数用于减少处于FIN-WAIT-2连接状态的时间,使系统可以处理更多的连接。此参数值为整数,单位为秒。
# net.ipv4.tcp_no_metrics_save=1
# net.ipv4.tcp_syncookies = 1 #该参数的功能有助于保护服务器免受SyncFlood***。默认值为0,这里设置为1。
# net.ipv4.tcp_max_orphans = 262144 #表示系统中最多有多少TCP套接字不被关联到任何一个用户文件句柄上。如果超过这里设置的数字,连接就会复位并#输出警告信息。这个限制仅仅是为了防止简单的DoS***。此值不能太小。这里设置为262 144。
# net.ipv4.tcp_max_syn_backlog = 65535 #记录的那些尚未收到客户端确认信息的连接请求的最大值。
# net.ipv4.tcp_synack_retries = 2 #这个参数用于设置内核放弃连接之前发送SYN+ACK包的数量。
# net.ipv4.tcp_syn_retries = 2 #此参数表示在内核放弃建立连接之前发送SYN包的数量。
# net.ipv4.tcp_tw_reuse=1 #表示开启重用。允许将TIME-WAIT套接字重新用于新的TCP连接。默认为0,表示关闭。
# net.ipv4.tcp_tw_recycle=1 #表示开启TCP连接中TIME-WAIT套接字的快速回收。默认为0,表示关闭。
# net.ipv4.tcp_keepalive_time = 1200 #表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,建议改为20分钟。
# net.ipv4.tcp_abort_on_overflow = 1
# net.ipv4.tcp_syncookies = 1
# net.ipv4.tcp_retries1 = 2
# net.ipv4.tcp_retries2 = 3
# net.core.rmem_max=16777216
# net.core.wmem_max=16777216
# net.core.netdev_max_backlog = 32768 #每个网口接收数据包的速率比内核处理包的速率快时,允许送到队列的数据包的最大数目
# 设置系统limit
echo ‘‘ >> /etc/security/limits.conf
echo ‘# nofile打开文件描述符的最大数目‘ >> /etc/security/limits.conf
/bin/echo "* soft nofile 65535" >> /etc/security/limits.conf
/bin/echo "* hard nofile 65535" >> /etc/security/limits.conf
echo ‘# nproc最大数量的进程‘ >> /etc/security/limits.conf
/bin/echo "* hard nproc 1204000" >> /etc/security/limits.conf
/bin/echo "* soft nproc 1204000" >> /etc/security/limits.conf
# limits.d/20-nproc.conf
echo -e "hao soft nproc 16384" >> /etc/security/limits.d/20-nproc.conf
# 磁盘分区 8e: Linux LVM
echo -e "n
p
1
t
8e
p
w
" | fdisk /dev/sdb
# 创建LVM
partprobe /dev/sdb
pvcreate /dev/sdb1
vgcreate -s 64MB haovg /dev/sdb1
lvcreate -l 40%VG -n log haovg
lvcreate -l 60%VG -n data haovg
# 格式化
mkfs.ext4 /dev/haovg/log
mkfs.ext4 /dev/haovg/data
# 挂载
mkdir -p /log
mkdir -p /data
echo "" >> /etc/fstabd
echo "/dev/haovg/log /log ext4 defaults 1 2" >> /etc/fstab
echo "/dev/haovg/data /data ext4 defaults 1 2" >> /etc/fstab
mount -a
# yum
mkdir -p /etc/yum.repos.d/bak
mv -f /etc/yum.repos.d/* /etc/yum.repos.d/bak
cat > /etc/yum.repos.d/c7.repo <<EOF
[c7]
name=centos 7
baseurl=ftp://10.1.0.1/centos7
enabled=1
gpgcheck=0
EOF
# 命令补全
yum -y install bash-completion
# lrzsz是一款在linux里可代替ftp上传和下载的程序
yum -y install lrzsz
# sysstat是一个软件包,包含监测系统性能及效率的一组工具,这些工具对于我们收集系统性能数据。
# iostat: 输出CPU的统计信息和所有I/O设备的输入输出(I/O)统计信息。
# mpstat: 关于CPU的详细信息(单独输出或者分组输出)。
# pidstat: 关于运行中的进程/任务、CPU、内存等的统计信息。
# sar: 保存并输出不同系统资源(CPU、内存、IO、网络、内核等。。。)的详细信息。
# sadc: 系统活动数据收集器,用于收集sar工具的后端数据。
# sa1: 系统收集并存储sadc数据文件的二进制数据,与sadc工具配合使用
# sa2: 配合sar工具使用,产生每日的摘要报告。
# sadf: 用于以不同的数据格式(CVS或者XML)来格式化sar工具的输出。
# Sysstat: sysstat工具的man帮助页面。
# nfsiostat: NFS(Network File System)的I/O统计信息。
# cifsiostat: CIFS(Common Internet File System)的统计信息。
yum -y install sysstat
# 时间同步工具
yum -y install ntpdate
# iptable
myipable(){
# 允许访问的 协议端口
port=$1
protocol=$2
# iptables -P INPUT DROP # 默认拒绝
# 添加允许访问的 协议端口
# iptables -I INPUT -p tcp --dport 22 -j ACCEPT
iptables -I INPUT -p $port --dport $protocol -j ACCEPT
# 保存
service iptables save
}
# firewall
myfirwall(){
}
## 列出软件组
#yum grouplist
## 安装图形化程序组
#yum -y groupinstall "Server with GUI"
## 查看默认运行级别
#systemctl get-default
## cat /etc/inittab
## systemctl set-default graphical.target
# 创建用户
groupadd -g 888 haogroup
useradd -d /hao -u 888 -g 888 -e "" hao
cp /etc/skel/.bash* /hao
chown -R hao:haogroup /data/ /log /hao
echo 123456 | passwd --stdin hao
passwd -x 99999 hao
# 时间同步 此时间服务器是公网
( crontab -l; echo ‘* */1 * * * /usr/sbin/ntpdate 0.cn.pool.ntp.org‘ ) | crontab
以上是关于linux服务器初始化脚本的主要内容,如果未能解决你的问题,请参考以下文章