linux中使用corntab和shell腳本自動備份nginx日志,按天備份


編寫shell腳本,實現nginx日志每天自動備份到指定文件夾!

需要的命令mv , corntab -e(定時任務),shell腳本

這里先說一下corntab:

 https://www.cnblogs.com/longjshz/p/5779215.html  這里有一篇詳細介紹corn的,

這里只簡單說一下用法:

corntab -e 就可以編寫我們需要的定時任務,編輯之后保存即可,需要按指定格式:

比如: 0 6 * * * echo "Good morning." >> /tmp/test.txt   就會每天6點執行

格式按  分 時 日 月 年 命令 

crontab –e : 修改 crontab 文件. 如果文件不存在會自動創建。 
crontab –l : 顯示 crontab 文件。 
crontab -r : 刪除 crontab 文件。
crontab -ir : 刪除 crontab 文件前提醒用戶。

 

腳本如下:

#!/bin/sh
# 備份nginx日志到指定目錄,以年月日格式命名


# ngingx目錄和需要備份的日志名稱
NG_DIR=/usr/local/nginx
NG_LOG_NAME=host.access.log

# ng日志目錄和備份存放目錄
NG_LOG_DIR=$NG_DIR/logs
NG_BAK_PATH=$NG_DIR/baklogs

# 需要備份文件名與備份之后的文件名
NG_LOG_FILE=$NG_LOG_DIR/$NG_LOG_NAME
# 此處date命令需要使用反斜杠``
BAK_TIME=`date -d yesterday +%Y%m%d`
BAK_LOG_FILE=$NG_BAK_PATH/$BAK_TIME-$NG_LOG_NAME

echo $BAK_LOG_FILE

# 備份,停止后再重啟
$NG_DIR/sbin/nginx -s stop

mv $NG_LOG_FILE $BAK_LOG_FILE

$NG_DIR/sbin/nginx

  ,然后編寫定時任務即可:

0 3 * * * sh /usr/local/nginx/sbin/baklog.sh 每天半夜三點執行!!


免責聲明!

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



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