shell周期差量備份文件夾的實(shí)現(xiàn)代碼
shell腳本備份
創(chuàng)建備份腳本
backup.sh
#!/bin/sh #$# 參數(shù)個(gè)數(shù) #提示說(shuō)明 if [ $# -lt 3 ]; then echo "==============================================" echo "Usage: $0 ( commands ... )" echo "commands:" echo "example:" echo " > $0 bakDir bakAllName oriDirOrFile" echo " bakDir:備份文件件" echo " bakAllName:完整備份的名稱(chēng)" echo " oriDirOrFile:源文件或者文件夾" echo "==============================================" exit -1 fi #將參數(shù)賦值給變量 = 兩邊不能有空格 bakdir="$1" bakName="$2" bakAllName="$2.tar.gz" oriDirOrFile="$3" #保存天數(shù) 默認(rèn)7天超過(guò)指定天數(shù)重新 全量備份 if [ -n $4 ];then bakDays=7 else bakDays=$4 fi echo $bakAllName echo $bakdir #判斷全量備份文件是否存在 if [ ! -f "$bakdir$bakAllName" ];then #如果沒(méi)有全量備份份文件 echo "--------all-bak---------" bakdir=$bakdir$bakAllName zl="" else #已經(jīng)備份了全量 #獲取全量備份的時(shí)間 bakAllDate="`ls --full-time $bakdir$bakAllName |cut -d ' ' -f 6`" #獲取當(dāng)前時(shí)間 nowDate=`date "+%Y-%m-%d"` #算出時(shí)間差單位是秒 senconds=$(($(date +%s -d $nowDate) - $(date +%s -d $bakAllDate))); #計(jì)算出天 day=$(($senconds/60/60/24)) #增量備份但是超過(guò)備份時(shí)間需要跟新全量的備份 if [ $day -gt $bakDays ];then echo "備份時(shí)間已經(jīng)超過(guò)備份周期了" bakdir=$bakdir$bakAllName else echo "還沒(méi)超過(guò)備份周期" echo " temp-bak" #增量備份文件地址 tempDir="$bakdir$bakName`date '+%m-%d'`.tar.gz" #獲取全量備份文件的日期 compareDate="`ls --full-time $bakdir$bakAllName |cut -d ' ' -f 6`" echo "$compareDate" #獲取全量備份文件的時(shí)間 compareTime="`ls --full-time $bakdir$bakAllName |cut -d ' ' -f 7`" echo "$comcompareTime" #shell 格式轉(zhuǎn)換成yyyy-MM-dd HH:mm:ss compareTime=`date -d $compareTime "+%F %T"` echo "$compareTime" #差量備份比較時(shí)間基準(zhǔn) zl="-N "$compareTime"" bakdir=$tempDir fi fi echo "--------start-bak---------" echo $zl echo "$bakdir" #使用tar差量打壓縮包 tar "$zl" -czvf $bakdir $oriDirOrFile
創(chuàng)建任務(wù)調(diào)度
創(chuàng)建可執(zhí)行文件
touch execBakUp.sh chmod u+xrw execBakUp.sh
添加內(nèi)容
- sh backup.sh /opt/bak/ tomcatTest /home/oriDir 5
- /opt/bak/:你的備份需要放置的位置
- tomcatTest:你的備份名稱(chēng)
- /home/oriDir:需要備份的文件夾
- 5:備份周期
編輯任務(wù)調(diào)度
crontab -e
秒 時(shí) 日 月 周
0 02 * * * sh /opt/execBakUp.sh >> $(date "+%Y-%m-%d".log)
每天凌晨 2點(diǎn) 執(zhí)行execBakUp.sh
說(shuō)明
參數(shù)說(shuō)明:
- $#:添加的參數(shù)個(gè)數(shù)。
- $1~$n:添加到Shell的各參數(shù)值
- $0:Shell本身的文件名
- $*和$@:傳遞給腳本或函數(shù)的所有參數(shù)。
增量備份:
tar -cvzf text.tar.gz /bak -N i_time
i_time是時(shí)間點(diǎn)
獲取文件時(shí)間:
ls --full-time $bakdir$bakAllName |cut -d ' ' -f 6
- ls --full-time text.txt:顯示文件完整時(shí)間
- cut -d ' ' -f 6空格分隔 顯示第6列
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持我們。
欄 目:Linux/apache
本文標(biāo)題:shell周期差量備份文件夾的實(shí)現(xiàn)代碼
本文地址:http://mengdiqiu.com.cn/a1/Linux_apache/10627.html
您可能感興趣的文章
- 04-02linux中jobs命令 shell jobs命令
- 01-10Shell腳本之Expect免交互的實(shí)現(xiàn)
- 01-10shell之分離解析腳本的實(shí)現(xiàn)方法
- 01-10shell之正向解析腳本的實(shí)現(xiàn)方法
- 01-10Shell腳本實(shí)戰(zhàn)之DNS主從同步腳本實(shí)例
- 01-10Linux下shell通用腳本啟動(dòng)jar(微服務(wù))
- 01-10Shell腳本的條件測(cè)試和if條件語(yǔ)句使用方法
- 01-10開(kāi)發(fā)者常用及實(shí)用Linux Shell命令備忘錄(小結(jié))
- 01-10Linux配置SSH和Xshell連接服務(wù)器的教程(圖解)
- 01-10shell腳本實(shí)現(xiàn)ssh-copy-id批量自動(dòng)發(fā)送公鑰到遠(yuǎn)程主機(jī)


閱讀排行
- 1C語(yǔ)言 while語(yǔ)句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹(shù)的示例代碼(圣誕
- 3利用C語(yǔ)言實(shí)現(xiàn)“百馬百擔(dān)”問(wèn)題方法
- 4C語(yǔ)言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語(yǔ)言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語(yǔ)言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 04-02linux關(guān)閉串口命令 關(guān)閉linux端口命令
- 04-02linux文件命令重命名 linux重命名文件名
- 04-02linux中jobs命令 shell jobs命令
- 04-02linux命令注入過(guò)濾 linux 代碼注入
- 04-02linux依次執(zhí)行命令 linux命令的執(zhí)行過(guò)程
- 04-02linux命令注銷(xiāo)vnc linux命令行注銷(xiāo)用戶(hù)
- 04-02linux命令免輸入 linux配置免密登錄
- 04-02軟交換linux命令 軟交換網(wǎng)絡(luò)主要協(xié)議
- 04-02linux命令歷史記錄 linux查看歷史記錄的
- 04-02linux命令頁(yè)面 linux命令頁(yè)面中文
隨機(jī)閱讀
- 04-02jquery與jsp,用jquery
- 01-11Mac OSX 打開(kāi)原生自帶讀寫(xiě)NTFS功能(圖文
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
- 01-11ajax實(shí)現(xiàn)頁(yè)面的局部加載
- 01-10delphi制作wav文件的方法
- 01-10SublimeText編譯C開(kāi)發(fā)環(huán)境設(shè)置
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 01-10C#中split用法實(shí)例總結(jié)
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 01-10使用C語(yǔ)言求解撲克牌的順子及n個(gè)骰子