日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux Shell脚本专栏_服务器系统配置初始化脚本_01

發布時間:2024/9/27 linux 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux Shell脚本专栏_服务器系统配置初始化脚本_01 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 一、服務器系統配置初始化
    • 1. 設置時區并同步時間
      • ① 腳本編寫
      • ②腳本說明
    • 2. 禁用selinux
      • ① 腳本編寫
      • ②腳本說明
    • 3. 關閉防火墻
      • ① 腳本編寫
      • ②腳本說明
    • 4. 歷史命令顯示操作時間
      • ① 腳本編寫
      • ②腳本說明
    • 5. 禁止root遠程登錄
      • ① 腳本編寫
      • ②腳本說明
    • 6. 禁止定時任務發送郵件
      • ① 腳本編寫
      • ②腳本說明
    • 7. 設置最大打開文件數
      • ① 腳本編寫
      • ②腳本說明
    • 8. 較少Swap使用
      • ① 腳本編寫
      • ②腳本說明
    • 9. 系統內核參數優化
      • ① 腳本編寫
      • ②腳本說明
    • 10. 安裝系統性能分析工具及其他
      • ① 腳本編寫
      • ②腳本說明
    • 11. SSH超時時間
      • ① 腳本編寫
      • ②腳本說明
  • 二、腳本集成+可執行權限
    • 2.1. 全部腳本集成版本
    • 2.2. 賦予腳本可執行權限
    • 2.3. 運行腳本
    • 2.4. 不賦予權限運行腳本
    • 2.5. 腳本調試技巧
    • 2.6. 腳本格式轉換
  • 三、驗證
    • 3.1. 刷新使腳本生效
    • 3.2. 查看命令
    • 3.3. 查看追加的環境變量

一、服務器系統配置初始化

背景:新購買10臺服務器冰冰安裝Linux操作 需求:1. 設置時區并同步時間2. 禁用selinux3. 關閉防火墻4. 李世明令顯示操作時間5. 禁止root遠程登錄6. 禁止定時任務發送郵件7. 設置最大打開文件數8. 較少Swap使用9. 系統內核參數優化10.安裝系統性能分析工具及其他

1. 設置時區并同步時間

① 腳本編寫

ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime if ! crontab -l |grep ntpdate &>/dev/null ; then(echo "* 1 * * * ntpdate ntp1.aliyun.com >/dev/null 2>&1";hwclock -w;crontab -l) |crontab fi

②腳本說明

查看系統信息

[root@ly-01 ~]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) #查看當前默認時區 UTC [root@ly-01 ~]# date Mon Feb 24 08:59:26 CST 2020#修改時區為亞洲上海時區 ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime#安裝Linux系統時間同步服務軟件:ntpdate 如果已安裝,則跳過此步驟 [root@localhost ~]# yum -y install ntpdate#Linux系統時間同步 #讓當前服務器同步到網絡時間,從而來更新當前服務器的時間。以下命令表示的是讓當前服務器時間同步到ntp1.aliyun.com [root@localhost ~]# ntpdate ntp1.aliyun.com #Linux硬件時間同步:修改服務器硬件時間映射到我們的系統時間,也可以說系統時間同步到硬件時間,防止系統重啟后時間還原。 hwclock -w#定時同步,牽扯到定時任務 #查看當前用戶的定時任務 [root@ly-01 ~]# crontab -l #給當前用戶添加定時任務 [root@ly-01 ~]# crontab -e#同步時間規則,每天1點同步一次 * 1 * * *#將錯誤追加為空 >前面下具體執行的命令 >/dev/null 2>&1#判斷現定時任務列表中是否有次定時任務,有,則跳過下面設置定時任務的邏輯 if ! crontab -l |grep ntpdate &>/dev/null ; #下面這是一組命令 可直接執行 (echo "* 1 * * * ntpdate ntp1.aliyun.com >/dev/null 2>&1";hwclock -w;crontab -l) |crontab

2. 禁用selinux

① 腳本編寫

sed -i '/SELINUX/{s/permissive/disabled/}' /etc/selinux/config

②腳本說明

#流編輯器 sed #寫入或者修改 -i #區配關鍵字 /SELINUX #將/etc/selinux/config文件中值為permissive替換為disabled /permissive/disabled/ /etc/selinux/config#咱們手動編輯修改一樣的 vim /etc/selinux/config #替換值permissive為disabled即可

3. 關閉防火墻

① 腳本編寫

if egrep "7.[0-9]" /etc/redhat-release &>/dev/null; thensystemctl stop firewalldsystemctl disable firewalld elif egrep "6.[0-9]" /etc/redhat-release &>/dev/null; thenservice iptables stopchkconfig iptables off fi

②腳本說明

這是一個centos7和centos6 2個版本防火墻腳本 先去查看/etc/redhat-release文件中的系統版本內容,然后用正則表達式區配7.x還是6.x,然后使用管道命令過濾,最后,針對不同系統走不同分支

4. 歷史命令顯示操作時間

當前用戶什么時間執行的什么命令

① 腳本編寫

if ! grep HISTTIMEFORMAT /etc/bashrc; thenecho 'export HISTTIMEFORMAT="%F %T `whoami` "' >> /etc/bashrc fi

②腳本說明

#export HISTTIMEFORMAT 將此變量輸出到環境變量中 #%F %T 日期時間格式 #whoami 當前用戶 export HISTTIMEFORMAT="%F %T `whoami` " history



后:

5. 禁止root遠程登錄

① 腳本編寫

#sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config

②腳本說明

此設置要慎重:執行此設置之前一定要提前把管理用戶創建好,不然,服務器登錄不上,建議先把此配置注釋,改為yes root就登錄不上了 編輯/etc/ssh/sshd_config文件,將#PermitRootLogin yes 注釋去掉

6. 禁止定時任務發送郵件

① 腳本編寫

操作錯誤時,服務器會定時發送郵件,目錄在/var/mail/下面,導致小文件增多,影響服務器性能,上面的追加錯誤為空,也是為了這個目的

sed -i 's/^MAILTO=root/MAILTO=""/' /etc/crontab

②腳本說明

# 編輯/etc/crontab文件 vim /etc/crontab #替換格式 's/^ #替換的目標對象 MAILTO=root #替換后的值等于什么 MAILTO=""

7. 設置最大打開文件數

① 腳本編寫

if ! grep "* soft nofile 65535" /etc/security/limits.conf &>/dev/null; then cat >> /etc/security/limits.conf << EOF* soft nofile 65535* hard nofile 65535 EOF fi

②腳本說明

# * 域的范圍,*代表所有 # soft 類型 有soft 和hard 2種 #nofile 表示打開最大文件數 #65535 最大文件數數量* soft nofile 65535#簡單的來說 #就是編輯/etc/security/limits.conf這個文件追加這2行內容

8. 較少Swap使用

① 腳本編寫

echo "0" > /proc/sys/vm/swappiness

②腳本說明

編輯/proc/sys/vm/swappiness文件修改值

9. 系統內核參數優化

① 腳本編寫

cat >> /etc/sysctl.conf << EOF net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_max_tw_buckets = 20480 net.ipv4.tcp_max_syn_backlog = 20480 net.core.netdev_max_backlog = 262144 net.ipv4.tcp_fin_timeout = 20 EOF

②腳本說明

編輯/etc/sysctl.conf文件追加下面參數#當tcp溢出時一個保護機制策略 net.ipv4.tcp_syncookies = 1 #最大隊列長度 net.ipv4.tcp_max_tw_buckets = 20480 #接收syn的隊最大列長度 net.ipv4.tcp_max_syn_backlog = 20480 #網卡的最大隊列長度 net.core.netdev_max_backlog = 262144 #超時設置 net.ipv4.tcp_fin_timeout = 20 #查看系統默認參數 [root@ly-01 mail]# sysctl -a |grep syn_ba

10. 安裝系統性能分析工具及其他

① 腳本編寫

yum install gcc make autoconf vim sysstat wget unzip net-tools iostat iftop iotp lrzsz -y

②腳本說明

在這里插入代碼片

11. SSH超時時間

用于咱們ssh登錄后的超時時間,栗子:你通過ssh登錄服務器,在一定時間被沒有做任何操作
設置超時時間安全性好

① 腳本編寫

if ! grep "TMOUT=600" /etc/profile &>/dev/null; thenecho "export TMOUT=600" >> /etc/profile fi

②腳本說明

#將此變量追加到系統環境變量的配置文件中 echo "export TMOUT=600" >> /etc/profile

二、腳本集成+可執行權限

2.1. 全部腳本集成版本

#創建存儲腳本的目錄 mkdir shell_scripts #創建腳本文件 vim 1.sh #粘貼下面內容 #/bin/bash # 設置時區并同步時間 ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime if ! crontab -l |grep ntpdate &>/dev/null ; then(echo "* 1 * * * ntpdate ntp1.aliyun.com >/dev/null 2>&1";hwclock -w;crontab -l) |crontab fi# 禁用selinux sed -i '/SELINUX/{s/permissive/disabled/}' /etc/selinux/config# 關閉防火墻 if egrep "7.[0-9]" /etc/redhat-release &>/dev/null; thensystemctl stop firewalldsystemctl disable firewalld elif egrep "6.[0-9]" /etc/redhat-release &>/dev/null; thenservice iptables stopchkconfig iptables off fi# 歷史命令顯示操作時間 if ! grep HISTTIMEFORMAT /etc/bashrc; thenecho 'export HISTTIMEFORMAT="%F %T `whoami` "' >> /etc/bashrc fi# SSH超時時間 if ! grep "TMOUT=600" /etc/profile &>/dev/null; thenecho "export TMOUT=600" >> /etc/profile fi# 禁止root遠程登錄 #sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config# 禁止定時任務向發送郵件 sed -i 's/^MAILTO=root/MAILTO=""/' /etc/crontab # 設置最大打開文件數 if ! grep "* soft nofile 65535" /etc/security/limits.conf &>/dev/null; then cat >> /etc/security/limits.conf << EOF* soft nofile 65535* hard nofile 65535 EOF fi# 系統內核優化 cat >> /etc/sysctl.conf << EOF net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_max_tw_buckets = 20480 net.ipv4.tcp_max_syn_backlog = 20480 net.core.netdev_max_backlog = 262144 net.ipv4.tcp_fin_timeout = 20 EOF# 減少SWAP使用 echo "0" > /proc/sys/vm/swappiness# 安裝系統性能分析工具及其他 yum install gcc make autoconf vim sysstat wget unzip net-tools iostat iftop iotp lrzsz -y

2.2. 賦予腳本可執行權限

chmod +x 1.sh

2.3. 運行腳本

#在當前目錄下面,運行腳本 ./1.sh



2.4. 不賦予權限運行腳本

bash 腳本名稱

2.5. 腳本調試技巧

哪一行報錯,就把相關的腳本復制出來,單獨創建一個.sh的文件,招貼內容到文件中,用bash +腳本文件名,運行腳本

2.6. 腳本格式轉換

在Windows編輯的腳本在Linux運行有時會發生格式或者語法問題
解決方案:

#安裝dos2unix yum install dos2unix -y

# dos2unix 腳本名稱dos2unix 1.sh

#再次運行腳本 ./1.sh

三、驗證

3.1. 刷新使腳本生效

source /etc/bashrc

3.2. 查看命令

#查看命令 cat /etc/bashrc

3.3. 查看追加的環境變量

cat /etc/profile

總結

以上是生活随笔為你收集整理的Linux Shell脚本专栏_服务器系统配置初始化脚本_01的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。