日志切割工具

Apache 日志切割工具 cronlog logrotate

nginx       日志切割工具    cron  +  scripts

tomcat     日志切割工具     cronlog  log4j  sccript

tomcat 日志切割三种方法

第一  cronlog

第二种 
使用log4j成功使catalina.out文件实现分割。
在tomcat根目录下建立common/classes/log4j.properties,内容如下:
############################################################################ 
log4j.rootLogger=INFO, R 
log4j.appender.R=org.apache.log4j.RollingFileAppender 
log4j.appender.R.File=${catalina.home}/logs/tomcat.newlog  #设定日志文件名
log4j.appender.R.MaxFileSize=100KB   #设定文件到100kb即分割
log4j.appender.R.MaxBackupIndex=10   #设定日志文件保留的序号数
log4j.appender.R.layout=org.apache.log4j.PatternLayout 
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
############################################################################
在tomcat根目录下的common/lib下加入log4j.jar和commons-logging.jar
重新启动tomcat即可。

第三种   shell实现的.
编写一个.sh文件,并放到tomcat下的bin目录,在cron中自动执行,shell脚本如下:
#!/bin/bash

cd  `dirname $0`
d=`date +%Y%m%d`
d7=`date -d'7 day ago' +%Y%m%d`

cd  ../logs/

cp catalina.out catalina.out.${d}
echo "" > catalina.out 
rm -rf catalina.out.${d7}

NGINX 日志切割方法

脚本1

#!/bin/bash
#Rotate the Nginx logs to prevent a single logfile from consuming too much disk space.
LOGS_PATH=/usr/local/nginx/logs
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${YESTERDAY}.log
mv ${LOGS_PATH}/error.log ${LOGS_PATH}/error_${YESTERDAY}.log
## 向 Nginx 主进程发送 USR1 信号。USR1 信号是重新打开日志文件
kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)

crontab -l

0 0 * * * root /usr/local/nginx/logs/nginxLogRotate.sh  

时间同步

inux服务器运行久时,系统时间就会存在一定的误差,一般情况下可以使用date命令进行时间设置,但在做数据库集群分片等操作时对多台机器的时间差是有要求的,此时就需要使用ntpdate进行时间同步。

一、修改时区:
# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
修改为中国的东八区
# vi /etc/sysconfig/clock
ZONE="Asia/Shanghai"
UTC=false
ARC=false
二、配置新的时间
日期设定:
# date -s 2017/03/06
时间设定:
# date -s 18:40:00
查看硬件时间(BIOS的):
    hwclock [-rw]
    -r:查看现有BIOS时间,默认为-r参数
    -w:将现在的linux系统时间写入BIOS中
    注:当我们进行完 Linux 时间的校时后,还需要以 hwclock -w 来更新 BIOS 的时间,因为每次开机的时候,系统会重新由 BIOS 将时间读出来,所以, BIOS 才是重要的时间依据。

[root@linuxidc ~]# hwclock -r

Wed 02 Nov 2016 02:53:35 AM CST  -0.632895 seconds

同步BIOS时钟,强制把系统时间写入CMOS:
# clock -w
三、实现Internet时间同步(这里可以忽略上面两步)
方法1. 开机的时候自动网络校时:
    vi /etc/rc.d/rc.local
    /usr/sbin/ntpdate -u 192.168.0.2 192.168.0.3 192.168.0.4;  /sbin/hwclock -w

#这里几个IP是公司内部的NTP服务器
方法2. 设定计划任务
crontab格式如下:
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  *  command to be executed
设定crontab计划任务自动校时:

使用命令crontab -e
crontab -e
    10 5 * * * root /usr/sbin/ntpdate -u 210.72.145.44;hwclock -w
这样每天5:10自动进行网络校时,并同时更新BIOS的时间
-------------------------------------------------------------------------------

同步网络时间:输入ntpdate time.nist.gov同步网络时间

[root@linuxidc~]# ntpdate -u time.nist.gov  #网络时间同步命令

13 Mar 13:39:57 ntpdate[3318]: adjust time server 216.229.0.179 offset 0.018134 sec

#出现以上信息说明同步成功#

注:如提示命令不存在,直接输入:yum install ntp -y  安装ntp软件包。 

注:若不加上-u参数, 会出现以下提示:no server suitable for synchronization found

-u:从man ntpdate中可以看出-u参数可以越过防火墙与主机同步;

210.72.145.44:中国国家授时中心的官方服务器。

ntp常用服务器:

中国国家授时中心:210.72.145.44

NTP服务器(上海) :ntp.api.bz

猜你喜欢

转载自www.cnblogs.com/zhanzhan/p/8988913.html
今日推荐