####################################linux
shell 腳本編程nginx
1、一鍵部署腳本(源碼包安裝軟件nginx)算法
tar -xf lnmp_soft....gzshell
cd lnmp_softapache
tar -xf nginx...gz編程
cd nginx..swift
yum -y install gcc pcre-devel zlib-devel安全
./configurebash
make服務器
make install
確認:ls /usr/local/nginx
netstat -nulpt | grep 80 /nginx與apache衝突
systemctl stop httpd
2、nginx啓動腳本
用法:/usr/local/nginx/sbin/nginx 回車 無提示則啓動成功
網頁輸入172.40.55.115看到nginx歡迎界面
或作個鏈接 ln -s /usr/local/nginx/sbin/nginx /sbin
echo $PATH
nginx -s stop 關閉服務
沒有重啓,須要腳本里先關閉再開,沒有查狀態,需腳本
/usr/local/nginx/logs/nginx.pid 文件有表明服務開着,沒有則表明關閉,判斷服務是否啓動
nginx 回車 開服務
#cat nginx.sh
#!/bin/bash
case $1 in
start)
if [ ]
fi
nginx;; #啓動
stop)
if [ ]
fi
nginx -s stop;;
restart)
nginx -s stop
nginx;;
status)
if [ -f /usr/local/nginx/logs/nginx.pid ];then
echo 「running」
else
echo 「stop」
fi;;
*)
echo 「nginx[ start | stop | restart |status ]」
esac
優化思路:if 判斷
3、進度條腳本(能夠給任何程序用)
cp -r /bin/ /tmp/
############ loading .............. 10% 20%...
jindu(){
while :
do
echo -ne 「\033[42m \033[0m」
sleep 0.1
done
}
jindu & /後臺
cp -a $1 $2
kill $!
echo 「結束!」
echo $! /最後一個後臺進程的id號
du -sh /etc
du -sh /tmp/etc
10/100*100
4、5分鐘自動檢測一次,將破解密碼嘗試遠程本機的ip提取到ip.txt
相同ip不導入,本身連本身除外,密碼輸入錯誤3次,才寫入黑名單
awk ‘Failed/{print $11}’ /var/log/secure >>ip.txt 取出失敗登陸的ip
grep
5、分佈式存儲、分佈式集羣(fastdfs,swift分佈式軟件)
大數據 【數據量大,存不下】(EB)
num=$[RANDOM%4+1] /4臺電腦
cp a.txt $num
1.啓動腳本
編寫nginx啓動腳本
-腳本支持start、stop、reload、restart、status
-腳本支持報錯提示
-腳本具備判斷是否已經開啓或關閉的功能
思路:使用case語句實現主體功能、使用case語句調用函數實現具體啓動、關閉等操做、使用if測試判斷程序是否已經開啓
2.一鍵部署軟件腳本
一鍵安裝nginx
- 一鍵源碼安裝nginx軟件
-腳本自動安裝相關軟件的依賴包
-腳本自動判斷yum是否可用
-腳本安裝支持日誌,日誌文件爲/var/log/nginx.log
思路:使用數據過濾以及if語句判斷yum源是否可用、case語句根據安裝的軟件自動安裝依賴包、經過重定向生成日誌文件/var/log/nginx.log
3.編寫分佈式存儲腳本
-使用記錄日誌實現簡單分佈式存儲
-4臺rhel6.5主機,3臺共享服務器,1臺分佈式存儲服務器
-分佈式存儲服務器,經過mount將3臺共享服務器的共享目錄掛載到本地{1,2,3}目錄
-用戶使用腳本進行數據讀寫時,腳本隨機將數據文件分發到3個共享目錄下
思路:建立文件存檔日誌文件、根據日誌文件讀取數據、腳本 -w 文件名--將文件隨機寫入1、2、3目錄、腳本 -r 文件名---從1、2、3中讀取文件
4.編寫安全檢測腳本
防止遠程ssh暴力破解密碼
- 檢測ssh登陸日誌,若是遠程登陸賬號名錯誤3次,則屏蔽遠程主機的IP
-檢測ssh登陸日誌,若是遠程登陸密碼錯誤3次,則屏蔽遠程主機的IP
思路:ssh登陸日誌/var/log/secure、分析日誌文件格式、找出用戶名密碼錯誤的規律並提取有效數據、對有效數據彙總統計,實現黑名單過濾
5.編寫進度顯示腳本
實現帶進程顯示的複製腳步
-默認linux的cp命令不具備進度顯示
-咱們須要本身編寫腳本實現進度顯示
-可使用進度條的方式,或者顯示百分比的方式
思路:根據文件數量、或容量統計進度、進度算法:當前進度/總進度*100