系统优化脚本支持Ubuntu和CentOS
安装系统后经常有一些基础的系统优化安装,本人比较懒,写了一个脚本,可以后期加入其他优化方面。
仓库地址:https://github.com/cby-chen/OS
后续可能会继续更新脚本
可以通过我的一键命令执行 bash -c "$(curl -L https://www.oiox.cn/os.sh)"
shell脚本如下
代码语言:shell复制#!/bin/bash
os=$(cat /etc/os-release 2>/dev/null | grep ^ID= | awk -F= '{print $2}')
function selinuxset(){
selinux_status=$(grep -c "SELINUX=disabled" /etc/sysconfig/selinux)
echo "========================禁用SELINUX========================"
if [ "$selinux_status" -eq 0 ];then
sed -i "s#SELINUX=enforcing#SELINUX=disabled#g" /etc/sysconfig/selinux
setenforce 0
grep SELINUX=disabled /etc/sysconfig/selinux
getenforce
else
echo 'SELINUX已处于关闭状态'
grep SELINUX=disabled /etc/sysconfig/selinux
getenforce
fi
action "完成禁用SELINUX" /bin/true
echo "==========================================================="
sleep 3
}
function firewalldset(){
echo "========================关闭firewalld======================="
echo '关闭防火墙'
systemctl disable --now firewalld
echo '验证如下'
systemctl list-unit-files | grep firewalld
echo '生产环境下建议启用'
echo "==========================================================="
sleep 3
}
function ufwset(){
echo "========================关闭ufw============================"
echo '关闭防火墙'
systemctl disable --now ufw
echo '验证如下'
systemctl list-unit-files | grep ufw
echo '生产环境下建议启用'
echo "==========================================================="
sleep 3
}
function limitsset(){
echo "======================修改文件描述符========================"
echo '加大系统文件描述符最大值'
{
echo '* soft nofile 65536'
echo '* hard nofile 65536'
echo '* soft nproc 65536'
echo '* hard nproc 65536'
} >> file
echo '查看配置内容'
cat /etc/security/limits.conf
echo '设置软硬资源限制'
ulimit -Sn ; ulimit -Hn
echo "==========================================================="
sleep 3
}
function yumset(){
echo "======================开始修改YUM源========================"
echo '开始修改YUM源'
sudo sed -e 's|^mirrorlist=|#mirrorlist=|g' -e 's|^#baseurl=http://mirror.centos.org|baseurl=https://mirrors.tuna.tsinghua.edu.cn|g' -i.bak /etc/yum.repos.d/CentOS-*.repo
echo '开始安装常规软件'
yum update -y
yum install curl git wget ntpdate lsof net-tools telnet vim lrzsz tree nmap nc sysstat epel* -y
echo "==========================================================="
sleep 3
}
function aptset(){
echo "======================开始修改APT源========================"
echo '开始修改APT源'
apt_stat=$(cat /etc/apt/sources.list | grep -v ^# | awk -F/ '{print $3}' | grep -v ^$ | awk 'NR==1{print}')
sudo sed -i "s/$apt_stat/mirrors.ustc.edu.cn/g" /etc/apt/sources.list
echo '开始安装常规软件'
apt update -y
apt upgrade -y
apt install vim htop net-tools lrzsz nmap telnet ntpdate sysstat curl git wget -y
echo "==========================================================="
sleep 3
}
function restartset(){
echo "===================禁用ctrl alt del重启===================="
rm -rf /usr/lib/systemd/system/ctrl-alt-del.target
echo "完成禁用ctrl alt del重启"
echo "==========================================================="
sleep 3
}
function historyset(){
echo "========================history优化========================"
chk_his=$(cat /etc/profile | grep HISTTIMEFORMAT |wc -l)
if [ $chk_his -eq 0 ];then
cat >> /etc/profile <<'EOF'
#设置history格式
export HISTTIMEFORMAT="[%Y-%m-%d %H:%M:%S] [`whoami`] [`who am i|awk '{print $NF}'|sed -r 's#[()]##g'`]: "
#记录shell执行的每一条命令
export PROMPT_COMMAND='
if [ -z "$OLD_PWD" ];then
export OLD_PWD=$PWD;
fi;
if [ ! -z "$LAST_CMD" ] && [ "$(history 1)" != "$LAST_CMD" ]; then
logger -t `whoami`_shell_dir "[$OLD_PWD]$(history 1)";
fi;
export LAST_CMD="$(history 1)";
export OLD_PWD=$PWD;'
EOF
source /etc/profile
else
echo "优化项已存在。"
fi
echo "完成history优化"
echo "==========================================================="
sleep 3
}
function helloset(){
echo "========================欢迎界面优化========================"
cat << EOF > /etc/profile.d/login-info.sh
#!/bin/sh
#
# @Time : 2022-04-21
# @Author : chenby
# @Desc : ssh login banner
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
shopt -q login_shell && : || return 0
echo -e "