schtasks.exe
์๋์ฐ์ฆ์๋ ์์ ๋ถํฐ schtasks๋ผ๋ ๋ช ๋ น์ด๊ฐ ์์์ต๋๋ค.
ScheduledJob vs ScheduledTask
์ ๋ ScheduledJob์ ์ฌ์ฉํฉ๋๋ค. ScheduledTask๋ ๋์์ง ์์ ์ ๊ทผ์ ๋๋ค. ๊ทผ๋ณธ์ ์ธ ์ฐจ์ด์ ์
- Scheduled Task ๋ ์๋์ฐ์ฆ์ ๋ถ๋ถ์ด๊ณ , ๋ค๋ฅธ ๋ถ๋ถ๋ค์ Powershell์ด ๋ค๋ฃฐ ์ ์๋ ๊ฒ์ฒ๋ผ Powershell๋ ์ด๋ฅผ ์ปจํธ๋กค ํ ์ ์์ต๋๋ค.
- ๋ฐ๋ฉด Scheduled Job์ ๊ฑฐ์ PowerShell ์ ๋ฌผ๊ฑด์ ๋๋ค. ๋ฐ๊ฟ ๋งํ๋ฉด scheduled job์, Powershell ํ๊ฒฝ์์์ ์คํ๋๋, ์คํ ์์ ๋ PowerShell code ์ ๋๋ค.
๊ทธ๋ฌ๋ฏ๋ก PowerShellํ๊ฒฝ์ด ์๋ ๊ณณ์์๋ Scheduled Task๋ง ์ฌ์ฉํ ์ ์์ง๋ง, PowerShellํ๊ฒฝ์์๋ ์์ชฝ ๋ชจ๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
GUI๋ก ํ์ธํ๊ณ ์ถ๋ค๋ฉด, Task Scheduler GUI ํ๋ก๊ทธ๋จ TaskSchd.msc
์์์ ๊ฒฝ๋ก๋ Microsoft\Windows\PowerShell\ScheduledJobs
์ ์์ต๋๋ค.
๋์์ธ์ ์ธ ์ธก๋ฉด
์ฌ์ค ์๋์ฐ์ฆ์ ๋ฐ๋ณต์์ ๋ฑ๋ก์, crontab๊ณผ ๋น๊ตํ๋ฉด, ์๊ธฐ ์ฝ๊ฒ ์ธ ์ ์๋ ๋์์ธ์ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ํนํ ๋น ์์ด๊ถ์์๋ ๊ธ๋ฐฉ ์์๋ค์ ์ ์๋ ๋จ์ด๋ ๋ฑ์ฅํฉ๋๋ค.
๋ฑ๋กํ๋ ์ฝ๋๊ฐ ์ฌ์ฉํ๋ ์ต์ ์ ์์ฒญ ๋ง์ต๋๋ค. ํ๋ ํ๋ ์ดํด๋ณด๋ฉด
trigger
์ธ์ ์คํํ ์ง๋ฅผ ๋ํ๋ ๋๋ค. `AC ์ ์์ด ๋ค์ด์ฌ ๋’์ ‘๋ก๊ทธ์ธํ ๋’๋ฅผ ์ ํํ ์๋ ์์ต๋๋ค.
- crontab์ด๋ผ๋ฉด @reboot ์
- .bash_profile๋ฑ์ ๋ฐ๋ก ๋์ด์ผ ํ ์๋ ์์ต๋๋ค.
credential
์ด๋ค ๊ถํ์ผ๋ก ์คํํ ์ง๋ฅผ ๋ํ๋ ๋๋ค.
- ์์คํ ๊ถํ, MSSql, ๋๋ Domain Administrator๋ฑ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๋ ๊ถํ์ ์ง์ ํ ์ ์์ต๋๋ค.
- ์คํฌ๋ฆฝํธ๋ก๋ credential object๋ฅผ ์์ฑํ๋ ๊ฒ์ ์ฐธ ๊บผ๋ ค์ง๋ ๋ถ๋ถ์ด๊ธด ํฉ๋๋ค.
option
๊ณต์ํ์ด์ง์์ ์ค๋ช ์ ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์ฌ๋ฌ ์ต์ ์ด ์์ต๋๋ค. ์ด ํ์ด์ง๋ ํ์ฌ๊น์ง๋ ๋ฒ์ญ์ด ์๋์ด์์ด ์์ด๋ก ๋ด์ผํฉ๋๋ค.
New-ScheduledJobOption
[-RunElevated]
[-HideInTaskScheduler]
[-RestartOnIdleResume]
[-MultipleInstancePolicy <TaskMultipleInstancePolicy>]
[-DoNotAllowDemandStart]
[-RequireNetwork]
[-StopIfGoingOffIdle]
[-WakeToRun]
[-ContinueIfGoingOnBattery]
[-StartIfOnBattery]
[-IdleTimeout <TimeSpan>]
[-IdleDuration <TimeSpan>]
[-StartIfIdle]
[<CommonParameters>]
- RunElevated ๊ด๋ฆฌ์ ๊ทธ๋ฃน์ ๊ตฌ์ฑ์์ ๊ถํ์ผ๋ก ์์ฝ๋ ์์ ์ ์คํํฉ๋๋ค.
- HideInTaskScheduler ์คํ์ค์ธ ํ์คํฌ๋ ํ์ํ์ง ์์ต๋๋ค. ์ค์ผ์ฅด์ค์ธ ํ์คํฌ๋ ํ์๋ฉ๋๋ค. ์คํ์ค์ ํ์คํฌ๋ฅผ ์จ๊ธฐ๋๋ผ๋ ํ์คํฌ ์ค์ผ์ค๋ฌ์์ ์จ๊ฒจ์ง ํ์คํฌ ๋ณด๊ธฐ ํ์ ์ต์ ์ ํตํด์ ํ์ํ๋ ๊ฒ๋ ๊ฐ๋ฅํฉ๋๋ค.
- RestartOnIdleResume Idle์ด ๊บผ์ง๋ฉด ์ค์งํ๋ ํ์คํฌ๋ฅผ Idle์ํ๋ก ๋์์ค๋ฉด ๋ค์ ์์ใดํฉ๋๋ค.
- MultipleInstancePolicy
- DoNotAllowDemandStart ์๋์ผ๋ก ์คํ์ ๋ชปํ๊ณ Trigger์ ์ํด์๋ง ์คํ๋ฉ๋๋ค.
- RequireNetwork ๋คํธ์์ด ๋ ๋๋ง ์คํํฉ๋๋ค.
- StopIfGoingOffIdle Idle์ํ์์ ์คํ์ ์์ํ๋ค๊ฐ Idle์ํ๋ฅผ ๋ฒ์ด๋๊ฒ๋๋ฉด ์คํ์ ์ผ๋จ ์ค์ง ํฉ๋๋ค.
- WakeToRun ๊ธฐ๋ณธ์ ์ผ๋ก ์์คํ ์ด ์์ฝ๋ ์์ ์๊ฐ์ ์ ์ ๋ชจ๋ ์ํ์ ์์ผ๋ฉด ์์ ์ด ์คํ๋์ง ์๋๋ฐ, ์ ์ ๋ชจ๋์์ ์ผ์ด๋ ์์ ํ๋๋ก ํ๋ค.
- ContinueIfGoingOnBattery ๊ธฐ๋ณธ์ ์ผ๋ก ์์ฝ๋ ์์ ์ ์์คํ ์ AC ์ ์ ์ฐ๊ฒฐ์ด ๋๊ธฐ๋ฉด ์ค์ง๋๋๋ฐ, ์ด ์ต์ ์ผ๋ก ์ค์งํ์ง ์๊ณ ๊ณ์ ํฉ๋๋ค.
- StartIfOnBattery ๋ ธํธ๋ถ์ ์๋์ฐ์ฆ์ธ ๊ฒฝ์ฐ์๋ ์คํํ๊ฒ ํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ False ์ ๋๋ค.
- IdleTimeout
- IdleDuration
- StartIfIdle ํ๋ผ๋ฉํฐ IdleDuration ์ ์ค์ ๋๋งํผ Idle์ํ๊ฐ ๊ณ์๋๋ฉด ์คํํฉ๋๋ค.
Register-ScheduledJob
ScheduledJob
์ ํ ๋ฒ ๋๋ ๋ฐ๋ณต ์์ฝ์ ๋ฐ๋ผ ์๋์ผ๋ก ์์ํ ์ ์๋ ์๋์ฐ์ฆ PowerShell ๋ฐฑ๊ทธ๋ผ์ด๋ ์์
์
๋๋ค. ScheduledJob์ Disk์ ์ ์ฅ๋๊ณ ํ์คํฌ ์ค์ผ์ค๋ฌ์ ๋ฑ๋ก๋๋๋ฐ, ๋ฑ๋ก๋ Job์ Task Scheduler์์ ๊ด๋ฆฌํ๊ฑฐ๋ PowerShell์์ ์ค์ผ์ค๋ง๋ ์์
cmdlet์ ์ฌ์ฉํ์ฌ ๊ด๋ฆฌํ ์๋ ์์ต๋๋ค.
์ฌ์ฉ ์) ์ผ๋จ ๋ฑ๋กํ๊ธฐ
|
|
ํธ๋ฆฌ๊ฑฐ๊ฐ ์๊ธฐ ๋๋ฌธ์ ์๋ ์คํ๋์ง ์์ต๋๋ค. Get-ScheduledTaskํ์ฌ ์๋์ผ๋ก ์คํํ ์๋ ์์ต๋๋ค.
Trigger๋ฃ์ด์ ๋ง๋ค๊ธฐ
|
|
Trigger์ Option ๋ฃ์ด์ ๋ง๋ค๊ธฐ
|
|
์์ฑ๋ ์ฝ๋
๋ค์์ ์คํฌ๋ฆฝํธ๋ 1์๊ฐ๋ง๋ค ํ ๋ฒ์ฉ, ํ์ฌ blog์ ํต๊ณ๋ฅผ ๊ตฌํด์ ๋ฌด๋ฃ influxdb ์๋น์ค์ ๊ธฐ๋กํ๋ ์คํฌ๋ฆฝํธ์ ๋๋ค.
{{ if .Inner }}
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(“token:ba7a237dbd36661c8ba79fd332cdfc77”))
{{ end }}
|
|
๊ฐ์: ํต๊ณ๋ฅผ ๊ฐฑ์ ์ด ๋๋ ์๊ฐ์ด ๊ฐ๊น์์ง๋ฉด, ๋ฒ์ฉ ์ ์ ์ด ๋ค๊ณค ํฉ๋๋ค.
ScheduledJob ์ฌ์ฉํ๋ ๊ฒฝ์ฐ
- ์์ฑํ๊ณ ์๋ ๋ธ๋ก๊ทธ ์ฌ์ดํธ์ ํฌ์คํธ ์, ๋ผ์ธ ์, ๊ธ ์๋ฑ์ ์ ๊ธฐ์ ์ผ๋ก ํ์ธํ๊ณ ์ถ์ ๋
- ์ฐธ๊ณ ํ๋ ์ฌ์ดํธ์ ์ ๊ธ์ด ์ฌ๋ผ์ ์๋ ์ง ์ดํด ๋ณผ ๋
๋ ํผ๋ฐ์ค
- https://devblogs.microsoft.com/scripting/use-powershell-to-create-scheduled-tasks/
- https://devblogs.microsoft.com/scripting/introduction-to-powershell-scheduled-jobs/
- https://docs.microsoft.com/en-us/powershell/module/psscheduledjob/new-scheduledjoboption?view=powershell-5.1#:~:text=%5B%5D-,Description,new%20or%20existing%20scheduled%20job.