동료가 사용할 수있는 대안을 찾았습니다. 오랜 시간 실행되는 스크립트를 시작하는 대신 schtask.exe를 사용하여 스크립트를 예약하는 것이 좋습니다. 그래서 스크립트를 수정했습니다. 이제는 두 부분으로 이루어져 있습니다. 하나는 계획된 작업을 계획하고 시작하는 일을 담당하고 (자체적으로 일정을 달리하지만 여러 가지 논점으로 계획), 두 번째 무겁고 오래 실행하면 작업이 수행됩니다. 스케줄링 결과가 zabbix의 실행 스크립트 대화 상자에 나타나고 장기간 실행 된 결과로 인해 로그 파일에 기록됩니다 ...
다음은 PowerShell 스크립트 StartCleanDisk.ps1의 예입니다. 이 경우 작업이 스케줄되고 스케줄러에 의해 즉시 실행됩니다.
StartCleanDisk.ps1 -deleteLogsOlderThanDays 10 -startAsTask 1
이 경우 작업이 직접 실행됩니다.
StartCleanDisk.ps1 -deleteLogsOlderThanDays 10 -startAsTask 0
StartCleanDisk.ps1 내용 :
[CmdletBinding()]
param
(
[parameter(Mandatory=$true)]
[int]
$deleteLogsOlderThanDays,
[bool]
$startAsTask = $false
)
if ($startAsTask)
{
Write-Output "Scheduling task for cleaning disk ...";
$taskname = "CleanDisk"
$logFile = "X:\logs\Tasks\cleaningDisk.log";
$task = "powershell $PSScriptRoot\StartCleanDisk.ps1 -deleteLogsOlderThanDays $deleteLogsOlderThanDays -startAsTask 0 > $logFile 2>&1";
& schtasks /create /ru "System" /tn $taskname /tr $task /sc once /ST 23:59 /F /V1 /Z;
Write-Output "Task Clean disk created...";
& schtasks /run /tn $taskname;
Write-Output "Task $taskname started... Please chek $logFile";
exit 0;
}
#####################
# Script begins here
# PUT HERE COMMANDS FOR DELETING
#####################
Zabbix 버전 2.4 –
당신은 어떻게 Zabbix 측에서 그것을 실행하는 - 그것은 userparameter, 원격 명령 또는 다른 방법이 있나요? – Richlv
원격 명령입니다. 새로 추가하려면 : 관리> 스크립트> 새로 추가 ... 실행 : 모니터링> 맵> 일부 항목을 마우스 왼쪽 버튼으로 클릭하고 실행할 스크립트 선택 –