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