30 lines
2.3 KiB
Python
Executable File
30 lines
2.3 KiB
Python
Executable File
# coding: utf-8
|
|
|
|
import schedule # ----> schedule.every()
|
|
import time # ----> time.sleep()
|
|
import random # ----> random.randint()
|
|
import syslog # ----> syslog.syslog()
|
|
import os # ----> os.popen()
|
|
|
|
|
|
FIND_DIR = '/user/service/logs /user/db/pgsql/logs /log/db/logs /usr/service/logs/soldrived' # log 파일 디렉토리 위치 설정
|
|
FIND_CONDITION = ' -atime +29 -a -type f -a -name *.log ' # 삭제할 log 파일 검색 조건
|
|
START_TIME = '5:00' # log 파일 삭제 시각 설정
|
|
|
|
|
|
def job1(): # job1()은
|
|
x = random.randint(1,7000) # Class random()의 randint 기능으로 x의 정수 범위를 지정하고
|
|
# print(x)
|
|
time.sleep(x) # 초 단위의 x의 시간 동안 다음 라인의 수행을 중지시킨다.
|
|
cmd1 = "'find " + FIND_DIR + FIND_CONDITION + "| wc -l 2>&1'" #
|
|
work1 = os.popen(cmd1).readline() # Class os()의 popen 기능으로 cmd1을 수행시키고 readline() 모듈로 그 결과값을 읽어 드린다.
|
|
syslog.syslog(str("Will be deleted log files: " + work1)) # Class syslog()의 syslog 기능으로 시스템log(/var/log/messages)에 work1의 결과를 기록한다.
|
|
cmd2 = "'find " + FIND_DIR + FIND_CONDITION + "|xargs rm -rf 2>&1'" #
|
|
work2 = os.popen(cmd2) # Class os()의 popen 기능으로 cmd2을 수행시킨다.
|
|
|
|
|
|
schedule.every(1).day.at(START_TIME).do(job1) # Class schedule()의 every 기능으로 START_TIME에 지정된 시각에 job1을 수행하고
|
|
while True: #
|
|
schedule.run_pending() #
|
|
time.sleep(10) # 매 10초 마다 반복적으로 스케줄러가 지정된 시각에 동작할 수 있도록 한다.
|