一:準備工作:建立歸檔目錄 與 歸檔配置檔案
歸檔目錄:建立乙個倉庫目錄,專門用於存放每日備份的檔案。
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 對指...