2012-06-28

Groovy : Rotate Backup file or Log file



Windows 에서 백업파일을 Rotate 하여 최근 N일 동안의 백업파일을 유지하도록 하였다.

final DAY_LIMIT  = 14      // N일
final TARGET_DIR = "M:/"


def today   = new Date()
def command = "cmd /c m: & cd \\ & mkdir ${today.format('YYYYMMdd')} & move backup\\*.tib ${today.format('YYYYMMdd')}"
command.execute().waitFor()

new File(TARGET_DIR).eachFile { path ->
    if (path.directory && path.name =~ /201[2-9]\d{4}/) {
        def lastModified = new Date(path.lastModified())
        def diffDay = new Date() - lastModified
        if(diffDay > DAY_LIMIT) {
            // println(lastModified.format("YYYY-mm-dd") + " : ${path}")
            println("cmd /c rd /q /s ${path}")
            "cmd /c rd /q /s ${path}".execute().waitFor()
        }
    }
}

댓글 없음:

댓글 쓰기