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服务器初始化脚本的主要内容,如果未能解决你的问题,请参考以下文章

linux服务器初始化脚本

分享前端开发常用代码片段

收藏|分享前端开发常用代码片段

关于js----------------分享前端开发常用代码片段

常用python日期日志获取内容循环的代码片段

Linux服务器初始化工作