linux服务器初始化脚本

脚本内容如下

#!/bin/bash

# 设置历史命令
sed -i ‘/^[\ \t]*HISTSIZE=.*/s/^[\ \t]*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\np\n1\n\n\nt\n8e\np\nw\n" | 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

原文地址:http://blog.51cto.com/vtime/2350766

时间: 2024-10-13 03:06:27

linux服务器初始化脚本的相关文章

linux 服务器初始化优化脚本

linux 服务器初始化优化脚本 ---------------------------------------------------------------------------------------- #!/bin/bash ## Writes By Tian ## Ver 1.1.0 at 20180705 #关闭 ctrl + alt + del (linux 6.x ) echo "关闭 ctrl + alt + del ......." sed -i "s/

转自ruby迷: 使用Net::SSH和Net::SCP编写Linux服务器管理脚本

试了一下perl下安装ssh模块,整了半天linux/window上都装不上,各依赖模块的版本总是匹配不上,后改了一下思路,用ruby吧 Net::SSH和Net::SCP是两个Ruby操作SSH的gem包.Net::SSH相当于cmd,专门用于执行命令:Net::SCP专门用于传输文件.它们俩结合,可以做任何SSH client能做的事情. 安装: gem install net-ssh gem install net-scp 以下所有代码都引用这段代码 require 'net/ssh' r

linux服务器安全检查脚本

#说明:大家平时对linux服务器安全主要是对系统用户的检查,登陆服务器IP检查,以及防火墙状态检查! 1.需要把正确系统用户名存储在/root/liu_shell/local_user.txt文件中,然后进行比较! 2.对登陆IP判断是不是以192.168.1和192.168.2开头的IP为正常IP! 3.判断iptables状态! #!/usr/bin/python #coding=utf-8 import sys,os,re,socket host=str(socket.gethostna

一键linux系统初始化脚本

一.前言一般我们在安装新的系统时,系统的一些默认配置对我们来说是不行的,所以我们要自定义初始化系统. 二.需求1)设置时区并把同步时间加入计划任务2)禁用selinux3)清空原防火墙默认策略只保留ssh4)历史命令显示操作时间级用户5)创建ALL权限用户并禁止root远程登录6)禁止定时任务发送邮件7)设置最大打开文件数8)减少swap使用9)系统内核参数优化10)安装系统性能分析工具及其他常常用工具注意:安装新系统最好最小化安装. 三.脚本正文#!/bin/bash #设置时区并同步时间ln

调用远程linux服务器shell脚本

package com.haiyisoft.hyoaPc.ui; import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.UnsupportedEncodingException; import org.apache.commons.lang.StringUtils; import ch.e

linux服务器初始化(防火墙、内核优化、时间同步、打开文件数)

#!/bin/bash read -p 'enter the network segment for visiting the server:' ips # 关闭firewalld和selinux systemctl stop firewalld systemctl disable firewalld sed -i 's\SELINUX=enforcing\SELINUX=disabled\g' /etc/selinux/config setenforce 0 # 配置时间同步(阿里源) rpm

linux系统初始化脚本

#!/bin/bash # Author:JuChangfei # BLOG:http://changfei.blog.51cto.com   if [ `whoami` != "root" ];then echo "please use root!" exit 1 fi #Common installation package yum -y install sysstat iptraf curl curl-devel ntp wget lsof  strace l

LINUX 系统初始化脚本

#!/bin/bash ######the system first start configuretion #####for install ####copy right by donglei############## #1.配置sysctl mv /etc/sysctl.conf  /etc/sysctl.bak echo "############################the new config for sysctl ########### net.ipv4.ip_forwa

Linux初始化脚本

以下脚本用于linux系统的初始化脚本,可以在服务器系统安装完毕之后立即执行.脚本结合各位大牛一些参数,已经在CentOS 5下通过. 使用方法:将其复制,保存为一个shell文件,比如init.sh.将其上传到linux服务器上,执行sh init.sh.建议大家在系统安装后立即执行. 脚本代码: #!/bin/bash # Configure yum source cd /tmp wget -c http://yum.baseurl.org/download/3.4/yum-3.4.3.ta