shell腳本應用

shell腳本的應用以及相關的命令


1Shell腳本的作用:主要解決服務器的自動化維護工作,減輕管理員的工作量。

 

2)如果向提高shell腳本的編寫速度,必須要熟練使用vi編輯器的各種快捷鍵

3)執行腳本的方式:./是第一種,但必須要有x的執行權限

              bash 跟腳本的文件名  可以不用x執行權限

    source 跟腳本的文件名  同bash一樣不需要x執行權限

一、shell腳本基礎知識

1、編制第一個shell腳本

1Vi  first.sh

1.jpg


2)在腳本文件中輸入如下內容

進入到跟下的boot目錄,並查看所在

的位置和查看權限

2.jpg


3)設置執行權限並執行

3.jpg


2、爲腳本添加註釋,友好輸出,更容易讀懂。

1Vi  first.sh

4.jpg



2)./first.sh執行腳本之後如下

5.jpg


3、重定向操作

1)>表示重定向輸出,>>表示重定向追加

6.jpg



1)重定向輸入,<表示重定向輸入

Vim pass.txt

在文件中添加123456

然後執行passwd  --stdin jerry  < pass.txt

7.jpg



3)錯誤重定向,可用來收集程序執行的錯誤信息,爲排錯提供依據,

例如:執行以下操作可以將使用tar命令備份時出現的錯誤信息保存到error.log文件中

8.jpg


4)&>操作符可以將兩類輸出信息保存到同一個文件

例如,在編譯源碼包的自動化腳本中,若要忽略makemake install的操作的過程信息

可以將其定向到空文件/dev/null

首先下載httpd軟件到本機,然後執行Vim httpd_install.sh,並輸入如下內容:

(設置權限chmod  +x  httpd_install.sh

最後執行./httpd_install.sh)

9.jpg



4、管道操作

例子:使用grep命令查詢使用/bin/bash作爲shell的用戶名稱時

會輸出符合條件的整行內容,在此基礎上可以結合管道操作與Awk命令做進一步過濾

只輸出用戶名和登錄shell列。

1)提取之前的正常效果

10.jpg

1)提取之後的效果,只顯示用戶名和shell

11.jpg


1)再例如:顯示磁盤已用的百分比

12.jpg


二、使用shell變量

1、自定義變量:只在自己的shell環境中有效

1)定義新的變量和引用變量

Product=benet

Version=5.0



13.jpg

2、變量賦值的特殊操作

1)雙引號的作用:賦值的內容包含空格時,例如:

14.jpg


2)單引號的作用:賦值的內容中包含”$”,  ““” , “ \ ”等具有特殊含義的字符時

15.jpg


2)反撇號(`)的作用:用於將某個命令的輸出結果賦值給變量,例如:

16.jpg

2)$()的作用:可以代替反撇號,解決嵌套問題,因爲反撇號不能實現嵌套,

例如:查詢提供useradd命令程序的軟件包所安裝的配置文件位置.

17.jpg


2)read命令的作用:用來提示用戶輸入信息,例如:


18.jpg


3、設置變量的作用範圍

     新定義的變量只在當前shell有效,如果想進入新的shell環境同樣有效

就需要使用export命令將變量導出爲“全局變量”

19.jpg


也可以在export導出全局變量的同時,也可以爲變量賦值,例如:


20.jpg


3、變量的運算

21.jpg


22.jpg

三、特殊的shell變量

1、環境變量

環境變量系統安裝好了就存在,不用創建,可以直接使用,我們先查看一下:


23.jpg


我們可以把腳本直接添加到$PATH搜索路徑中去

這樣執行腳本的時候就不用加./


24.jpg


25.jpg


環境變量的全局配置文件爲/etc/profile,作用於所有用戶

例如:將歷史記錄命令條數改爲200條,只針對root用戶

Vim  /root/.bash_profile



26.jpg

只需要添加上面的最後一行

然後執行source  /root/.bash_profile使之生效。

27.jpg


1、位置變量,例如求兩個數的和

Vi  adder2num.sh



28.jpg



29.jpg


1、預定義變量,系統安裝好之後就有,不能創建,只能使用

例如:$#表示命令行中位置參數的個數,$*表示所有位置參數的內容

$?表示前一條命令執行後的返回狀態,返回0表示正確

$0表示當前執行的腳本或程序的名稱。

例如:製作備份數據腳本,vi mybak.sh



30.jpg



執行腳本./mybak.sh,備份兩個文件


31.jpg


查看備份結果


32.jpg



四:

1、實驗目標:遠程備份mysql服務器的數據庫

2、實驗環境:

一共2mysql服務器AB,在B上遠程備份A上的數據庫

A上建立數據庫googlebaidu,注意在防火牆上開啓3306端口

1、實驗拓撲:


33.jpg




1)A上建立數據庫


34.jpg

1)A上建立一個建立一個專用的數據庫用戶,這裏我使用root賬戶,

授予root賬戶對可以通過遠程主機192.168.1.2連接A


35.jpg

1)在備份主機B上備份測試

36.jpg


查看已經備份成功

37.jpg



1)在備份主機B上編寫腳本,之前需要創建備份目錄

mkdir  -p  /opt/beifen

然後編寫腳本vi  mysqlbak.sh

大家注意把上圖中的倒數第六行neme改爲name


38.jpg


5)執行備份腳本

./mysqlbak.sh



6)查看備份結果

39.jpg


5、設置計劃任務

Crontab  -e

40.jpg




41.jpg

並重啓計劃任務服務。至此遠程備份MySQL服務器的配置完成。









現在在介紹shell腳本更多的應用

以上介紹了shell腳本的應用和說明。(不一一說明了)

1.jpg


2.jpg


3.jpg


4.jpg


5.jpg

6.jpg

7.jpg

8.jpg

9.jpg

10.jpg


11.jpg


12.jpg


13.jpg

14.jpg

15.jpg

16.jpg

17.jpg

18.jpg

19.jpg





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章