- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
.
15
18-6 外殼工具發展 (2)
檢測工具發展範例
monitor_load:監控系統負荷是否超載。 monitor_disk:監控磁碟系統是否接近用完。 check_process:檢查某一應用程式是否正常執行中。 check_port:檢查某一傳輸埠口是否正常啟動。 check_account:檢查帳戶檔案是否有被竄改。 check_passwd:檢查哪一帳戶沒有設定密碼。 check_hacker:檢查是否有駭客嫌疑者入侵。
.
4
18-1 自動化工具簡介 (4)
讓工具自動化 - Cron
週期性執行
自動化 工具
執行結果
Unix/Linux 系統
.
E-mail 通知 系統管理者
登錄於 Log file
印表機 輸出結果
5
18-2 串流編輯器 - sed (1)
Sed 運作模式
原始文件 串流依序取出
sed 編輯器
a, c, d, s, ... 編輯命令
第 18 章 自動化工具開發
內容:
自動化工具簡介 Sed 串流編輯器 Awk 資料處理語言 Awk 搜尋敘述與動作 Awk 命令稿 外殼工具發展 Perl 代理管理語言 Perl 發展工具範例
.
1
18-1 自動化工具簡介 (1)
自動化工具的優點
增加可靠性 確實執行工作 增加系統效益 落實經驗傳承
工具類型
字串搜尋 比較符號 結合運算 指定範圍 BEGIN 與 END 敘述組合
.
11
18-4 Awk 搜尋敘述與動作 (3)
Awk 指定動作
自定與內建變數 數值運算與函數 陣列 自定函數 內定函數
.
12
18-5 Awk 命令稿 (1)
命令稿輸入
$ awk –f script_file input_file
.
16
18-7 Perl 代理管理語言 (1)
Perl 基本語法
命令行語法 命令稿語法
$ perl -e 'print "Hello, Perl 向大家問好\n"'' Hello, Perl 向大家問好
1 #! /usr/bin/perl 2 # 檔案名稱: hello.pl 3 # 這是基本 Hello word 程式 4 my $variable=5; 5 print "Hello, Perl 向大家問好 \n"; 6 print "這是變數內容 => $variable\n";
命令稿格式
[tsnien@Linux-1 tools]$ cat list.awk
BEGIN {
print "姓名", "\t", "電話", "\t\t", "時薪", "\t", "時數"
}
{ print $1, "\t", $2, "\t", $3, "\t", $4 }
[tsnien@Linux-1 tools]$ awk -f list.awk employee
.
8
18-3 Awk 資料處理語言 (2)
Awk 欄位操作
$0:整筆紀錄的所有資料
$1 ~ $n:第 1 到 n 欄位
NF:總共幾個欄位
NR:總共幾筆紀錄
$1
$2
$3
$4
Frank George Nacy Louis
30 40000 07-3219092 48 50000 07-4553211 51 70000 06-2851178 42 65000 04-3298101
系統操作工具 系統2)
發展新工具的工具 - Script
命令或命令稿 shell script, ls, who, finger, dmesg, free, df,
du, ......
操作系統
Unix/Linux 系統執行
執行結果 輸出
新工具處理
Shell script ( grep, egrep, sort, uniq, cut, paste, sed, awk, .... )
姓名 電話
時薪 時數
Frank 07-234567 412.0 25
George 04-384123 217.0 18
Nacy 06-672314 516.0 45
Louis 07-384675 311.0 32
Eva 04-243890 358.5 38
Tank 06-631289 482.5 42
插入/附加/變更命令
• 附加 – ‘[line-address]a\text’ • 插入 – ‘[line-address]i\text’ • 變更 – ‘[line-address]c\text’
列印命令
• ‘[address]p’
.
7
18-3 Awk 資料處理語言 (1)
Awk 命令格式
$ awk [Option] ‘statement {action}’ input_file $awk –f program_file input_file
編輯後文件 串流依序填入
.
6
18-2 串流編輯器 - sed (2)
命令格式
• $ sed [option] ‘instruction’ file
替換命令
• ‘[address] s/pattern/replcement/flags’
刪除命令
• ‘[address]d’ 或 ‘/pattern/d’
.
13
18-5 Awk 命令稿 (2)
Awk 控制敘述
if 控制敘述 while 迴圈敘述 do 迴圈敘述 for 迴圈敘述 break 與 continue 敘述 變數傳遞
.
14
18-6 外殼工具發展 (1)
操作工具發展範例
chex: 將某一檔案設定成可執行檔。 diswc:計算輸入檔案的行數與字元數量。 rm_dir:刪除某一目錄,包含子目錄與檔案。
$0
.
9
18-4 Awk 搜尋敘述與動作 (1)
Awk 處理程序
$ awk 'statement {action}' input_file
input_file
statement
output_file
pattern 搜尋
符合
action
.
10
18-4 Awk 搜尋敘述與動作 (2)
Awk 搜尋敘述
.
焠取系統資訊 3
18-1 自動化工具簡介 (3)
通用型發展工具 - Perl
Perl 程式 語言
$system=hp-ux
HP-UX 系統
選擇系統 ($system)
新系統 工具
$system=windows Windows 系統
$system=mac-os
Perl 管理 模組導入
MacOS 系統