• log日志,crontab


    定期备份mysql的log日志文件,保留一个月

    将文件压缩为gzip格式,节省空间,备份到/home/shell/myqsl_back/目录下,保留一个月
    mysql_backup备份的脚本       

    #!/bin/bash
    /usr/local/mysql/bin/mysqldump -uroot -pmingqua1 --all-databases --routines --events --triggers | gzip > /home/shell/mysql_bakup/mysql_bakup_`date '+%Y-%m-%d'`.sql.gz

    find /home/shell/mysql_bakup -mtime +30 -name "*.gz" -exec rm -rf {} ;

    定期处理nginx的log文件

    #!/bin/bash
    #function:cut nginx log files
    #

    #set the path to nginx log files
    log_files_path="/home/wwwlogs/"
    #log_files_dir=${log_files_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")
    log_files_dir=$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")
    #set nginx log files you want to cut
    log_files_name=( ggg8.com_access,xxx.com_access,别的省略)   
    #这是从/usr/local/nginx/conf/vhost/ggg8.com.conf  xxx.com.conf
    #set the path to nginx.
    nginx_sbin="/usr/local/nginx/sbin/nginx"
    #Set how long you want to save
    save_days=30

    cd $log_files_path
    ############################################
    #Please do not modify the following script #
    ############################################
    mkdir -p $log_files_dir

    log_files_num=${#log_files_name[@]}

    #cut nginx log files
    for((i=0;i<$log_files_num;i++));do
    #mv ${log_files_path}${log_files_name[i]}.log ${log_files_dir}/${log_files_name[i]}_$(date -d "yesterday" +"%Y%m%d").log
    tar -zcvf ${log_files_dir}/${log_files_name[i]}_$(date -d "yesterday" +"%Y%m%d").tar.gz ${log_files_name[i]}.log
    #delete source
    rm -rf ${log_files_name[i]}.log
    done

    #delete 30 days ago nginx log files
    find $log_files_path -mtime +$save_days -exec rm -rf {} ;

    $nginx_sbin -s reload








    还有一个nginx定期处理脚本文件:
    #!/bin/bash
    #desc:把当前日志按日期备份,重新生成第二天的日志文件


    DATE=`date +%Y%m%d`
    NGINX_PID=`cat /var/run/nginx.pid`
    #如果当前Nginx没有运行就退出
    if [ "$?" != 0 ]
    then
            exit 1;
    fi

    #nginx 日志所在的路径
    LOG_PATH='/usr/local/nginx/logs/'
    LOG_NAME='access.log'
    mv ${LOG_PATH}${LOG_NAME} ${LOG_PATH}${LOG_NAME}$DATE

    #删除7天前旧的备份文件
    function deloldbak()
    {
            olddate=`date +"%Y%m%d" -d "-$1 day"`
            if [ -e "${LOG_PATH}${LOG_NAME}$olddate" ]
            then
                    rm -f ${LOG_PATH}${LOG_NAME}$olddate
                    echo "${LOG_PATH}${LOG_NAME}$olddate del OK"
            fi
    }

    #重载nginx配置,重新生成nginx日志文件
    kill -USR1 $NGINX_PID

    if [ "$?" == 0 ]
    then
            deloldbak 7
            exit 0;
    fi



    data -d +"%Y-%m-%d"
    date -d "yesterday" +"%Y"
    date -d "yesterday" +"%m"


    [root@test2 ~]# date +"%Y-%m-%d"
    2018-03-28
    [root@test2 ~]# date -d "yesterday" +"%m"
    03
    [root@test2 ~]# date -d "yesterday" +"%d"
    27
    [root@test2 ~]# date -d "1 day ago" +"%Y-%m-%d"
    2018-03-27
    [root@z ~]# date -d "yesterday" +"%Y"
    2018

    crontab -e

    mkdir -p /home/shell/

    * 0 * * * sh /home/shell/cut_nginx_logs.sh  >> /dev/null 2>&1        
    0 3 * * * sh /home/shell/mysql_bakup.sh >> /dev/null 2>&1

  • 相关阅读:
    MegaCli 简易使用介绍
    【转】RAID 技术发展综述
    HOWTO For iSCSI-SCST && Gentoo HOWTO For iSCSI-SCST
    FC磁盘设备管理
    targetcli配置iSCSI
    NVMe协议1.3c(一) 概述
    NVMe概述
    Jenkins slave image
    ansible module
    Ansible Filter
  • 原文地址:https://www.cnblogs.com/fengzhongzhuzu/p/8669885.html
Copyright © 2020-2023  润新知