Post

๐Ÿงน Windows ๋กœ๊ทธ ํŒŒ์ผ ์ž๋™ ์‚ญ์ œ ์Šค์ผ€์ค„ ์„ค์ • ๊ฐ€์ด๋“œ

๐Ÿงน Windows ๋กœ๊ทธ ํŒŒ์ผ ์ž๋™ ์‚ญ์ œ ์Šค์ผ€์ค„ ์„ค์ • ๊ฐ€์ด๋“œ

๐Ÿ“– ๊ฐœ์š”

์šด์˜ ํ™˜๊ฒฝ์—์„œ ๋กœ๊ทธ ํŒŒ์ผ์ด ๊ณ„์† ์Œ“์ด๋ฉด ๋””์Šคํฌ ์šฉ๋Ÿ‰์„ ์••๋ฐ•ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์„œ๋Š” PowerShell ์Šคํฌ๋ฆฝํŠธ์™€ ์ž‘์—… ์Šค์ผ€์ค„๋Ÿฌ(Task Scheduler) ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ง€์ •๋œ ๊ธฐ๊ฐ„๋ณด๋‹ค ์˜ค๋ž˜๋œ ๋กœ๊ทธ ํŒŒ์ผ์„ ์ž๋™์œผ๋กœ ์‚ญ์ œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.


โš™๏ธ 1. PowerShell ์Šคํฌ๋ฆฝํŠธ ์ž‘์„ฑ

๋จผ์ €, C:\scripts\cleanup_logs.ps1 ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  ์•„๋ž˜ ๋‚ด์šฉ์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# C:\scripts\cleanup_logs.ps1
# ์˜ค๋ž˜๋œ ๋กœ๊ทธ ํŒŒ์ผ ์ž๋™ ์‚ญ์ œ ์Šคํฌ๋ฆฝํŠธ

# ๋กœ๊ทธ ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ฒฝ๋กœ ์„ค์ •
$logPath = "C:\logs"

# ์‚ญ์ œ ๊ธฐ์ค€ (๋ฉฐ์น  ์ด์ƒ ์ง€๋‚œ ํŒŒ์ผ ์‚ญ์ œ)
$days = 30

# ๋Œ€์ƒ ํŒŒ์ผ ํ™•์žฅ์ž
$filter = "*.log"

# ์‚ญ์ œ ์ˆ˜ํ–‰
Get-ChildItem -Path $logPath -Filter $filter -Recurse |
  Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-$days) } |
  Remove-Item -Force

Write-Host "[$(Get-Date)] $days์ผ ์ด์ƒ ๋œ ๋กœ๊ทธ ํŒŒ์ผ ์‚ญ์ œ ์™„๋ฃŒ."

๐Ÿ’ก -Recurse ์˜ต์…˜์„ ์ œ๊ฑฐํ•˜๋ฉด ํ•˜์œ„ ํด๋”๋Š” ์ œ์™ธ๋ฉ๋‹ˆ๋‹ค.


๐Ÿงช 2. ์Šคํฌ๋ฆฝํŠธ ํ…Œ์ŠคํŠธ

PowerShell์„ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰ํ•œ ํ›„ ์•„๋ž˜ ๋ช…๋ น์„ ์ž…๋ ฅํ•˜์—ฌ ์ •์ƒ ๋™์ž‘์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

1
powershell -ExecutionPolicy Bypass -File "C:\scripts\cleanup_logs.ps1"

์‹คํ–‰ ํ›„ C:\logs ๊ฒฝ๋กœ์˜ ์˜ค๋ž˜๋œ ๋กœ๊ทธ ํŒŒ์ผ์ด ์‚ญ์ œ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.


โฐ 3. Windows ์ž‘์—… ์Šค์ผ€์ค„๋Ÿฌ ๋“ฑ๋ก

์ž๋™ ์‹คํ–‰์„ ์œ„ํ•ด ์ž‘์—… ์Šค์ผ€์ค„๋Ÿฌ(Task Scheduler) ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

  1. ์ž‘์—… ์Šค์ผ€์ค„๋Ÿฌ ์‹คํ–‰ Win + R โ†’ taskschd.msc ์ž…๋ ฅ
  2. ์ž‘์—… ๋งŒ๋“ค๊ธฐ(Create Task) ํด๋ฆญ
  3. ์ผ๋ฐ˜ ํƒญ

    • ์ด๋ฆ„: Delete Old Log Files
    • ๊ถŒํ•œ: โ€œ๊ฐ€์žฅ ๋†’์€ ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰โ€
  4. ํŠธ๋ฆฌ๊ฑฐ(Triggers) ํƒญ

    • ์ƒˆ๋กœ ๋งŒ๋“ค๊ธฐ โ†’ ์‹คํ–‰ ์ฃผ๊ธฐ ์„ ํƒ (๋งค์ผ, ๋งค์ฃผ ๋“ฑ)
  5. ๋™์ž‘(Actions) ํƒญ

    • ์ƒˆ๋กœ ๋งŒ๋“ค๊ธฐ

      • ํ”„๋กœ๊ทธ๋žจ/์Šคํฌ๋ฆฝํŠธ: powershell.exe
      • ์ธ์ˆ˜ ์ถ”๊ฐ€:

        1
        
        -ExecutionPolicy Bypass -File "C:\scripts\cleanup_logs.ps1"
        
  6. ์กฐ๊ฑด(Conditions) / ์„ค์ •(Settings)

    • ํ•„์š” ์‹œ โ€œAC ์ „์›์—์„œ๋งŒ ์‹คํ–‰โ€ ์˜ต์…˜ ํ•ด์ œ

๐Ÿ” 4. ์‹คํ–‰ ํ™•์ธ

์ž‘์—… ์Šค์ผ€์ค„๋Ÿฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ƒ์„ฑํ•œ ์ž‘์—…์„ ์„ ํƒ ํ›„ ์šฐํด๋ฆญ โ†’ ์‹คํ–‰(Run) ์„ ๋ˆŒ๋Ÿฌ ์ˆ˜๋™ ์‹คํ–‰ ํ…Œ์ŠคํŠธ๋ฅผ ํ•ฉ๋‹ˆ๋‹ค.

PowerShell ์ฐฝ์—์„œ โ€œ์‚ญ์ œ ์™„๋ฃŒโ€ ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜๋ฉด ์ •์ƒ์ž…๋‹ˆ๋‹ค.


๐Ÿชต 5. (์„ ํƒ) ์‚ญ์ œ ๋กœ๊ทธ ๊ธฐ๋ก ๋‚จ๊ธฐ๊ธฐ

์‚ญ์ œ ๋‚ด์—ญ์„ ํ…์ŠคํŠธ ํŒŒ์ผ๋กœ ๋‚จ๊ธฐ๋ ค๋ฉด ์Šคํฌ๋ฆฝํŠธ ๋งˆ์ง€๋ง‰์— ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค:

1
"$((Get-Date).ToString('yyyy-MM-dd HH:mm:ss')) - Deleted old log files" | Out-File "C:\scripts\cleanup_logs_history.txt" -Append

โœ… ์š”์•ฝ

ํ•ญ๋ชฉ๋‚ด์šฉ
์Šคํฌ๋ฆฝํŠธ ๊ฒฝ๋กœC:\scripts\cleanup_logs.ps1
๋กœ๊ทธ ๊ฒฝ๋กœC:\logs
์‚ญ์ œ ๊ธฐ์ค€30์ผ ์ด์ƒ ์ง€๋‚œ .log ํŒŒ์ผ
์‹คํ–‰ ์ฃผ๊ธฐ์ž‘์—… ์Šค์ผ€์ค„๋Ÿฌ์—์„œ ์ž์œ ๋กญ๊ฒŒ ์„ค์ •
์‹คํ–‰ ๋ช…๋ นpowershell -ExecutionPolicy Bypass -File "C:\scripts\cleanup_logs.ps1"

๐Ÿ’ก ์ฐธ๊ณ  ํŒ

  • ์—ฌ๋Ÿฌ ๊ฒฝ๋กœ๋ฅผ ๊ด€๋ฆฌํ•ด์•ผ ํ•œ๋‹ค๋ฉด $logPath ๋ฅผ ๋ฐฐ์—ด๋กœ ์ง€์ •ํ•˜์—ฌ ๋ฐ˜๋ณต ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ

    1
    2
    3
    4
    5
    6
    
    $paths = @("C:\logs", "D:\service\logs")
    foreach ($path in $paths) {
      Get-ChildItem -Path $path -Filter "*.log" -Recurse |
        Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-30) } |
        Remove-Item -Force
    }
    
  • .bat ํŒŒ์ผ๋กœ ๋ž˜ํ•‘ํ•˜์—ฌ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์—์„œ๋„ ์‰ฝ๊ฒŒ ๋ฐฐํฌ ๊ฐ€๋Šฅ

This post is licensed under CC BY 4.0 by the author.