使用Linux指令碼移動檔案

來源:互聯網
上載者:User

標籤:linux 指令碼 移動檔案 crontab crond


一:背景

    在一個路徑下有很多的檔案,並且隨著時間的累積檔案會越來越多,並且檔案名稱都遵循一個基本的格式,裡麵包含了年月日等資訊,例如:TSMTPP2735D20170517142005E981.txt.gz


二:實現

     我們通過一個指令碼來將這些檔案根據日期來分開儲存,指令碼如下:

#檔案所在的路徑

xdrBasePath=‘/data/test‘

echo ‘xdr檔案根路徑:‘${xdrBasePath}

for file in ${xdrBasePath}/*.txt.gz;

do

        ##截取檔案裡面的日期資訊

        #1,擷取檔案名稱.包含尾碼

        filename=$(basename $file)

        echo ‘檔案名稱:‘${filename}

        #2,截取時間:TSMTPP2735D20170517142005E981.txt.gz

        timeyear=${filename:11:4}

        timemonth=${filename:15:2}

        timeday=${filename:17:2}

        #echo ‘解析出的到年的時間:‘${timeyear}

        #echo ‘解析出的到月的時間:‘${timemonth}

        #echo ‘解析出的到日的時間:‘${timeday}

        

        yeardirpath=${xdrBasePath}/${timeyear}

        monthdirpath=${yeardirpath}/${timemonth}

        daydirpath=${monthdirpath}/${timeday}

        #echo $yeardirpath

        #echo $monthdirpath

        #echo $daydirpath

        #判斷檔案夾是否存在,不存在就建立

        if [ ! -e ${yeardirpath} -o ! -d ${yeardirpath} ]; then 

                mkdir ${yeardirpath} 

        fi

        if [ ! -e ${monthdirpath} -o ! -d ${monthdirpath} ]; then 

                mkdir ${monthdirpath} 

        fi

        if [ ! -e ${daydirpath} -o ! -d ${daydirpath} ]; then 

                mkdir ${daydirpath} 

        fi

        #將檔案移動到改目錄下

        mv -f ${xdrBasePath}/${filename} ${daydirpath}

        #echo ‘-------------------------‘

done

這麼一來,就會將檔案“TSMTPP2735D20170517142005E981.txt.gz”移動到“/data/test/2017/05/17”路徑下去。



if語句解釋如下:

    與:-a,當指定多個條件時,預設為與關係

    或:-o

    非:!,這是個單目操作符


    檔案是否存在: -e

    檔案是否是目錄: -d


三:添加到系統調度裡面

1,查看crontab服務狀態

service crond status

2,啟動服務

/sbin/service crond start

3,重啟服務

/sbin/service crond restart

4,關閉服務

/sbin/service crond stop

5,查看調度任務

crontab -l

6,編輯調度任務

crontab -e

7,刪除所有調度任務

crontab -r

 注意:如果只是刪除某一個調度任務,請使用“crontab -e”

8,查看調度日誌

tail -f /var/log/cron


調度編輯舉例:

1,執行調度編輯“crontab -e”

2,在開啟的vi中添加調度任務資訊,例如每我分鐘執行一次上面的指令碼

*/5  * * * *  /data/movetest.sh



本文出自 “因簡單而自在” 部落格,請務必保留此出處http://dengshuangfu.blog.51cto.com/8794650/1927444

使用Linux指令碼移動檔案

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.