"원 하지 않 으 면 원 하지 않 습 니 다"Linux 로그 관리 - 94, logrotate 명령

우리 로그 교대 가 지정 한 시간 에 로 그 를 백업 할 수 있 는 이 유 는 시스템 의 정시 작업 에 도 의존 해 야 합 니 다.만약 에 /etc/cron.daily/ 디 렉 터 리 를 기억 하고 있다 면 이 디 렉 터 리 에 logrotate 파일 이 있 고 logrotate 명령 은 이 파일 을 통 해 정시 작업 에 의존 하여 실 행 된 것 을 발견 할 수 있 습 니 다.
명령 형식
[root@localhost ~]# logrotate [选项] 配置文件名

选项:
  如果此命令没有选项,则会按照配置文件中的条件进行日志轮替。
  -v:显示日志轮替过程。
  -f:强制进行日志轮替。不管日志轮替的条件是否已经符合,强制配置文件中所有的日志进行轮替。

주의: logrotate 명령 은 일반적으로 우리 가 집행 할 필요 가 없고 강제 교대 가 필요 할 때 만 집행 해 야 합 니 다.
우 리 는 logrotate 명령 을 집행 하고 실행 과정 을 살 펴 보 았 다.
# 查看日志轮替的流程
[root@localhost ~]# logrotate -v /etc/logrotate.conf

# 截取一个日志轮替说明
# 这就是我们自己加入轮替的testerr.log日志。
rotating pattern:/var/log/testerr.log weekly(6 rotations)
empty log files are rotated,old logs are removed 
	considering log/var/log/testerr.log 
	log does not need rotating		<-- 时间不够一周,所以不进行日志轮替


우 리 는 logrotate 로그 교대 에 가입 하여 이미 /var/log/testerr.log 식별 되 고 호출 된 것 을 발견 했다.다만 시간 이 교대 기준 에 미 치지 못 해 교대 가 이 뤄 지지 않 았 다.
그럼 우 리 는 로그 교 체 를 강제로 진행 해서 어떤 결과 가 있 는 지 봅 시다.
# 强制进行日志轮替,不管是否符合轮替条件
[root@localhost ~]# logrotate -vf /etc/logrotate.conf

# 目标testerr.log日志文件片段
rotating pattern:/var/log/testerr.1og forced from command line(6 rotations)
empty log files are rotated,old logs are removed 
	considering 1og/var/log/testerr.log 
	log needs rotating		<-- 日志需要轮替

rotating log/var/log/testerr.log,log->rotateCount is 1
dateext suffix'-20200618'	<-- 提取日期参数
glob pattern'-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
glob finding old rotated logs failed 
running prerotate script 
fscreate context set to unconfined_u:object_r:var_log_t:s0

# 旧的日志被重命名
renaming/var/log/testerr.log to /var/log/testerr.log-20200618

# 创建新日志文件,同时制定权限、所有者和属组
creating new/var/log/testerr.log mode= 0600 uid =0 gid=0
running postrotate script


우 리 는 logrotate 일지 가 이미 일지 교 체 를 완성 한 것 을 발견 했다.
새로 생 성 된 로그 와 오래된 로 그 를 확인 합 니 다:
[root@localhost ~]# ll /var/log/testerr.log*
# 旧日志文件已经转储
-rw-------. 1 root root 0 6月 7 10:07/var/log/testerr.log
-rw-------. 1 root root 237 6月 18 09:58/var/log/testerr.log-20200618

# 新的日志文件被自动加入了chattr的a属性。
[root@localhost ~]# lsattr /var/1og/testerr.log
-a------e- /var/1og/alert.log
testerr.log 명령 logrotate 옵션 을 사용 한 후 로그 가 로그 교체 조건 에 부합 되 었 는 지 에 관 계 없 이 모든 로 그 를 강제로 교체 하 였 습 니 다.

좋은 웹페이지 즐겨찾기