博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
log日志,crontab
阅读量:5306 次
发布时间:2019-06-14

本文共 2676 字,大约阅读时间需要 8 分钟。

定期备份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

 

转载于:https://www.cnblogs.com/fengzhongzhuzu/p/8669885.html

你可能感兴趣的文章
ES6之命令妙用
查看>>
获取DLL文件的执行路径
查看>>
oracle
查看>>
【react】页面中引用本地图片
查看>>
VB逆向函数详解2
查看>>
团队任务三
查看>>
如何去掉滚动条
查看>>
UVa 11330 (置换 循环的分解) Andy's Shoes
查看>>
使用ez-min.css使页面分块
查看>>
bootstrap模态框引用echarts折线图100%宽度变成100px宽度问题解决
查看>>
【MySQL学习笔记】数据库设计的三大范式
查看>>
算法的时间复杂度
查看>>
获得Coclor的色值(小技巧)
查看>>
Django介绍(3)
查看>>
英语面试的相关资料
查看>>
设置默认套打模板
查看>>
iperf3使用
查看>>
谷歌三大核心技术(三)Google BigTable中文版
查看>>
python2.7 第一天
查看>>
python实现贪吃蛇
查看>>