자바스크립트를 활성화 해주세요

h045 InfluxDB에 1시간마다 통계치 기록하는 스크립트

 ·  ☕ 2 min read

    powershell scheduled tasks

    module

    1
    2
    
    import-module scheduledtasks
    Get-ScheduledTask
    

    basic 1

    1
    2
    3
    4
    5
    6
    
    $action = New-ScheduledTaskAction -Execute 'Powershell.exe' `
      -Argument '-NoProfile -WindowStyle Hidden -command "& {get-eventlog -logname Application -After ((get-date).AddDays(-1)) | Export-Csv -Path c:\fso\applog.csv -Force -NoTypeInformation}"'
    
    $trigger =  New-ScheduledTaskTrigger -Daily -At 9am
    
    Register-ScheduledTask -Action $action -Trigger $trigger -TaskName "AppLog" -Description "Daily dump of Applog"
    

    register scheduled trigger basic

    1
    2
    3
    4
    
    $Time = New-ScheduledTaskTrigger -At 12:00 -Once 
    $User = "Contoso\Administrator"
    $PS = New-ScheduledTaskAction -Execute "PowerShell.exe"
    Register-ScheduledTask -TaskName "SoftwareScan" -Trigger $Time -User $User -Action $PS
    
    • execute powershell script with options
    1
    2
    3
    4
    
    $Trigger= New-ScheduledTaskTrigger -At 10:00am Daily # Specify the trigger settings
    $User= "NT AUTHORITY\SYSTEM" # Specify the account to run the script
    $Action= New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "C:\PS\StartupScript.ps1" # Specify what program to run and with its parameters
    Register-ScheduledTask -TaskName "MonitorGroupMembership" -Trigger $Trigger -User $User -Action $Action -RunLevel Highest Force # Specify the name of the task
    

    scheduled task trigger once basic

    1
    2
    3
    
    $Sta = New-ScheduledTaskAction -Execute "Cmd"
    $Stt = New-ScheduledTaskTrigger -Once -At 3am
    Register-ScheduledTask Task01 -Action $Sta -Trigger $Stt
    
    • $Stt = New-ScheduledTaskTrigger -Once -At 3am onece
    • $Stt = New-ScheduledTaskTrigger -Daily -At 3am daily
    • $Stt = New-ScheduledTaskTrigger -Daily -DaysInterval 3 -At 3am every 3 days
    • $Stt = New-ScheduledTaskTrigger -Weekly -WeeksInterval 2 -DaysOfWeek Sunday -At 3am every-other week
    • $Stt = New-ScheduledTaskTrigger -AtLogon when a user logs on
    • $Stt = New-ScheduledTaskTrigger -Once -At (Get-Date) -RepetitionInterval (New-TimeSpan -Minutes 5)
    • $Stt = New-ScheduledTaskTrigger -Once -At (Get-Date) -RepetitionInterval (New-TimeSpan -Minutes 5) -RepetitionDuration ([System.TimeSpan]::MaxValue)

    scheduled task action basic

    1
    
    $sta = New-ScheduledTaskAction -Execute "PowerShell.exe"
    

    setting basic

    1
    2
    3
    4
    
    $settings = New-ScheduledTaskSettingsSet `
                    -ExecutionTimeLimit ([TimeSpan]::FromHours(1)) `
                    -DeleteExpiredTaskAfter ([TimeSpan]::FromDays(60) 
    Register-ScheduledTask ... -Settings $settings -RunLevel Highest
    

    서비스로 돌리려면

    가장 간단한 방법은 nssm을 설치하여 돌리는 방법입니다. nssm은 scoop으로도 설치할 수 있습니다.

    PS C:\Users\Administrator> scoop search nssm
    
    'main' bucket:
        nssm (2.24-103)
    

    nssm install 커맨드를 실행하여 GUI 화면의 Arguments에
    -config c:\Users\Administrator\scoop\apps\influxdb\1.8.1\influxdb.conf

    https://devconnected.com/how-to-install-influxdb-on-windows-in-2019/

    무료 influxdb 사이트

    https://corlysis.com 라고 하는 서비스가 있습니다.
    2주간의 데이타만 저장되는 등의 제한이 있고, 버전이 조금 지난 버전이어서 충분히 메인테넌스되고 있지 않다는 느낌이 있습니다. 언제 서비스가 없어질 지 모르지만 보존하지 않아도 되는 중요하지 않은 데이타라면 사용해 볼 수도 있겠습니다.

    vanilla powershell로 insert하기

    1
    2
    3
    4
    5
    6
    7
    
    $base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes("token:helloworldtoken61c8ba79fd332cdfc77"))
    $base64AuthInfo
    $response = Invoke-RestMethod 'https://corlysis.com:8086/write?db=tkim' -Method POST `
        -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} `
        -Body "meas_test,place=garden value=22.64"
    
    $response
    

    curl로 insert하기

    1
    
    curl -i -XPOST 'http://localhost:8086/write?db=tkim' -u token:ba7a237dbd36661c8ba79fd332cdfc77 --data-binary "meas_test,place=garden value=20.64"
    

    레퍼런스

    공유하기

    tkim
    글쓴이
    tkim
    Software Engineer