Shell指令碼程式設計實戰一 建立按天備份的指令碼工具

2021-09-07 16:21:01 字數 1733 閱讀 8787

一:準備工作:建立歸檔目錄 與  歸檔配置檔案

歸檔目錄:建立乙個倉庫目錄,專門用於存放每日備份的檔案。

1

:建立目錄:mkdir 目錄名

2:修改目錄許可權:chmod 許可權 目錄名 #如果不修改許可權,則預設不能在該目錄下建立、刪除內容

二:建立備份指令碼

#!/bin/bash

#daily backup util

date=$(date +%y%m%d)

file=$date_backup.tar.gz

config_file=歸檔配置檔案路徑

destination=歸檔目錄路徑

#檢查配置檔案是否存在

if [ -f $config_file ]

then

echo

"config file exit...

"else

echo

"config file doesn't exit...

"exit

fi#重定向輸入,從配置檔案讀取內容

exec

<$confile_file

#讀取配置檔案內容,把逐條路徑進行校驗,如果檔案存在則把檔案路徑加到list變數中

file_no=1

read file_name

while [ $? -eq 0

] #當上一條命令執行成功

doif [ -f $file_name -o -d $file_name ]

then

file_list="

$file_list $sile_name

"else

echo

"$file_name doesn't exit......"fi

file_no=$[$file_no +1

] read file_name

done

#進行歸檔

sudo tar -czf $destination $file_list

echo

"backup completed......

"exit

四:執行指令碼,進行歸檔

改進:1)歸檔目錄的目錄層級

我們不可能把所以歸檔檔案籠統地放在乙個目錄中,如果按時間來歸檔的話,我們不妨就用時間層級來組織歸檔目錄。

總歸檔目錄backup

以年份命名的目錄

一年中的月份目錄

按日命名的目錄\按年月日命名的備份檔案

年月日時命名的備份檔案

2)在備份指令碼中建立層級歸檔目錄

#!/bin/bash

#hourly backup util

base_dir=歸檔總目錄

year=$(date +%y)

month=$(date +%m)

day=$(date +%d)

time=$(date +%y%m%d%h)

#建立層級目錄:-p 選項,如果目錄存在,不會產生錯誤資訊;目錄不存在,則建立

mkdir -p $base_dir/$year/$month/$day

destination=$base_dir/$year/$month/$day/$time_backup.tar.gz

#*****接下來的就是遍歷配置檔案、打包,同上面 按日打包 指令碼**********===

Shell指令碼實戰

shell指令碼程式設計的靈活運用需要有對指令碼基礎,不同的語句組合應用具有十分熟悉的理解。接下來就通過一些實際專案來更加深刻的體會shell在生活中的應用。需求分析 根據系統管理的需求,分析指令碼要實現的功能,功能實現的層次,實現的命令與語句等 命令測試 將要用到的命令逐個進行測試,以決定使用的選...

Shell指令碼程式設計(一)

變數的型別 或者 由 反引號 括起來的也是一條命令,shell 先執行該命令,然後將輸出結果立刻代換到當前命令列中。如下 date 日期函式 czk localhost date date czk localhost echo date sat may 18 23 45 47 edt 2019 方式...

Shell程式設計實戰

1 需求分析 根據系統管理的需求,分析指令碼要實現的功能 功能實現的層次 實現的命令與語句等 2 命令測試 將要用到的命令逐個進行測試,以決定使用的選項 要設定的變數等 3 指令碼程式設計 將測試好的命令寫入指令碼檔案中,並通過各種語句將命令執行的結果儲存 判斷或者發出警報等 4 測試調優 1 對指...