shell腳本的應用以及相關的命令
1)Shell腳本的作用:主要解決服務器的自動化維護工作,減輕管理員的工作量。
2)如果向提高shell腳本的編寫速度,必須要熟練使用vi編輯器的各種快捷鍵
3)執行腳本的方式:./是第一種,但必須要有x的執行權限
bash 跟腳本的文件名 可以不用x執行權限
source 跟腳本的文件名 同bash一樣不需要x執行權限
一、shell腳本基礎知識
1、編制第一個shell腳本
1)Vi first.sh
2)在腳本文件中輸入如下內容
進入到跟下的boot目錄,並查看所在
的位置和查看權限
3)設置執行權限並執行
2、爲腳本添加註釋,友好輸出,更容易讀懂。
1)Vi first.sh
2)./first.sh執行腳本之後如下
3、重定向操作
1)>表示重定向輸出,>>表示重定向追加
1)重定向輸入,<表示重定向輸入
Vim pass.txt
在文件中添加123456
然後執行passwd --stdin jerry < pass.txt
3)錯誤重定向,可用來收集程序執行的錯誤信息,爲排錯提供依據,
例如:執行以下操作可以將使用tar命令備份時出現的錯誤信息保存到error.log文件中
4)&>操作符可以將兩類輸出信息保存到同一個文件
例如,在編譯源碼包的自動化腳本中,若要忽略make,make install的操作的過程信息
可以將其定向到空文件/dev/null
首先下載httpd軟件到本機,然後執行Vim httpd_install.sh,並輸入如下內容:
(設置權限chmod +x httpd_install.sh
最後執行./httpd_install.sh)
4、管道操作
例子:使用grep命令查詢使用/bin/bash作爲shell的用戶名稱時
會輸出符合條件的整行內容,在此基礎上可以結合管道操作與Awk命令做進一步過濾
只輸出用戶名和登錄shell列。
1)提取之前的正常效果
1)提取之後的效果,只顯示用戶名和shell列
1)再例如:顯示磁盤已用的百分比
二、使用shell變量
1、自定義變量:只在自己的shell環境中有效
1)定義新的變量和引用變量
Product=benet
Version=5.0
2、變量賦值的特殊操作
1)雙引號的作用:賦值的內容包含空格時,例如:
2)單引號的作用:賦值的內容中包含”$”, ““” , “ \ ”等具有特殊含義的字符時
2)反撇號(`)的作用:用於將某個命令的輸出結果賦值給變量,例如:
2)$()的作用:可以代替反撇號,解決嵌套問題,因爲反撇號不能實現嵌套,
例如:查詢提供useradd命令程序的軟件包所安裝的配置文件位置.
2)read命令的作用:用來提示用戶輸入信息,例如:
3、設置變量的作用範圍
新定義的變量只在當前shell有效,如果想進入新的shell環境同樣有效
就需要使用export命令將變量導出爲“全局變量”
也可以在export導出全局變量的同時,也可以爲變量賦值,例如:
3、變量的運算
三、特殊的shell變量
1、環境變量
環境變量系統安裝好了就存在,不用創建,可以直接使用,我們先查看一下:
我們可以把腳本直接添加到$PATH搜索路徑中去
這樣執行腳本的時候就不用加./了
環境變量的全局配置文件爲/etc/profile,作用於所有用戶
例如:將歷史記錄命令條數改爲200條,只針對root用戶
Vim /root/.bash_profile
只需要添加上面的最後一行
然後執行source /root/.bash_profile使之生效。
1、位置變量,例如求兩個數的和
Vi adder2num.sh
1、預定義變量,系統安裝好之後就有,不能創建,只能使用
例如:$#表示命令行中位置參數的個數,$*表示所有位置參數的內容
$?表示前一條命令執行後的返回狀態,返回0表示正確
$0表示當前執行的腳本或程序的名稱。
例如:製作備份數據腳本,vi mybak.sh
執行腳本./mybak.sh,備份兩個文件
查看備份結果
四:
1、實驗目標:遠程備份mysql服務器的數據庫
2、實驗環境:
一共2臺mysql服務器A和B,在B上遠程備份A上的數據庫
在A上建立數據庫google和baidu,注意在防火牆上開啓3306端口
1、實驗拓撲:
1)在A上建立數據庫
1)在A上建立一個建立一個專用的數據庫用戶,這裏我使用root賬戶,
授予root賬戶對可以通過遠程主機192.168.1.2連接A
1)在備份主機B上備份測試
查看已經備份成功
1)在備份主機B上編寫腳本,之前需要創建備份目錄
mkdir -p /opt/beifen
然後編寫腳本vi mysqlbak.sh
大家注意把上圖中的倒數第六行neme改爲name
5)執行備份腳本
./mysqlbak.sh
6)查看備份結果
5、設置計劃任務
Crontab -e
並重啓計劃任務服務。至此遠程備份MySQL服務器的配置完成。
現在在介紹shell腳本更多的應用
以上介紹了shell腳本的應用和說明。(不一一說明了)