음머어's 까망별

블로그 이미지
무지 인간의 첫 걸음..
by 까망별 음머어
  • 303,486Total hit
  • 137Today hit
  • 147Yesterday hit

'로그 자동삭제'에 해당되는 글 1건

  1. 2009.05.29
    [Linux] 크론탭으로 자동으로 오래된 파일 지우기 (5)

mysql bin-log 가 많이 쌓여서, 디스크를 꾹꾹 채워가는 것이 마음에 걸린다.

로그를 자동으로 지우고 싶다...

그래서 고수님이 일전에 가르쳐 주신, 리눅스 명령어를 이용해 크론탭을 걸어주었다.

## CRONTAB ##########################################################################
0 0 * * * (find /db/mysql/mysqllog/mysql-bin.* -ctime +14 -exec rm -rf {} \;)
#######################################################################################

의미인 즉슨,

 0 0 * * *  매일 자정에
 find /db/mysql/mysqllog/mysql-bin.*  /db/mysql/mysqllog/ 에 있는 mysql-bin 이란 이름을 갖는 모든 파일 중
 -ctime +14  최종 수정시간이 14일이 넘는다면
 rm -rf {} \;  지우시오~



흠... 이제 디스크 풀났다구 걱정할 필요는 없다.

***** 추가 ********************************************************
아.. MySQL 리퍼런스를 백날 읽고, 서버 스테이터스랑 베리어블을 백날 봐도 무슨 소용인가 ㅠ,.ㅠ
무식하면 3대가 내리 고생한다고...

MySQL 에서 글로벌 변수 logs를 찾아보자.

mysql> SHOW GLOBAL VARIABLES LIKE '%logs%';
+------------------+-------+
| Variable_name    | Value   |
+------------------+-------+
| expire_logs_days | 60       |
+------------------+-------+
1 row in set (0.03 sec)


MySQL에서는 로그가 오래되면 자동으로 삭제하게 해주는, expire_logs_days 가 있다.

동적으로 변경이 가능한 변수이므로,
1.     SET GLOBAL expire_logs_days = 60;
라고 입력해도 바로 적용 되고,

2.     my.cnf 의 [mysqld] 영역에 
-----------------------------------------------
        [mysqld]
        # generic configuration options
        port            = 3306
        socket          = /tmp/mysql.sock
        skip-character-set-client-handshake
        character-set-filesystem = utf8
        default-character-set = utf8
        skip-locking
        expire_logs_days = 60
        federated
------------------------------------------------
라고 추가해 주고 mysql을 재시작해도 된다.

mysql의 로그는 예민한 영역이 될 수 있으므로,
시스템이 권장하는 방식으로 로그를 관리하도록 하자.











저작자 표시 비영리
신고
TRACKBACK 0 AND COMMENT 5

ARTICLE CATEGORY

모든 이야기 (77)
독백 (22)
MySQL (25)
Oracle (7)
영화 (6)
Linux (3)
DW(Data Warehouse) (0)
(7)
음악 (1)
Python (3)
Postgresql (2)

ARCHIVE