Skrip pengoptimuman sistem CentOS 7
1. Pengenalan
Sebagai operasi dan penyelenggaraan, kami sering menggunakan sistem operasi untuk pelbagai tujuan ini, tetapi sebenarnya kami akan menggunakan sistem operasi untuk pelbagai tujuan ini, tetapi kami akan menggunakan sistem operasi untuk pelbagai tujuan ini kerja berulang, kandungan operasi juga serupa Berdasarkan situasi ini, kita boleh membuat operasi yang sama menjadi skrip untuk pelaksanaan bersatu, dan secara manual memasukkan perkara yang berbeza sebagai pembolehubah. Tidakkah masa yang disimpan boleh digunakan untuk melakukan perkara yang lebih bermakna?
Baru-baru ini, saya menjumpai kod sumber shell yang agak mudah digunakan berdasarkan pengesyoran peminat, saya menyesuaikannya berdasarkan ini dan berkongsi dengan semua orang.
2. Menu
Menu utama:
Menu kedua:
牛逼啊!接私活必备的 N 个开源项目!赶快收藏吧
3. Kod sumber
#!/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 $*
Simpan sebagai init.sh, kemudian berikan kebenaran pelaksanaan dan laksanakannya.
chmod +x init.sh && ./init.sh
Jika menyusahkan untuk salin dan tampal berulang-alik seperti ini, anda juga boleh melaksanakannya melalui arahan satu klik saya, yang juga boleh mencapai kesan di atas:
bash -c "$(curl -L s.aaa.al/init.sh)"
Akhir sekali, jika anda mempunyai fungsi yang anda ingin laksanakan , anda juga boleh menggunakannya berdasarkan skrip asal Laksanakan pengubahsuaian.
Atas ialah kandungan terperinci Skrip pengoptimuman sistem CentOS 7. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Kaedah untuk menggunakan input Cina dalam CentOS termasuk: menggunakan kaedah input fcitx: pasang dan dayakan fcitx, tetapkan kekunci pintasan, tekan kekunci pintasan untuk menukar kaedah input dan masukkan pinyin untuk menjana perkataan calon. Gunakan kaedah input iBus: Pasang dan dayakan iBus, tetapkan kekunci pintasan, tekan kekunci pintasan untuk menukar kaedah input dan masukkan pinyin untuk menjana perkataan calon.

Untuk membaca fail cakera U dalam CentOS 7, anda perlu menyambungkan cakera U dahulu dan mengesahkan nama perantinya. Kemudian, gunakan langkah berikut untuk membaca fail: Lekapkan pemacu kilat USB: lekapkan /dev/sdb1 /media/sdb1 (ganti "/dev/sdb1" dengan nama peranti sebenar) Semak imbas fail pemacu kilat USB: ls /media /sdb1; cd /media /sdb1/nama fail kucing

Terdapat dua cara untuk memasukkan kuasa akar CentOS 7: gunakan arahan sudo: masukkan sudo su - dalam terminal dan masukkan kata laluan pengguna semasa. Log masuk terus sebagai pengguna root: Pilih "Lain" pada skrin log masuk, masukkan "root" dan kata laluan root. Nota: Beroperasi dengan berhati-hati dengan keistimewaan root, melaksanakan tugas dengan keistimewaan sudo dan menukar kata laluan akar dengan kerap.

Seseorang boleh menggunakan arahan scp untuk menyalin fail antara hos rangkaian dengan selamat. Ia menggunakan ssh untuk pemindahan data dan pengesahan. Sintaks biasa ialah: scpfile1user@host:/path/to/dest/scp -r/path/to/source/user@host:/path/to/dest/scp exclude files Saya rasa anda tidak boleh apabila menggunakan arahan scp Tapis atau kecualikan fail. Walau bagaimanapun, terdapat penyelesaian yang baik untuk mengecualikan fail dan menyalinnya dengan selamat menggunakan ssh. Halaman ini menerangkan cara menapis atau mengecualikan fail apabila menyalin direktori secara rekursif menggunakan scp. Cara menggunakan arahan rsync untuk mengecualikan fail Sintaksnya ialah: rsyncav-essh-

Penyelesaian untuk kata laluan CentOS yang terlupa termasuk: Mod pengguna tunggal: Masukkan mod pengguna tunggal dan tetapkan semula kata laluan menggunakan akar passwd. Mod Penyelamat: But dari CentOS Live CD/USB, lekapkan partition root dan tetapkan semula kata laluan. Akses jauh: Gunakan SSH untuk menyambung dari jauh dan menetapkan semula kata laluan dengan akar sudo passwd.

CentOS 7 melumpuhkan kebenaran root secara lalai Anda boleh mendayakannya dengan mengikuti langkah berikut: Dayakan buat sementara waktu: Masukkan "su root" pada terminal dan masukkan kata laluan root. Didayakan secara kekal: Edit "/etc/ssh/sshd_config", tukar "PermitRootLogin no" kepada "yes", dan mulakan semula perkhidmatan SSH.

Terdapat beberapa cara untuk mendapatkan keistimewaan root dalam CentOS 7: 1. Jalankan arahan menggunakan "su". 2. Gunakan "sudo" untuk menjalankan satu arahan. 3. Dayakan pengguna root dan tetapkan kata laluan. NOTA: Berhati-hati apabila menggunakan keistimewaan root kerana ia boleh merosakkan sistem.

Terdapat dua cara untuk melaksanakan tugas dengan keistimewaan root dalam CentOS: 1) Gunakan arahan sudo untuk mendapatkan keistimewaan root buat sementara waktu 2) Log masuk terus menggunakan kata laluan pengguna root. Berhati-hati yang melampau harus digunakan apabila menggunakan keistimewaan root dan disyorkan untuk menggunakannya hanya apabila perlu.
