Linux 系統創建自動運行腳本

一、創建自動任務方法

1.建立自動任務的方法:

   ——使用Linux系統的crontab,crontab是Linux系統的自動執行定時任務的服務。

 

2.建立自動任務的簡單步驟:

  ——創建shell腳本文件:

         vi backup.sh

  ——文件內容:

         #! /bin/bash
         DATE2=$(date -d '-4 day' +%Y%m%d)                                           #此行獲取四天前的日期,並賦值給DATE
         rm /home/cactiadmin/www$DATE2.tar.gz                                       #此行和下一行實現刪除四天前的備份的功能
         rm /home/cactiadmin/cacti$DATE2.sql
         echo "The backup and delete operation has finished." >>/home/cactiadmin/backup/backup.log    #記錄日誌


  ——修改文件權限:

         chmod 755 backup.sh                                                                      #文件可能需要有讀取和執行權限

3.編輯crontab內容,制定自動執行時間和執行文件(上部創建的文件):

   ——編輯crontab內容:

         crontab -e                                                                                          # crontab 命令帶多個選項,看下文【1】

  —— 內容:
         01 00 * * * /home/cactiadmin/backup/backup.sh                               #內容代表的含義看下文【2】

  ——重啓crontab服務:

        service crond restart



二、以下對上邊內容稍詳細展開解釋:

1.首先解釋shell腳本內容:


        —— DATE=$(date -d '-1 day' +%Y%m%d)                                        

                #此行實現以年月日的格式獲取系統時間前一天的功能,格式是yyyymmdd(如:20170115),可使用

                  命令【date  +%Y%m%d】命令來獲取當前的日期,其中需要注意的是“Y”要大寫,如果是小時則年會

                  已縮略的方式顯示(只顯示兩位數),如今天是2017年1月1日,使用“y”則顯示結果是170101。 date

                  後邊的選項【-d  ‘-1 day’】是爲了獲取系統時間的前一日,-1表示前一天,這個數值也可以值正值,如

                  +3,此時獲得是系統時間加三天的日期, 【+%Y%m%d】這部分是爲了指定輸出格式。
        —— date +%Y%m%d >>/home/cactiadmin/backup/backup.log;           

               #此行是將系統時間輸出到日誌文件,命令將日期寫到對應文件裏,如果文件不存在則自動創建。
        —— tar -czvf /home/cactiadmin/www$DATE.tar.gz /var/www/              

               #此行和下一行實現 備份文件 功能,命令中“$DATE”內容會被日期替換(因爲我先備份出來的文件按備

                 份日期和其他字符來組成,)這也是爲什麼引入第一行內容的原因。
        —— mysqldump -u root cacti>/home/cactiadmin/cacti$DATE.sql           

                # 此行是爲MySQL數據庫的導出備份。


         DATE2=$(date -d '-4 day' +%Y%m%d)                            #此行獲取四天前的日期,也可以這樣寫【date -d '-3 day' +%F】格式會有差別:2017-01-12
         rm /home/cactiadmin/www$DATE2.tar.gz                        #此行和下一行實現刪除四天前的備份的功能
         rm /home/cactiadmin/cacti$DATE2.sql
         echo "The backup and delete operation has finished." >>/home/cactiadmin/backup/backup.log    #記錄日誌

2.解釋crontab裏的內容:

       ——【1】crontab 用法選項:

               crontab –e : 修改 crontab 文件,如果文件不存在會自動創建。
               crontab –l  : 顯示 crontab 文件。
               crontab -r   : 刪除 crontab 文件。             

               crontab -ir  : 刪除 crontab 文件前提醒用戶。

             

       ——crontab操作、編輯方式:

              直接service操作,

              通過配置文件操作,

              直接通過crontab命令編輯,

              編輯對應文件


       ——【2】crontab file的格式:
             crontab 文件中的行由 6 個字段組成,不同字段間用空格或 tab 鍵分隔。前 5 個字段指定命令要運行的時間

             *       *    *               *      *               command

            minute   hour   day-of-month  month  day-of-week  full-path-to-shell-script
            第1列表示分鐘1~59 每分鐘用*或者 */1表示
            第2列表示小時1~23(0表示0點)
            第3列表示日期1~31
            第4列表示月份1~12
            第5列標識號星期0~6(0表示星期天)
            第6列要運行的命令




三、以下爲兩個博文鏈接,有需瞭解更多可做爲參考:

1.linux定時執行腳本 點擊打開鏈接

2.linux定時運行命令 點擊打開鏈接







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章