shell指令碼,根據時間範圍壓縮時間目錄成乙個檔案

2021-07-02 18:05:43 字數 1377 閱讀 1651

linux伺服器下存放檔案目錄是通過日期(yyyymmdd)建立的,現在要根據乙個日期範圍(yyyy-mm-dd)把多個目錄壓縮成乙個檔案。

#!/bin/sh

#通過引數把子目錄、時間起始範圍傳進來

#子目錄

adudid=$

#開始時間,如2015-05-19

daybegin=$

#結束時間,如2015-05-20

dayend=$

sourcefolder='/mnt/programs/resource/screenimg/'

targetfolder='/mnt/programs/resource/screenimg/'

#一天的秒數

dayms=$[24*60*60]

echo "dayms $"

#將時間換成yyyy-mm-dd hh:mm:ss格式

daybeginms=`date -d "$ 00:00:00" +%s`

dayendms=`date -d "$ 00:00:00" +%s`

sourcezipfolder=$$'/'`date -d "1970-01-01 utc $ seconds" +%y%m%d`

#這個應該寫成無限迴圈

for ((i=0;i<500;i++));

doecho $ 'compare to' $

#比較時間

if [ $ -eq $ ]; then break

else

daybeginms=$[$ + $]

sourcezipfolder="$ $$/`date -d "1970-01-01 utc $ seconds" +%y%m%d`"

fiecho $ 'compare result' $

done

echo $

#壓縮檔案的名稱

filename=$'_'`date -d "1970-01-01 utc $ seconds" +%y%m%d`'_'`date -d "1970-01-01 utc $ seconds" +%y%m%d`'.tar'

#拼接的命令

cmdstr="tar -cf $$ $"

echo $

`$`總結:

**:在xshell終端輸入「date --help」,可以看到date命令的其它介紹,如果要把秒轉換成yyyymmdd格式,可以:date -d "1970-01-01 utc 1287331200 seconds" +%y%m%d

2、for迴圈,if使用,數字比較大小等

**:需要注意的是for迴圈後面是雙括號,而且要與for關鍵字保持乙個空格的距離;if也是要與後面的[ ... ]保持距離,而且還要與裡面的內容保持乙個空格的距離。

3、數字的運算,比如加減乘除什麼的

mysql根據時間範圍查詢

select from bank statistics where day time between 2018 06 01 and 2018 06 10 根據兩端範圍查詢 select from bank statistics where day time 2018 05 24 查詢某一天的 sel...

shell指令碼定時壓縮日誌

日誌檔案較大,每天定時壓縮昨天的日誌 新建乙個檔案 vi gz log.sh vim gz log.sh bin bash 凌晨2點時間 am0 020000 凌晨3點時間 am1 030000 壓縮檔案路徑 path while do 系統前時間 systemtime date h m s 日誌日...

實際專案 根據時間範圍查詢優化

根據所傳條件在sql中新增時間範圍 and stationdatee detailreportpojo.getenddate 需要兩個時間欄位都要有索引才得以快速查詢,資料量大的情況下並不是好辦法,一方面是表結構大,但是建立索引最好不要超過一定數量,所以盡量不要將索引浪費在多餘的字段上面,可以使用以...