shell腳本應用

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


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

 

2)若是向提升shell腳本的編寫速度,必需要熟練使用vi編輯器的各類快捷鍵shell

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

              bash 跟腳本的文件名  能夠不用x執行權限bash

    source 跟腳本的文件名  同bash同樣不須要x執行權限服務器

1、shell腳本基礎知識編輯器

一、編制第一個shell腳本ide

1Vi  first.sh測試

1.jpg


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

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

的位置和查看權限

2.jpg


3)設置執行權限並執行

3.jpg


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

1Vi  first.sh

4.jpg



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

5.jpg


三、重定向操做

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



四、管道操做

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

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

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

1)提取以前的正常效果

10.jpg

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

11.jpg


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

12.jpg


2、使用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


三、設置變量的做用範圍

     新定義的變量只在當前shell有效,若是想進入新的shell環境一樣有效

就須要使用export命令將變量導出爲「全局變量」

19.jpg


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


20.jpg


三、變量的運算

21.jpg


22.jpg

3、特殊的shell變量

一、環境變量

環境變量系統安裝好了就存在,不用建立,能夠直接使用,咱們先查看一下:


23.jpg


咱們能夠把腳本直接添加到$PATH搜索路徑中去

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


24.jpg


25.jpg


環境變量的全局配置文件爲/etc/profile,做用於全部用戶

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

Vim  /root/.bash_profile



26.jpg

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

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

27.jpg


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

Vi  adder2num.sh



28.jpg



29.jpg


一、預約義變量,系統安裝好以後就有,不能建立,只能使用

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

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

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

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



30.jpg



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


31.jpg


查看備份結果


32.jpg



四:

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

二、實驗環境:

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

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

一、實驗拓撲:


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


五、設置計劃任務

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

相關文章
相關標籤/搜索