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 :
Menu secondaire :
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 个开源项目!赶快收藏吧
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 '#grep SELINUX=disabled /etc/sysconfig/selinux' grep SELINUX=disabled /etc/sysconfig/selinux echo '#getenforce' getenforce else echo 'SELINUX已处于关闭状态' echo '#grep SELINUX=disabled /etc/sysconfig/selinux' grep SELINUX=disabled /etc/sysconfig/selinux echo '#getenforce' getenforce fi action "完成禁用SELINUX" /bin/true echo "===========================================================" sleep 2 } #3.关闭firewalld firewalldset() { echo "=======================禁用firewalld========================" systemctl stop firewalld.service &> /dev/null echo '#firewall-cmd --state' firewall-cmd --state systemctl disable firewalld.service &> /dev/null echo '#systemctl list-unit-files | grep firewalld' 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 '#systemctl list-unit-files | grep -E "auditd|postfix|dbus-org\.freedesktop\.NetworkManager"' systemctl list-unit-files | grep -E "auditd|postfix|dbus-org\.freedesktop\.NetworkManager" action "完成精简开机启动" /bin/true echo "===========================================================" sleep 2 } #5.修改文件描述符 limitset() { echo "======================修改文件描述符=======================" echo '* - nofile 65535'>/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 's#^GSSAPIAuthentication yes$#GSSAPIAuthentication no#g' /etc/ssh/sshd_config sed -i 's/#UseDNS yes/UseDNS no/g' /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 <<'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 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 'Please select a number from [1-13].' ;; esac ;; 3) exit ;; *) echo 'Err:Please select a number from [1-3].' sleep 3 main ;; esac } main $*
Enregistrez-le sous init.sh, puis accordez les autorisations d'exécution et exécutez-le.
chmod +x init.sh && ./init.sh
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)"
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

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.

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

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-

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.

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.

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.

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.

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.
