Files
2026-08-07 17:38:18 +09:00

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초 마다 반복적으로 스케줄러가 지정된 시각에 동작할 수 있도록 한다.