定時任務備份日志


每天晚上23:59備份lampp日志(access_log),備份的文件名以當時的系統時間命名。(備份文件路徑:/tmp/logs)

1、編寫備份的shell腳本命名為bak_log.sh;(注意用``表示里面是執行的命令,用''表示定義變量;一開始用的'',導致fileName取不到准確的時間值)

  vim bak_log.sh                              #新建並編輯bak_log.sh腳本

  #!/bin/bash                               #指定shell解釋器(linux默認的shell解釋器是bash)
  filePath='/opt/lampp/logs/access_log'                     #定義變量filePath,取需要備份的日志路徑

  bakPath='/tmp/logs'                             #定義變量bakPath,取備份日志的路徑
  fileName=`date +%Y%m%d%H%M%S`                       #定義fileName,執行命令取系統時間為文件名
  cat $filePath >$bakPath/access_log_$fileName               #把/opt/lampp/logs/access_log的內容復制到/tmp/logs/access_log_$fileName文件里
  >$filePath                                   #備份完成后,清空/opt/lampp/logs/access_log日志

2、添加定時任務;

  crontab -e                                             #編輯定時任務

  59 23 * * * sh /opt/lampp/bak_log.sh                               #表示每晚的23:59執行備份文件bak_log.sh

    引申問題:

    ①.執行完crontab -e,可能遇到的提示信息:no crontab for root - using an empty one

      需要設置選擇下編輯器,在/etc/profiled這個配置文件配置編輯器;

      vim /etc/profile

      在最后加上:export EDITOR="/usr/bin/vim"                  #選擇vim為編輯器

      保存后,執行source /etc/profile命令。(這個命令的含義是重新讀取下配置文件,讓你的修改能夠立即生效。)

    ②.若沒有配置,直接執行export EDITOR="/usr/bin/vim" ; crontab -e,報錯如下:
        no crontab for root - using an empty one
        crontab: installing new crontab
        "/tmp/crontab.0ISO2w":1: bad day-of-week
        errors in crontab file, can't install.
        Do you want to retry the same edit?

      這個報錯是由於時間格式不對導致,查看下你定時任務的時間設置是否准確。

      命令說明:export EDITOR="/usr/bin/vim" ; crontab -e  →中間的分號,是用來分隔兩個命令的,意思是讓命令順序執行。

      直接執行 export 這個命令來設置變量,雖然當時能夠生效,但是下次重新啟動后,還要重新設置變量。

 3、最終實現。(用每分鍾執行一次的定時任務測試是否成功)

  */1 * * * * sh /opt/lampp/bak_log.sh                                    #表示每分鍾執行一次執行備份文件bak_log.sh

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM