小練習

####################################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      /nginxapache衝突

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啓動腳本

-腳本支持startstopreloadrestartstatus

-腳本支持報錯提示

-腳本具備判斷是否已經開啓或關閉的功能

思路:使用case語句實現主體功能、使用case語句調用函數實現具體啓動、關閉等操做、使用if測試判斷程序是否已經開啓

 

 

 

2.一鍵部署軟件腳本

一鍵安裝nginx

- 一鍵源碼安裝nginx軟件

-腳本自動安裝相關軟件的依賴包

-腳本自動判斷yum是否可用

-腳本安裝支持日誌,日誌文件爲/var/log/nginx.log

思路:使用數據過濾以及if語句判斷yum源是否可用、case語句根據安裝的軟件自動安裝依賴包、經過重定向生成日誌文件/var/log/nginx.log

 

 

 

3.編寫分佈式存儲腳本

-使用記錄日誌實現簡單分佈式存儲

-4rhel6.5主機,3臺共享服務器,1臺分佈式存儲服務器

-分佈式存儲服務器,經過mount3臺共享服務器的共享目錄掛載到本地{123}目錄

-用戶使用腳本進行數據讀寫時,腳本隨機將數據文件分發到3個共享目錄下

思路:建立文件存檔日誌文件、根據日誌文件讀取數據、腳本  -w  文件名--將文件隨機寫入123目錄、腳本  -r  文件名---123中讀取文件

 

 

4.編寫安全檢測腳本

防止遠程ssh暴力破解密碼

- 檢測ssh登陸日誌,若是遠程登陸賬號名錯誤3次,則屏蔽遠程主機的IP

-檢測ssh登陸日誌,若是遠程登陸密碼錯誤3次,則屏蔽遠程主機的IP

思路:ssh登陸日誌/var/log/secure、分析日誌文件格式、找出用戶名密碼錯誤的規律並提取有效數據、對有效數據彙總統計,實現黑名單過濾

 

 

 

5.編寫進度顯示腳本

實現帶進程顯示的複製腳步

-默認linuxcp命令不具備進度顯示

-咱們須要本身編寫腳本實現進度顯示

-可使用進度條的方式,或者顯示百分比的方式

思路:根據文件數量、或容量統計進度、進度算法:當前進度/總進度*100

相關文章
相關標籤/搜索