CentOS7 系统初始化优化项

文章详细描述了一个针对CentOS7服务器的一键优化脚本,包括检查网络、禁用非关键服务、调整内核参数、优化磁盘I/O、时间同步、定期更新和管理swap空间。脚本通过bash函数实现了一系列系统优化步骤。
摘要由CSDN通过智能技术生成
vi centos7_init.sh



#!/bin/bash
#服务器一键优化工具
function define_check_network() {
    echo 主机名为`hostname -f`
    ping www.baidu.com -c 6
}
function define_yum () {
    #关闭selinux
    sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config
    #常用软件安装
    yum clean all
    yum -y install bash vim wget curl sysstat gcc gcc-c++ make lsof sudo unzip openssh-clients net-tools systemd rpm yum rsyslog logrotate crontabs python-libs centos-release p7zip file
    yum -y update && yum -y upgrade
}
function define_tuning_services() {
    #关闭多余服务
    systemctl stop postfix firewalld chronyd cups
    #停止开机自启动
    systemctl disable postfix firewalld chronyd  cups
    echo "非关键系统服务已经关闭"
}
function define_tuning_kernel () {
    #4.内核参数优化
    echo "内核参数优化"
    declare -A config_items=(
        ["kernel.sysrq"]="0"
        ["kernel.core_uses_pid"]="1"
        ["kernel.msgmnb"]="65536"
        ["kernel.msgmax"]="65536"
        ["kernel.shmmax"]="68719476736"
        ["kernel.shmall"]="4294967296"
        ["kernel.sem"]="500 64000 64 256"
        ["fs.file-max"]="20971520"
        ["net.ipv4.tcp_tw_reuse"]="1"
        ["net.ipv4.tcp_tw_recycle"]="1"
        ["net.ipv4.tcp_fin_timeout"]="30"
        ["net.ipv4.tcp_keepalive_time"]="1200"
        ["net.ipv4.ip_local_port_range"]="1024 65535"
        ["net.ipv4.tcp_rmem"]="4096 87380 8388608"
        ["net.ipv4.tcp_wmem"]="4096 87380 8388608"
        ["net.ipv4.tcp_max_syn_backlog"]="8192"
        ["net.ipv4.tcp_max_tw_buckets"]="5000"
        ["net.ipv4.ip_forward"]="1"
        ["net.ipv4.conf.default.rp_filter"]="1"
        ["net.ipv4.conf.default.accept_source_route"]="0"
        ["net.ipv4.tcp_syncookies"]="1"
        ["net.ipv4.tcp_sack"]="1"
        ["net.ipv4.tcp_window_scaling"]="1"
        ["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"]="65535"
        ["net.ipv4.tcp_max_orphans"]="3276800"
        ["net.ipv4.tcp_timestamps"]="0"
        ["net.ipv4.tcp_synack_retries"]="1"
        ["net.ipv4.tcp_syn_retries"]="1"
        ["net.ipv4.tcp_mem"]="94500000 915000000 927000000"
        ["net.ipv6.conf.all.disable_ipv6"]="1"
        ["net.ipv6.conf.default.disable_ipv6"]="1"
        ["vm.swappiness"]="0"
    )
    for item in "${!config_items[@]}"; do
        if grep -q "$item" /etc/sysctl.conf; then
            # 配置项存在,替换原有配置
            sed -i "s/^$item.*/$item = ${config_items[$item]}/" /etc/sysctl.conf
        else
            # 配置项不存在,新增配置
            echo "$item = ${config_items[$item]}" >> /etc/sysctl.conf
        fi
    done
    echo "系统参数设置OK"
}
function define_tuning_system () {
    #加一个防呆判断
    if [ `grep -c "noatime" /etc/fstab` = 0 ]; then
        echo "脚本首次执行"
    else
        echo "第二次执行脚本,请手动检查错误"
        exit 1
    fi
    #磁盘IO优化
    sed -i '/xfs/s/defaults/defaults,noatime/' /etc/fstab
    ##nproc设置仅适合centos7
    sed -i 's/4096/524288/' /etc/security/limits.d/20-nproc.conf
    #管理open files数量
    echo "*  soft nofile   1024000" > /etc/security/limits.d/limits.conf
    echo "*  hard nofile   1024000" >> /etc/security/limits.d/limits.conf
    #管理最大进程数
    echo "*  soft nproc   1024000" >> /etc/security/limits.d/limits.conf
    echo "*  hard nproc   1024000" >> /etc/security/limits.d/limits.conf
    echo "session    required    /lib64/security/pam_limits.so" >> /etc/pam.d/login
    #全局变量设置优化
    echo 'export HISTTIMEFORMAT="%F %T `whoami` "' >> /etc/profile.d/env.sh
    echo 'unset MAILCHECK' >> /etc/profile.d/env.sh
    sed -i '/HISTSIZE/s/1000/12000/' /etc/profile
}

function define_ntpdate1 () {
#本地时间同步
yum -y install ntpdate
echo "/usr/sbin/ntpdate -us ntp1.aliyun.com;hwclock -w;" >> /etc/rc.d/rc.local
##时区校正
timedatectl set-timezone Asia/Shanghai
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && hwclock -w
##时间同步
/usr/sbin/ntpdate -us ntp1.aliyun.com;hwclock -w;
cat >> /var/spool/cron/root << EOF
##时间同步
0-59/20 * * * * /usr/sbin/ntpdate -us ntp1.aliyun.com;hwclock -w;
EOF
}
function define_update () {
## yum update
cat >> /var/spool/cron/root << EOF
#yum update software
45 00 * * * /usr/bin/yum -y install bash sudo ntpdate openssh openssl vim systemd rpm yum rsyslog logrotate crontabs curl; > /dev/null 2>&1;
EOF
}
function denfine_swap () {
cat  >> /var/spool/cron/root << EOF
## swap enable/disable
15 * * * *  /usr/sbin/swapoff -a && /usr/sbin/swapon -a;
EOF
}
function define_localhost () {
#define_yum
define_tuning_services
define_tuning_kernel
define_tuning_system
define_ntpdate1
define_update
denfine_swap
}
function define_exit () {
echo '' > /tmp/one_key.sh
exit
}
while :
do
echo ""
echo "服务器一键优化脚本"
echo ""
echo ""
echo " 0) 检查服务器网络           1) 本地环境专用"
echo " 2) 退出脚本"
echo
read -p "请输入一个选项: " opmode
echo
case ${opmode} in
0) define_check_network;;
1) define_localhost;;
2) define_exit;;
*) echo "无效输入" ;;
esac
done



首先执行以下命令可以查看当前已有的yum源

ls /etc/yum.repos.d



我们首先要做的是先将该基础原有的yum源进行备份

进入到yum源所在目录下:cd /etc/yum.repos.d



然后复制一份即可

cp CentOS-Base.repo CentOS-Base.repo.bak

再下载新的yum源到该目录下覆盖原先的yum源即可

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

这里采用的为阿里云的yum源,一般选国内任意yum源都行,都比国外快

清理原先yum源

yum clean all

最后生成yum源缓存即可

yum makecache
————————————————
版权声明:本文为CSDN博主「c.Coder」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_62126248/article/details/126070988



Linux根目录空间不足,追加分配空间到根目录下



最近在给公司安装centos7测试环境的时候,直接默认分区安装,所以导致分区上有点儿不太合理,大部分空间都在/home目录下,要求是尽可能的把空间都给根目录,于是,开始了以下的追加空间到根目录操作:
首先,我们需要格式化我们的/home分区删除其逻辑卷,所以如果有重要文件记得备份出来 !!备份。备份。备份!!
然后,进行扩容操作
最后,根据自己的需求创建个合适大小的/home目录,将文件拷会即可

具体命令:
fuser -km /home/  #杀死使用/home的所有进程,否者卸载不了/home目录
umount /home #卸载/home目录
lvremove /dev/mapper/centos-home #删除逻辑卷 y确认即可

ok!
现在可以df -h查询一下,我们的/home目录已经不见了
接下来执行:
lvextend -L +50G /dev/mapper/centos-root
上面的命令是向根分区下追加了50G
然后执行:
xfs_growfs  /dev/mapper/centos-root 
此命令是同步文件系统,将刚才追加的空间同步出来
这样,我们的根目录就已经拓展好了。
接下来我们把删除的/home目录在创建回来
执行命令:
lvcreate -L 20G -n /dev/mapper/centos-home
创建个20G的home目录逻辑卷
然后执行:
mkfs.xfs  /dev/mapper/centos-home
创建文件系统
最后执行:
mount /dev/mapper/centos-home 
将创建好的文件系统挂载上
ok!这样就一切大功告成啦!
ps:
不同版本的系统可能/dev/下文件的名称各部不相同,可以用lsblk命令查询具体名称,再进行相应操作。


















  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值