一鍵linux系統初始化指令碼

2021-09-03 09:33:34 字數 2755 閱讀 7988

一、前言

一般我們在安裝新的系統時,系統的一些預設配置對我們來說是不行的,所以我們要自定義初始化系統。

二、需求

1)設定時區並把同步時間加入計畫任務

2)禁用selinux

3)清空原防火牆預設策略只保留ssh

4)歷史命令顯示操作時間級使用者

5)建立all許可權使用者並禁止root遠端登入

6)禁止定時任務傳送郵件

7)設定最大開啟檔案數

8)減少swap使用

9)系統核心引數優化

10)安裝系統效能分析工具及其他常常用工具

注意:安裝新系統最好最小化安裝。

三、指令碼正文

#!/bin/bash

#設定時區並同步時間

ln -s /usr/share/zoneinfo/asia/shanghai /etc/localtime

if ! crontab -l |grep ntpdate &>/dev/null ; then

(echo "* 1 * * * ntpdate time.windows.com >/dev/null 2>&1";crontab -l) |crontab

fi#禁用selinux

sed -i '/selinux/' /etc/selinux/config

#安裝命令補全包

yum install -y epel-release &>/dev/null 2>&1

yum install -y bash-completion &>/dev/null 2>&1

#清空firewall防火牆原來所有的規則,只保留ssh

cd /etc/firewalld/zones/

echo "" > public.xml

cat >> public.xml << eof

public

eoffirewall-cmd --reload >/dev/null 2>&1

#歷史命令顯示操作時間

if ! grep histtimeformat /etc/bashrc; then

echo 'export histtimeformat="%f %twhoami"' >> /etc/bashrc

fi#ssh超時時間

if ! grep "tmout=600" /etc/profile &>/dev/null; then

echo "export tmout=600" >> /etc/profile

fi#新增乙個同root一樣的超級使用者,並禁止root遠端登入

new_user=admin

useradd $new_user

echo 123456 |passwd --stdin $new_user

#new_user_id=`cat /etc/passwd | grep $new_user | awk -f ":" ''`

#change=\$s/$new_user_id/0/

#sed -i "$change" /etc/passwd

sed -i "92a $new_user all=(all) nopasswd:all" /etc/sudoers

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

systemctl restart sshd

#禁止定時任務向傳送郵件

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

eoffi

#系統核心優化

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#安裝系統效能分析工具及其他

yum -y install gcc make autoconf vim sysstat net-tools iostat iftop iotp lrzsz &>/dev/null 2>&1

四、友情小命令

1)bash -x 指令碼名 //執行指令碼並且可以檢視全部執行過程

2)如果指令碼是在windows系統上所寫,拷貝到linux系統上時,因為兩種系統的系統格式不同,所以需要在linux系統上做如下操作:

yum -y install dos2unix

格式轉換: dos2unix 指令碼名字

3)執行ssh [email protected] 登入伺服器的時候,一般需要切換root使用者,則執行:

「sudo -i」 命令,這樣可以不需要輸入root密碼。

4)重點,本指令碼執行完畢,必須重啟系統方能全部生效!

五、結束語

我是大表哥,我為自己帶鹽,以後會不定時更新指令碼,請支援正版,盜鏈可恥,

我的部落格是:

LINUX 系統初始化指令碼

bin bash the system first start configuretion for install copy right by donglei 1 配置sysctl mv etc sysctl.conf etc sysctl.bak echo the new config for s...

centos系統初始化指令碼

bin bash echo 只用於新購伺服器初始化,有需要的自己可以寫進去 echo 只用於centos7.0版本 echo 其他版本差異,可以自行修改 read p 是否繼續 y n yn if yn y then exit 3 fi 檢視系統版本 linux release cat etc re...

一鍵化部署WordPress指令碼

root qls service scripts day11 cat lnmp.sh bin bash 引用函式 f etc init.d functions source etc init.d functions 選單cat eof 0.check network 1.install nginx ...