shell实例第23讲:每天定时备份nginx日志
生活随笔
收集整理的這篇文章主要介紹了
shell实例第23讲:每天定时备份nginx日志
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
???????????? 每天定時備份nginx日志
要求
每天凌晨3點開始備份nginx日志
一、編寫日志切割腳本
#!/bin/bashLOG_DIR=/usr/local/webserver/nginx/logs/YESTERDAY_TIME=$(date -d "Yesterday Time" +%F)LOG_MONTH_DIR=$LOG_DIR/$(date +"%Y-%m")LOG_FILE_LIST="access.log"for LOG_FILE in $LOG_FILE_LIST do[ ! -d $LOG_MONTH_DIR ] && mkdir -p $LOG_MONTH_DIRmv $LOG_DIR/$LOG_FILE $LOG_MONTH_DIR/${LOG_FILE}_${YESTERDAY_TIME}done說明:
(1)date + %F顯示完整日期格式,等價于date +"%Y-%m-%d"(2015-12-07)
(2)參數-d:顯示字符串所指的日期與時間,字符串前后必須加上雙引號。例如:
(3)! -d $LOG_MONTH_DIR表示如果LOG_MONTH_DIR目錄不存在
-e filename 如果 filename存在,則為真-d filename 如果 filename為目錄,則為真 -f filename 如果 filename為常規文件,則為真-L filename 如果 filename為符號鏈接,則為真-r filename 如果 filename可讀,則為真 -w filename 如果 filename可寫,則為真 -x filename 如果 filename可執行,則為真-s filename 如果文件長度不為0,則為真-h filename 如果文件是軟鏈接,則為真filename1 -nt filename2 如果 filename1比 filename2新,則為真。filename1 -ot filename2 如果 filename1比 filename2舊,則為真。(4)mkdir -p :遞歸創建目錄,即使上級目錄不存在,會按目錄層級自動創建目錄。
二、配置系統定時任務/etc/crontab
每天凌晨3點執行切割日志
* 3 * * * /home/weibo/nginx_log_day.sh說明:如何配置定時任務/etc/crontab
* * * * * command分 時 日 月 周 命令第1列表示分鐘1~59 每分鐘用*或者 */1表示第2列表示小時1~23(0表示0點) //例:第3列表示日期1~31第4列表示月份1~12第5列標識號星期0~6(0表示星期天)第6列要運行的命令例子:
30 21 * * * /usr/local/etc/rc.d/lighttpd restart (每晚的21:30重啟lighttpd ) 45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart (每月1、10、22日的4 : 45重lighttpd) 10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart (每周六、周日的1 : 10重啟lighttpd) 0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart (在每天18 : 00至23 : 00之間每隔30分鐘重啟lighttpd) 0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart (每星期六的11 : 00 pm重啟lighttpd) * 6 * * * command (表示每天6點執行) * */6 * * * command (表示每過6個小時執行)?
總結
以上是生活随笔為你收集整理的shell实例第23讲:每天定时备份nginx日志的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 领导常说的潜台词
- 下一篇: DevOps笔记-01:软件交付面临的问