Shell-实际业务操作01
生活随笔
收集整理的這篇文章主要介紹了
Shell-实际业务操作01
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
#!/bin/sh
##############################
## 名稱: MvOtherCdrTo251.sh
## 描述: /ocs/data/output目錄下的25開頭(251,257,258除外)對(duì)應(yīng)目錄下的/normal/bak下的文件 全部轉(zhuǎn)移到/ocs/data/output/251/normal/bak
## 參數(shù): 暫無(wú)
## 作者: 小工匠
## 日期: 2017-06-17
## 版本:V1.0
## 備注:使用時(shí)注意修改TARGET_MENU的值,測(cè)試用,取的是bak目錄
###############################定義退出標(biāo)識(shí)符, 腳本執(zhí)行后,通過(guò)echo $? 查看退出標(biāo)識(shí)符,即上個(gè)命令或者腳本的返回結(jié)果
EXIT_FAILURE=1 #Failing exit status
EXIT_SUCCESS=0 #Successful exit status #開始時(shí)間
BEGIN_TIME=`date +%s`#當(dāng)前執(zhí)行腳本的全路徑
SCRIPT_PATH=$(cd `dirname $0`; pwd)
SCRIPT_NAME=`basename $0` #日志路徑
LOG_LOCATION=/ocs/tools/OperCDR/logs#判斷目錄是否存在,存在則進(jìn)入$1所在的目錄,不存在不創(chuàng)建目錄,直接退出
Check_TargetMenu(){if [ ! -d $1 ];thenecho -e "Target Menu \033[31m$1 does not exist \033[0m,existing the script \033[31m$SCRIPT_PATH/$SCRIPT_NAME\033[0m ,check fisrt please" >>$LOG_LOCATION/MvOtherCdrTo251.log 2>&1exit $EXIT_FAILUREelsecd $1echo Current Directory $1fi
}#定義腳本執(zhí)行取話單的目錄 暫不考慮外部傳參
TARGET_MENU='/ocs/data/output_bak0617'#檢查目錄是否存在,不存在暫不創(chuàng)建目錄,直接退出當(dāng)前執(zhí)行的腳本,存在進(jìn)入對(duì)應(yīng)的目錄
Check_TargetMenu $TARGET_MENUecho "==========================begin `date "+%Y-%m-%d %H:%M:%S"`===============================================" >>$LOG_LOCATION/MvOtherCdrTo251.log 2>&1#循環(huán)遍歷目錄,業(yè)務(wù)操作
#注意:如果ls獲取的文件長(zhǎng)度超過(guò)系統(tǒng)默認(rèn)的命令緩沖區(qū)最大長(zhǎng)度會(huì)導(dǎo)致錯(cuò)誤。不適合目錄下文件特別多的情況 .
#可以改用 find . -name "in*.s" | xargs ls 'in*.s' for operatingDir in `ls -d 25*`
do#如果不是251、257、258目錄,則進(jìn)行mv操作if [ $operatingDir != '251' ]&&[ $operatingDir != '257' ]&&[ $operatingDir != '258' ]; then echo $operatingDir#獲取該目錄絕對(duì)路徑Current_oper_dir=$(cd $TARGET_MENU/$operatingDir && pwd)echo Current_oper_dir $Current_oper_dir#檢驗(yàn)?zāi)夸浭欠翊嬖?#xff0c;不存在,不創(chuàng)建,直接退出Dir_Normal_bak=$Current_oper_dir/normal/bakCheck_TargetMenu $Dir_Normal_bak#轉(zhuǎn)移文件的目標(biāo)目錄Final_Menu=$TARGET_MENU/251/normal/bak#循環(huán)遍歷文件,注意:如果ls獲取的文件長(zhǎng)度超過(guò)系統(tǒng)默認(rèn)的命令緩沖區(qū)最大長(zhǎng)度會(huì)導(dǎo)致錯(cuò)誤。不適合目錄下文件特別多的情況for file in `ls in*.s`domv $file $Final_Menuecho "$file moved to $Final_Menu successfully " >>$LOG_LOCATION/MvOtherCdrTo251.log 2>&1donefidone #結(jié)束時(shí)間
END_TIME=$(date +%s)
echo "==========================end `date "+%Y-%m-%d %H:%M:%S"`=================================================" >>$LOG_LOCATION/MvOtherCdrTo251.log 2>&1#計(jì)算腳本執(zhí)行時(shí)間#也可以 通過(guò)下面的方式統(tǒng)計(jì) time 腳本名稱
#....省略執(zhí)行過(guò)程
#real 0m2.024s
#user 0m0.007s
#sys 0m0.008s
echo "==========================time consuming $(($END_TIME - $BEGIN_TIME)) seconds=================================================" >>$LOG_LOCATION/MvOtherCdrTo251.log 2>&1
#輸出一行空行到日志中,方便區(qū)分每次執(zhí)行的日志
echo "" >>$LOG_LOCATION/MvOtherCdrTo251.log 2>&1exit $EXIT_SUCCESS
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀
總結(jié)
以上是生活随笔為你收集整理的Shell-实际业务操作01的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Spring-Spring4.X 概述
- 下一篇: Shell-实际业务操作02