一、前言
一般我們在安裝新的系統時,系統的一些預設配置對我們來說是不行的,所以我們要自定義初始化系統。
二、需求
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 ...