标签 日志 下的文章

Nginx按天或按小时切割日志

Nginx日志访问量大的时候,日志文件增长很快,查询日志很不方便,以下为实现按天或者小时将access文件切割:
按天切割方法如下:
创建log.sh脚本:

vim /usr/local/nginx/logs/log.sh
#!/bin/bash
LOG_PATH=/usr/local/nginx/logs/
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
mv ${LOG_PATH}access.log ${LOG_PATH}access-${YESTERDAY}.log
mv ${LOG_PATH}error.log ${LOG_PATH}error-${YESTERDAY}.log
/usr/local/nginx/sbin/nginx -s reload

给权限

chmod +x /usr/local/nginx/logs/log.sh

crontal -e 加入定时执行,每天凌晨的时候,对日志进行切割,并reload

00 00 * * * /usr/local/nginx/logs/log.sh

按小时切割:
创建log.sh脚本:

vim /usr/local/nginx/logs/log.sh
#!/bin/bash
LOG_PATH=/usr/local/nginx/logs/
YESTERDAY=$(date -d "-1hours" +%Y-%m-%d_%H)
mv ${LOG_PATH}access.log ${LOG_PATH}access-${YESTERDAY}.log
mv ${LOG_PATH}error.log ${LOG_PATH}error-${YESTERDAY}.log
/usr/local/nginx/sbin/nginx -s reload

给权限

chmod +x /usr/local/nginx/logs/log.sh

crontal -e 加入定时执行,每个整点的时候,对日志进行切割,并reload

*/60  * * * * /usr/local/nginx/logs/log.sh

SQL Server2008R2日志文件过大 大日志文件清理方法 不分离数据库

SQL Server日志文件过大    大日志文件清理方法 ,网上提供了很多分离数据库——〉删除日志文件-〉附加数据库 的方法,此方法风险太大,过程也比较久,有时候也会出现分离不成功的现象。下面的方式是不需要做数据库分离和附加操作的。

SQL 2008收缩清空日志方法:

1.在SQL2008中清除日志就必须在简单模式下进行,等清除动作完毕再调回到完整模式,一定必务要再改回完整模式,不然数据库就不支持时间点备份了。
1).选择数据库–属性—选项—恢复模式–选择简单。
2).收缩数据库后,再调回完整。
2.可以用命令直接操作

USE [master]
GO
ALTER DATABASE 要清理的数据库名称 SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE 要清理的数据库名称 SET RECOVERY SIMPLE      --简单模式
GO
USE 要清理的数据库名称
GO
DBCC SHRINKFILE (N'要清理的数据库名称_log' , 2, TRUNCATEONLY)  --设置压缩后的日志大小为2M,可以自行指定
GO
USE [master]
GO
ALTER DATABASE 要清理的数据库名称 SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE 要清理的数据库名称 SET RECOVERY FULL   --还原为完全模式
GO

根据日志统计Nginx访问量

PV(Page View):即页面浏览量或者点击量,用户每一次对网站中每个页面访问均记录1个PV。用户对同一页面的多次访问,访问量累积。

UV(Unique Visitor):指通过互联网浏览这个网页的人,电脑称为一个访客、手机也称为一个访客,一天之内相同的客户端只能被计算一次。

IP(Internet Protocol):指独立IP访问站点的IP总数,一天内相同IP只能算一次。

VV(Visit View):指所有访客一天内访问网站的次数,当访客完成所有浏览并最终关闭网站的所有页面时变完成了一次访问,同一访客一天内可能有多次访问行为,访问次数累积。

查看各个访问量:

1.根据访问IP统计UV

awk '{print $1}'  /var/log/nginx/access.log|sort | uniq -c |wc -l

---阅读剩余部分---

Oracle 11g adrci常用功能介绍

ADR(Automatic Diagnostic Repository)是Oracle 11g的一个存放数据库诊断日志、跟踪文件的目录,也作为ADR base。在实例中通过设置初始化参数DIAGNOSTIC_DEST来改变,这个参数是动态参数,修改这个参数后对应的目录和日志文件会立刻被生成并使用,默认在ORACLE_BASE下。

Oracle 11g同时提供了一个ADRCI(ADR Command-Line Utility)命令行工具来查看ADR中的alert日志和trace信息,并生成健康报告,ADRCI工具在$ORACLE_HOME/bin下面,安装oracle 11g以后默认就有·

1、登录adrci

[oracle@Web_121_127 ~]$ adrci

ADRCI: Release 11.2.0.4.0 - Production on Mon Nov 27 10:38:30 2017

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

ADR base = "/oracle/app/oracle"

---阅读剩余部分---

MySQL5.7设置通用查询日志

一:通用查询日志:
记录建立的客户端连接和执行的语句
1)show variables like '%verision%';
显示数据库版本号,存储引擎等信息

mysql> show variables like '%version%';
+-------------------------+------------------------------+
| Variable_name | Value |
+-------------------------+------------------------------+
| innodb_version | 5.7.18 |
| protocol_version | 10 |
| slave_type_conversions | |
| tls_version | TLSv1,TLSv1.1 |
| version | 5.7.18-log |
| version_comment | MySQL Community Server (GPL) |
| version_compile_machine | x86_64 |
| version_compile_os | Win64 |
+-------------------------+------------------------------+
8 rows in set, 1 warning (0.04 sec)

2)查看当前的通用日志是否开启
show variables like '%general%';

mysql> show variables like '%general%';
+------------------+--------------------+
| Variable_name | Value |
+------------------+--------------------+
| general_log | OFF |
| general_log_file | PC201608171713.log |
+------------------+--------------------+
2 rows in set, 1 warning (0.00 sec)
开启通用日志查询: set global general_log = on;
关闭通用日志查询:set global general_log = off;
设置通用日志保存位置:set global general_log_file='/tmp/general.log'; 

3)查看当前慢文件的格式





---阅读剩余部分---

Oracle删除归档日志

1、切换oracle用户
su - oracle

2、登录 ramn
rlwrap rman target /

3、查看归档日志列表
RMAN> list archivelog all;

查看失效的归档日志列表:
RMAN> list expired archivelog all;

4、删除归档日志
delete archivelog all completed before 'sysdate-10'; 删除十天前的日志
delete force archivelog all completed before 'sysdate-10';

5、删除物理文件不存在的归档日志
RMAN> crosscheck archivelog all; 检查控制文件和实际物理文件的差别。
RMAN> delete expired archivelog all; 同步控制文件的信息和实际物理文件的信息。

下面的命令用于校验归档日志的有效性,列出无效的归档日志,以及以何种方式清除归档日志,列出几种常用的:

DELETE NOPROMPT ARCHIVELOG UNTIL TIME "TO_DATE('XXXX-XX-XX','YYYY-MM-DD')";

delete noprompt archivelog until time "to_date('2016-09-14 18:00:00','YYYY-MM-DD ')"
    
crosscheck archivelog all;                            --->校验日志的可用性

list expired archivelog all;                          --->列出所有失效的归档日志

delete archivelog until sequence 16;                  --->删除log sequence为16及16之前的所有归档日志

delete archivelog all completed before 'sysdate-7';    --->删除系统时间7天以前的归档日志,不会删除闪回区有效的归档日志

delete archivelog all completed before 'sysdate - 1';  --->同上,1天以前的

delete archivelog from time 'sysdate-1';              --->注意这个命令,删除系统时间1天以内到现在的归档日志

delete noprompt archivelog all completed before 'sysdate';  --->该命令清除所有的归档日志

delete noprompt archivelog all;                              --->同上一命令  

Oracle配置归档日志模式log_archive_format的相关参数

归档日志(Archive Log)是非活动的重做日志备份.通过使用归档日志,可以保留所有重做历史记录,当数据库处于ARCHIVELOG模式并进行日志切换式,后台进程ARCH会将重做日志的内容保存到归档日志中.当数据库出现介质失败时,使用数据文件备份,归档日志和重做日志可以完全恢复数据库.
日志操作模式:ARCHIVELOG NOARCHIVELOG

检查当前日志操作模式

SELECT log_mode from v$database;

手工归档

从oracle database 10g开始,当将日志操作模式转变未ARCHIVELOG模式时,oracle会自动启动ARCH进程.如果要使用手工归档.那么在改变日志操作模式时必须使用命令ALTER DATABASE ARCHIVELOG MANUAL.

需要注意,使用手工归档方式,数据库管理员必须手工执行归档命令.如果没有执行手工归档命令,日志组的原有内容将不能被覆盖.ALTER DATABASE ARCHIVELOG MANUAL 命令是为了与先前的版本兼容而保留的,.将来的oracle版本会淘汰该命令,使用手工归档方式是,数据库管理员可以执行以下命令归档重做日志:

ALTER SYSTEM ARCHIVELOG ALL;

配置归档进程


---阅读剩余部分---

Oracle开启归档模式及修改归档路径

Oracle10G和11G默认的日志归档路径为闪回恢复区($ORACLE_BASE/flash_recovery_area)。对于这个路径,ORACLE有一个限制,就是默认只有2G的空间,而且不只是归档日志的默认路径,也是备份文件和闪回日志的默认地址,这样的话归档日志锁使用的空间就达不到2G,在没有设置好这个路径大小的情况下,很多系统都遇到过 归档日志满而无法归档导致数据库夯住的问题。
切换到归档模式之前,做一次完全备份,因为非归档日志模式下产生的备份日志对于归档模式已经不可用了.

查看是否为归档模式

SQL> archive log list
Database log mode              No Archive Mode     #数据库日志模式             非存档模式
Automatic archival             Disabled            #自动存档             禁用
Archive destination            USE_DB_RECOVERY_FILE_DEST    #存档终点            USE_DB_RECOVERY_FILE_DES
Oldest online log sequence     13            #最早的联机日志序列        13
Current log sequence           15            #当前日志序列             15

上面的存档终点USE_DB_RECOVERY_FILE_DEST默认就是闪回恢复区($ORACLE_BASE/flash_recovery_area),可以通过下面的SQL查看闪回恢复区的信息。


---阅读剩余部分---

MySQL全量(查询)日志general-log的开启

MySQL的General log开销比较大,一般不建议开启,error日志只记录数据库层的报错,binlog只记录增/删/改的记录,但是没记录谁执行,只记录执行用户名,slowlog虽然详细,但是只记录超过设定值的慢查询sql信息.

只有general-log才是记录所有的操作日志,不过他会耗费数据库5%-10%的性能,所以一般没什么特别需要,大多数情况是不开的,例如一些sql审计和不知名的排错等,那就要打开来使用了.

开启方法

先查看当前状态

mysql> show variables like 'general%';
+------------------+--------------------------------------+
| Variable_name    | Value                                |
+------------------+--------------------------------------+
| general_log      | OFF                                  |
| general_log_file | /data/mysql/data/business-data01.log |
+------------------+--------------------------------------+
2 rows in set (0.00 sec)

现在状态是关闭的,开启下:
可以在my.cnf里添加,1开启(0关闭)
general-log = 1
log = /data/mysql/data/business-data01.log 路径
这样要重启才能生效,比较麻烦





---阅读剩余部分---

Nginx查看截取切割日志

nginx日志最好实现每天定时切割下,特别是在访问量比较大的时候,方便查看与处理,如果没切割,可以用sed直接切割,

切割日志

查找7月17日访问log导出到17.log文件中:

cat gelin_web_access.log | egrep "17/Jul/2017" | sed  -n '/00:00:00/,/23:59:59/p' > /tmp/17.log

查看访问量前10的IP

awk '{print $1}' 17.log | sort | uniq -c | sort -nr | head -n 10 

查看访问前10的URL

awk '{print $11}' gelin_web_access.log | sort | uniq -c | sort -nr | head -n 10

查询访问最频繁的URL

awk '{print $7}' gelin_web_access.log | sort | uniq -c | sort -n -k 1 -r | more

查询访问最频繁的IP

awk '{print $1}' gelin_web_access.log | sort | uniq -c | sort -n -k 1 -r | more

根据访问IP统计UV

awk '{print $1}' gelin_web_access.log | sort | uniq -c | wc -l

统计访问URL统计PV

awk '{print $7}' gelin_web_access.log | wc -l

根据时间段统计查看日志

cat gelin_web_access.log | sed -n '/17\/Jul\/2017:12/,/17\/Jul\/2017:13/p' | more

MySQL5.7.x开启慢查询日志

一般SQL写的很烂的话,系统一有访问量、数据一大,容易卡死,需打开慢查询分析,方法如下:
1、在/etc/my.cnf中的[mysqld]中加入如下代码:

slow-query-log = On        #开启慢查询
slow_query_log_file = /data/mysql/mysql_slow_query.log        #定义慢查询日志的路径 
log_output = FILE      #设置日志输出到文件,默认为输出到table
long_query_time = 5        #定义查过多少秒的查询算是慢查询
log_queries_not_using_indexes = ON    #记录下没有使用索引的query

重启Mysql服务即可打开慢查询日志.


---阅读剩余部分---

Oracle清理截断监听日志文件listener.log

在ORACLE数据库中,如果不对监听日志文件(listener.log)进行截断,那么监听日志文件(listener.log)会变得越来越大,在老爷机32bit Linux或Unix系统下面,超过2G以后会导致监听服务进程(tnslsnr)append write日志文件出错,原因是一些32bit OS自带的文件系统不支持2GB以上的文件,所以会报错;

---阅读剩余部分---

最新

分类

归档

评论

  • Liang: 贴下编译参数和步骤,...
  • shao3911: 您好,为什么我在编译...
  • aliang: 先看是yum安装还是...
  • aliang: 将原来的nginx安...
  • yen: 3、如果要回滚的话,...
  • yen: 刚好需要升级ngin...
  • 文雨: 一些新的method...
  • aliang: 默认不屏蔽估计开发团...
  • 山野愚人居: PHP既然允许直接使...
  • aliang: 最下面有github地址·

其它