Table des matières
3. Code source" >3. Code source
Maison Opération et maintenance CentOS Script d'optimisation du système CentOS 7

Script d'optimisation du système CentOS 7

Aug 02, 2023 pm 05:22 PM
centos centos7


Script d'optimisation du système CentOS 7


1. Introduction

En tant qu'exploitation et maintenance, nous déployons souvent des systèmes d'exploitation à des fins diverses, mais dans ces emplois, nous constaterons que de nombreuses tâches sont en réalité pour travail répétitif, le contenu de l'opération est également similaire. Sur la base de cette situation, nous pouvons transformer la même opération en un script pour une exécution unifiée et saisir manuellement différentes choses comme variables. Le temps gagné ne peut-il pas être utilisé pour faire des choses plus significatives ?

Récemment, j'ai trouvé un code source shell relativement facile à utiliser basé sur la recommandation des fans, je l'ai adapté sur cette base et je l'ai partagé avec tout le monde.

2. Menu

Menu principal :

Script d'optimisation du système CentOS 7

Menu secondaire :

Script d'optimisation du système CentOS 7

Réalisez principalement diverses optimisations du système, telles que les modifications couramment utilisées des jeux de caractères, la fermeture de Selinux et fermez les pare-feu, installez les outils couramment utilisés et accélérez la connexion SSH et d'autres fonctions.

牛逼啊!接私活必备的 N 个开源项目!赶快收藏吧
Copier après la connexion

3. Code source

#!/bin/sh

. /etc/rc.d/init.d/functions
export LANG=zh_CN.UTF-8

#一级菜单
menu1()
{
        clear
        cat <<eof
----------------------------------------
|****   欢迎使用cetnos7.9优化脚本    ****|
|****      博客地址: aaa.al         ****|
----------------------------------------
1. 一键优化
2. 自定义优化
3. 退出
EOF
        read -p "please enter your choice[1-3]:" num1
}

#二级菜单
menu2()
{
 clear
 cat <<eof
----------------------------------------
|****Please Enter Your Choice:[0-13]****|
----------------------------------------
1. 修改字符集
2. 关闭selinux
3. 关闭firewalld
4. 精简开机启动
5. 修改文件描述符
6. 安装常用工具及修改yum源
7. 优化系统内核
8. 加快ssh登录速度
9. 禁用ctrl+alt+del重启
10.设置时间同步
11.history优化
12.返回上级菜单
13.退出
EOF
 read -p "please enter your choice[1-13]:" num2

}

#1.修改字符集
localeset()
{
 echo "========================修改字符集========================="
 cat > /etc/locale.conf <<eof
LANG="zh_CN.UTF-8"
#LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"
EOF
 source /etc/locale.conf
 echo "#cat /etc/locale.conf"
 cat /etc/locale.conf
 action "完成修改字符集" /bin/true
 echo "==========================================================="
 sleep 2
}

#2.关闭selinux
selinuxset() 
{
 selinux_status=`grep "SELINUX=disabled" /etc/sysconfig/selinux | wc -l`
 echo "========================禁用SELINUX========================"
 if [ $selinux_status -eq 0 ];then
  sed  -i "s#SELINUX=enforcing#SELINUX=disabled#g" /etc/sysconfig/selinux
  setenforce 0
  echo &#39;#grep SELINUX=disabled /etc/sysconfig/selinux&#39;
  grep SELINUX=disabled /etc/sysconfig/selinux
  echo &#39;#getenforce&#39;
  getenforce
 else
  echo &#39;SELINUX已处于关闭状态&#39;
  echo &#39;#grep SELINUX=disabled /etc/sysconfig/selinux&#39;
                grep SELINUX=disabled /etc/sysconfig/selinux
                echo &#39;#getenforce&#39;
                getenforce
 fi
  action "完成禁用SELINUX" /bin/true
 echo "==========================================================="
 sleep 2
}

#3.关闭firewalld
firewalldset()
{
 echo "=======================禁用firewalld========================"
 systemctl stop firewalld.service &> /dev/null
 echo &#39;#firewall-cmd  --state&#39;
 firewall-cmd  --state
 systemctl disable firewalld.service &> /dev/null
 echo &#39;#systemctl list-unit-files | grep firewalld&#39;
 systemctl list-unit-files | grep firewalld
 action "完成禁用firewalld,生产环境下建议启用!" /bin/true
 echo "==========================================================="
 sleep 5
}

#4.精简开机启动
chkset()
{
 echo "=======================精简开机启动========================"
 systemctl disable auditd.service
 systemctl disable postfix.service
 systemctl disable dbus-org.freedesktop.NetworkManager.service
 echo &#39;#systemctl list-unit-files | grep -E "auditd|postfix|dbus-org\.freedesktop\.NetworkManager"&#39;
 systemctl list-unit-files | grep -E "auditd|postfix|dbus-org\.freedesktop\.NetworkManager"
 action "完成精简开机启动" /bin/true
 echo "==========================================================="
 sleep 2
}

#5.修改文件描述符
limitset()
{
 echo "======================修改文件描述符======================="
 echo &#39;* - nofile 65535&#39;>/etc/security/limits.conf
 ulimit -SHn 65535
 echo "#cat /etc/security/limits.conf"
 cat /etc/security/limits.conf
 echo "#ulimit -Sn ; ulimit -Hn"
 ulimit -Sn ; ulimit -Hn
 action "完成修改文件描述符" /bin/true
 echo "==========================================================="
 sleep 2
}

#6.安装常用工具及修改yum源
yumset()
{
 echo "=================安装常用工具及修改yum源==================="
 yum install wget -y &> /dev/null
 if [ $? -eq 0 ];then
  cd /etc/yum.repos.d/
  \cp CentOS-Base.repo CentOS-Base.repo.$(date +%F)
  ping -c 1 mirrors.aliyun.com &> /dev/null
  if [ $? -eq 0 ];then
   wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo &> /dev/null
   yum clean all &> /dev/null
   yum makecache &> /dev/null
  else
   echo "无法连接网络"
       exit $?
    fi
 else
  echo "wget安装失败"
  exit $?
 fi
 yum -y install ntpdate lsof net-tools telnet vim lrzsz tree nmap nc sysstat &> /dev/null
 action "完成安装常用工具及修改yum源" /bin/true
 echo "==========================================================="
 sleep 2
}

#7. 优化系统内核 #另外,搜索公众号技术社区后台回复“壁纸”,获取一份惊喜礼包。kernelset()
{
 echo "======================优化系统内核========================="
 chk_nf=`cat /etc/sysctl.conf | grep conntrack |wc -l`
 if [ $chk_nf -eq 0 ];then
  cat >>/etc/sysctl.conf<<eof
net.ipv4.tcp_fin_timeout = 2
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_keepalive_time = 600
net.ipv4.ip_local_port_range = 4000 65000
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_max_tw_buckets = 36000
net.ipv4.route.gc_timeout = 100
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 0
net.core.somaxconn = 16384
net.core.netdev_max_backlog = 16384
net.ipv4.tcp_max_orphans = 16384
net.netfilter.nf_conntrack_max = 25000000
net.netfilter.nf_conntrack_tcp_timeout_established = 180
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
EOF
 sysctl -p
 else
  echo "优化项已存在。"
 fi
 action "内核调优完成" /bin/true
 echo "==========================================================="
 sleep 2
}

#8.加快ssh登录速度
sshset()
{
 echo "======================加快ssh登录速度======================"
 sed -i &#39;s#^GSSAPIAuthentication yes$#GSSAPIAuthentication no#g&#39; /etc/ssh/sshd_config
 sed -i &#39;s/#UseDNS yes/UseDNS no/g&#39; /etc/ssh/sshd_config
 systemctl restart sshd.service
 echo "#grep GSSAPIAuthentication /etc/ssh/sshd_config"
 grep GSSAPIAuthentication /etc/ssh/sshd_config
 echo "#grep UseDNS /etc/ssh/sshd_config"
 grep UseDNS /etc/ssh/sshd_config
 action "完成加快ssh登录速度" /bin/true
 echo "==========================================================="
 sleep 2
}

#9. 禁用ctrl+alt+del重启
restartset()
{
 echo "===================禁用ctrl+alt+del重启===================="
 rm -rf /usr/lib/systemd/system/ctrl-alt-del.target
 action "完成禁用ctrl+alt+del重启" /bin/true
 echo "==========================================================="
 sleep 2
}

#10. 设置时间同步
ntpdateset()
{
 echo "=======================设置时间同步========================"
 yum -y install ntpdate &> /dev/null
 if [ $? -eq 0 ];then
  /usr/sbin/ntpdate time.windows.com
  echo "*/5 * * * * /usr/sbin/ntpdate ntp.aliyun.com &>/dev/null" >> /var/spool/cron/root
 else
  echo "ntpdate安装失败"
  exit $?
 fi
 action "完成设置时间同步" /bin/true
 echo "==========================================================="
 sleep 2
}

#11. history优化
historyset()
{
 echo "========================history优化========================"
 chk_his=`cat /etc/profile | grep HISTTIMEFORMAT |wc -l`
 if [ $chk_his -eq 0 ];then
  cat >> /etc/profile <<&#39;EOF&#39;
#设置history格式
export HISTTIMEFORMAT="[%Y-%m-%d %H:%M:%S] [`whoami`] [`who am i|awk &#39;{print $NF}&#39;|sed -r &#39;s#[()]##g&#39;`]: "
#记录shell执行的每一条命令
export PROMPT_COMMAND=&#39;\
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;&#39;
EOF
  source /etc/profile
 else
  echo "优化项已存在。"
 fi
 action "完成history优化" /bin/true
 echo "==========================================================="
 sleep 2
}

#控制函数
main()
{
 menu1
 case $num1 in
  1)
   localeset
   selinuxset
   firewalldset
   chkset
   limitset
   yumset
   kernelset
   sshset
   restartset
   ntpdateset
   historyset
   ;;
  2)
   menu2
   case $num2 in
                  1)
                    localeset
                    ;;
                  2)
                    selinuxset
                    ;;
                  3)
                    firewalldset
                    ;;
                  4)
                    chkset
                    ;;
                  5)
                    limitset
                    ;;
                  6)     
            yumset
                    ;;
                  7)
                    kernelset
                    ;;
                  8)
                    sshset
                    ;;
                  9)
                    restartset
                    ;;
                  10)
                    ntpdateset
                    ;;
    11)
      historyset
      ;;
    12)
      main
      ;;
    13)
      exit
      ;;
    *)
      echo &#39;Please select a number from [1-13].&#39;
      ;;
   esac
   ;;
  3)
   exit
   ;;
  *)
   echo &#39;Err:Please select a number from [1-3].&#39;
   sleep 3
   main
   ;;
 esac
}
main $*
Copier après la connexion

Enregistrez-le sous init.sh, puis accordez les autorisations d'exécution et exécutez-le.

chmod +x init.sh && ./init.sh
Copier après la connexion

S'il est difficile de copier et coller d'avant en arrière comme ceci, vous pouvez également l'exécuter via ma commande en un clic, qui peut également obtenir l'effet ci-dessus :

bash -c "$(curl -L s.aaa.al/init.sh)"
Copier après la connexion

Enfin, si vous avez une fonction que vous souhaitez implémenter , vous pouvez également l'utiliser sur la base du script original Implémenter des modifications.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment saisir le chinois en centos Comment saisir le chinois en centos Apr 07, 2024 pm 08:21 PM

Les méthodes d'utilisation de la saisie chinoise dans CentOS incluent : l'utilisation de la méthode de saisie fcitx : installez et activez fcitx, définissez les touches de raccourci, appuyez sur les touches de raccourci pour changer de méthode de saisie et saisissez le pinyin pour générer des mots candidats. Utiliser la méthode de saisie iBus : installez et activez iBus, définissez les touches de raccourci, appuyez sur les touches de raccourci pour changer de méthode de saisie et saisissez le pinyin pour générer des mots candidats.

Comment lire les fichiers du disque USB dans centos7 Comment lire les fichiers du disque USB dans centos7 Apr 07, 2024 pm 08:18 PM

Pour lire les fichiers du disque U dans CentOS 7, vous devez d'abord connecter le disque U et confirmer son nom de périphérique. Ensuite, suivez les étapes suivantes pour lire le fichier : Montez la clé USB : mount /dev/sdb1 /media/sdb1 (remplacez "/dev/sdb1" par le nom réel du périphérique) Parcourez le fichier de la clé USB : ls /media /sdb1; cd /media /sdb1/répertoire; nom du fichier cat

Conseils d'utilisation de SCP : exclure les fichiers de manière récursive Conseils d'utilisation de SCP : exclure les fichiers de manière récursive Apr 22, 2024 am 09:04 AM

On peut utiliser la commande scp pour copier en toute sécurité des fichiers entre les hôtes du réseau. Il utilise ssh pour le transfert de données et l'authentification. La syntaxe typique est la suivante : scpfile1user@host:/path/to/dest/scp -r/path/to/source/user@host:/path/to/dest/scp exclure les fichiers. Je ne pense pas que vous puissiez le faire lorsque vous utilisez la commande scp. Filtrez ou excluez des fichiers. Cependant, il existe une bonne solution pour exclure le fichier et le copier en toute sécurité à l'aide de ssh. Cette page explique comment filtrer ou exclure des fichiers lors de la copie récursive de répertoires à l'aide de scp. Comment utiliser la commande rsync pour exclure des fichiers La syntaxe est : rsyncav-essh-

Que faire si vous oubliez votre mot de passe pour vous connecter à centos Que faire si vous oubliez votre mot de passe pour vous connecter à centos Apr 07, 2024 pm 07:33 PM

Les solutions pour les mots de passe CentOS oubliés incluent : Mode mono-utilisateur : entrez en mode mono-utilisateur et réinitialisez le mot de passe à l'aide de passwd root. Mode de secours : démarrez à partir de CentOS Live CD/USB, montez la partition racine et réinitialisez le mot de passe. Accès à distance : utilisez SSH pour vous connecter à distance et réinitialisez le mot de passe avec sudo passwd root.

Comment activer les autorisations root dans centos7 Comment activer les autorisations root dans centos7 Apr 07, 2024 pm 08:03 PM

CentOS 7 désactive les autorisations root par défaut. Vous pouvez l'activer en suivant les étapes suivantes : Activez-le temporairement : saisissez « su root » sur le terminal et saisissez le mot de passe root. Activé en permanence : modifiez "/etc/ssh/sshd_config", remplacez "PermitRootLogin no" par "yes" et redémarrez le service SSH.

Comment obtenir les autorisations root dans centos7 Comment obtenir les autorisations root dans centos7 Apr 07, 2024 pm 07:57 PM

Il existe plusieurs façons d'obtenir les privilèges root dans CentOS 7 : 1. Exécutez la commande en utilisant "su". 2. Utilisez "sudo" pour exécuter une seule commande. 3. Activez l'utilisateur root et définissez un mot de passe. REMARQUE : Soyez prudent lorsque vous utilisez les privilèges root car ils peuvent endommager le système.

Comment saisir les autorisations root dans centos Comment saisir les autorisations root dans centos Apr 07, 2024 pm 08:06 PM

Il existe deux manières d'effectuer des tâches avec les privilèges root dans CentOS : 1) Utilisez la commande sudo pour obtenir temporairement les privilèges root 2) Connectez-vous directement en utilisant le mot de passe de l'utilisateur root ; Une extrême prudence doit être utilisée lors de l'utilisation des privilèges root et il est recommandé de ne les utiliser que lorsque cela est nécessaire.

Comment configurer la passerelle dans Centos Comment configurer la passerelle dans Centos Apr 07, 2024 pm 08:51 PM

Pour configurer CentOS en tant que passerelle, vous devez effectuer les étapes suivantes : 1. Configurez l'interface réseau et ajoutez la valeur GATEWAY ; 2. Définissez la passerelle par défaut et spécifiez les informations DNS 3. Démarrez le service réseau ; connexion ; 5. Configurez le pare-feu (facultatif) Sélectionner) pour autoriser le trafic via la passerelle.

See all articles