zoukankan      html  css  js  c++  java
  • 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 每天半夜三点执行!!

  • 相关阅读:
    C++小知识之Vector用法
    云计算和大数据入门
    C++解析JSON之JsonCPP
    OSS研究
    linux内核--进程地址空间(三)
    学习笔记:修改网吧计费系统
    学习笔记:找回电脑开机密码
    例说C#深拷贝与浅拷贝
    JBossESB教程(一)——开发环境的搭建
    Java集合---ConcurrentHashMap原理分析
  • 原文地址:https://www.cnblogs.com/houzheng/p/10225710.html
Copyright © 2011-2022 走看看