Shell腳本使用匯總整理——文件夾及子文件備份腳本

Shell腳本使用匯總整理——文件夾及子文件備份腳本html

Shell腳本使用的基本知識點彙總詳情見鏈接:linux

http://www.javashuo.com/article/p-zzlppuvp-m.htmlweb

腳本分爲三部分配置信息、腳本文件、定時任務;shell

一、配置信息:tomcat

backupFilePath=/wocloud/soft/tomcat/yearAppraiseTomcat/tomcat/webapps/yearAppraiseSys/upload
saveBackupFilePath=/wocloud/db/fileBackups
fileName=upload
backupsFileDay=3app

參數說明:webapp

backupFilePath:要備份的文件夾的絕對路徑
saveBackupFilePath:存放備份文件的絕對根路徑
fileName:要備份的文件夾名稱
backupsFileDay:保留備份文件的天數rest

二、腳本文件:日誌

#!/bin/shcode

#db_backups_conf.txt文件路徑
db_backups_conf="/wocloud/shell/file_backups_conf.txt"

#判斷文件是否存在
if [ -f "${db_backups_conf}" ];then

echo $(date +'%Y-%m-%d %H:%M:%S')" 要備份的文件存在,開始進行文件備份"

#獲取等號前內容,做爲map中的Key值
dbArrOne=($(awk -F'[=]' '{print $1}' ${db_backups_conf} ))

#獲取等號後內容,做爲map中的value值
dbArrTwo=($(awk -F'[=]' '{print $2}' ${db_backups_conf}))

#建立一個空map
declare -A map=()

#經過循環,將db_backups_conf配置文件中的信息存儲在map中
for((i=0;i<${#dbArrOne[@]};i++))
do
map[${dbArrOne[i]}]=${dbArrTwo[i]}
done


#獲取當前年月日
saveday=$(date +%Y%m%d)

#獲取超出備份天數的年月日
delday=$(date -d ${map["backupsFileDay"]}' days ago' +%Y%m%d)

#備份文件
echo $(date +'%Y-%m-%d %H:%M:%S')" 備份文件:"${map["backupFilePath"]}

#判斷保存備份文件路徑是否存在
if [ -f "|${map['saveBackupFilePath']}/${saveday}/${map['fileName']}_$(date +'%Y%m%d%H%M%S')" ];then
cp -f -r ${map["backupFilePath"]} ${map["saveBackupFilePath"]}/${saveday}/${map["fileName"]}_$(date +'%Y%m%d%H%M%S')/
else
mkdir -p ${map["saveBackupFilePath"]}/${saveday}/${map["fileName"]}_$(date +'%Y%m%d%H%M%S')
cp -f -r ${map["backupFilePath"]} ${map["saveBackupFilePath"]}/${saveday}/${map["fileName"]}_$(date +'%Y%m%d%H%M%S')/
fi

#刪除保存文件路徑中n天前備份的數據文件
echo $(date +'%Y-%m-%d %H:%M:%S')" 刪除備份文件:"${map["saveBackupFilePath"]}/${delday}
rm -f -r ${map["saveBackupFilePath"]}/${delday}

echo $(date +'%Y-%m-%d %H:%M:%S')" 文件備份完畢,腳本執行完畢"

else
echo "配置文件不存在"
fi

注意:注意代碼開頭中讀取配置文件的路徑,這個位置可能不同,須要進行適當修改。

三、定時任務:

Linux中的sh腳本定時任務,能夠經過crontab進行管理,若是linux中沒有安裝crontab,須要進行安裝:

安裝命令:

yum -y install vixie-cron
yum -y install crontabs

服務管理

service crond start     //啓動服務
service crond stop      //關閉服務
service crond restart   //重啓服務
service crond reload    //從新載入配置
service crond status    //查看crontab服務狀態

加入開機自啓

chkconfig crond on

(1)設定定時任務:

crontab -e 編寫定時任務表達式

例如:

1 */3 * * * /wocloud/shell/fileBackupsScript.sh &>/wocloud/shell/fileBackupsLogs/fileBackupsEcho_`date +\%Y-\%m-\%d-\%H-\%M-\%S`.txt 2>&1

定時表達式+腳本絕對路徑+腳本打印信息日誌輸出絕對路徑(必定要有日誌輸出記錄,方便之後進行查看)

(2)從新啓動crond

service crond restart;

相關文章
相關標籤/搜索