Fetch the repository succeeded.
This action will force synchronization from chuanjiao10/kasini3000, which will overwrite any changes that you have made since you forked the repository, and can not be recovered!!!
Synchronous operation will process in the background and will refresh the page when finishing processing. Please be patient.
#建议保存编码为:bom头 + utf8
#默认每2小时轮换进程。
#$PSModuleAutoloadingPreference = 0
Start-Sleep -Seconds 1
Remove-Module -Name psreadline
if ( ($IsWindows -eq $True) -or ($PSVersionTable.psversion.major -lt 6) ) #win
{
& 'c:\ProgramData\kasini3000\0k_source.ps1'
}
if ($IsLinux -eq $True)
{
& '/etc/kasini3000/0k_source.ps1'
}
$global:被控机列表文件 = $global:u库_进程级别_定时任务_被控机列表文件
$global:zd只读nodelist文件 = $false
& 'zd只读nodelist文件.ps1'
& 'u库定时任务_进程级别_写pid.ps1'
try
{
$log日志文件全目录 = "${global:kasini3000_data_path}"
if (Test-Path -LiteralPath $log日志文件全目录)
{
$u库定时任务的pid文件 = "$log日志文件全目录/u库_进程级别_pid.txt"
if (Test-Path -LiteralPath $u库定时任务的pid文件)
{
$private:文件流 = New-Object System.IO.FileStream($u库定时任务的pid文件,[System.IO.FileMode]::Open,[System.IO.FileAccess]::read,[System.IO.FileShare]::none)
}
}
}
catch
{
Write-Error '错误:u库定时任务,进程级别,文件上锁失败,无法读取!返回码5'
& 'k_写log.ps1' -被写入的log内容 '错误:u库定时任务,进程级别,文件上锁失败,无法读取!返回码5'
exit 5
}
$private:开始时间 = Get-Date
$private:开始时间2 = $private:开始时间.AddSeconds(-$开始时间.second).AddSeconds(-3)
$global:u库_进程级别_定时任务_建立新进程间隔_分钟 = 120
$private:结束时间2 = $private:开始时间2.AddMinutes($global:u库_进程级别_定时任务_建立新进程间隔_分钟).AddMinutes(-$private:开始时间.Minute).AddSeconds(-9) #应该小于48秒。
$private:超时时间2 = $private:结束时间2.AddSeconds(${global:u库_进程级别_定时任务_超时}.TotalSeconds)
#main 从59分钟52秒,到59分钟48秒,运行定时任务。
Write-Verbose "信息:u库,进程级别,定时任务进程,【$pid】开始运行。开始时间=【$private:开始时间2】,停止接受任务时间=【$private:结束时间2】,进程强制退出时间=【 $private:超时时间2】"
& 'k_写log.ps1' -被写入的log内容 "信息:u库,进程级别,定时任务进程,【$pid】开始运行。开始时间=【$private:开始时间2】,停止接受任务时间=【$private:结束时间2】,进程强制退出时间=【 $private:超时时间2】"
Write-Error '信息:u库,进程级别,定时任务,开始运行'
$global:u库_进程级别_定时任务_循环中 = $True
while ($global:u库_进程级别_定时任务_循环中 -eq $True)
{
#-----------【运行u库,进程级别,定时任务】-----------
& 'end_invoke_u库_任务表.ps1'
$private:现在 = Get-Date
# 超时6小时,1分钟则直接退出。
if ($private:超时时间2 -lt $private:现在)
{
$private:文件流.Dispose()
& 'u库定时任务_进程级别_删pid文件.ps1'
& 'k_写log.ps1' -被写入的log内容 "错误:u库,进程级别,定时任务进程,【$pid】超时退出。"
Write-Error "错误:u库,进程级别,定时任务进程,【$pid】超时退出。"
exit 1
}
if ( ($private:现在.Minute % 5 -eq 0) -and ($private:现在.Second -gt 51) )
{
Write-Verbose '开始运行 .net 垃圾回收'
[System.GC]::Collect()
[System.GC]::WaitForPendingFinalizers()
}
#egion 检查是否超过并发数
$private:所有运行job = Get-Job | Where-Object { $_.State -eq 'Running' }
if ($private:所有运行job -gt $global:u库_进程级别_定时任务_最大并发进程数)
{
if ((Get-Date) -gt $private:u库_定时任务_写日志时间间隔)
{
$private:u库_定时任务_写日志时间间隔 = (Get-Date).AddMinutes(1)
& 'k_写log.ps1' -被写入的log内容 "错误:u库,进程级别,定时任务进程,【$pid】,已运行任务数超出设定最大值。 $private:所有运行job "
}
Write-Error "错误:u库,进程级别,定时任务进程,【$pid】,已运行任务数超出设定最大值。 $private:所有运行job "
continue
}
#endregion 检查是否超过并发数
# 超过结束时间,则不会新建任务,无任务则退出。
if ($private:结束时间2 -lt $private:现在) #$private:结束时间2应该小于51秒。
{
if ((Get-Job).count -le 0)
{
$private:文件流.Dispose()
& 'u库定时任务_进程级别_删pid文件.ps1'
& 'k_写log.ps1' -被写入的log内容 "信息:u库,进程级别,定时任务进程,【$pid】正常结束。"
Write-Error "信息:u库,进程级别,定时任务进程,【$pid】正常结束。"
$global:u库_进程级别_定时任务_循环中 = $false
}
else
{
$private:temp995 = "信息:u库,进程级别,定时任务进程,【$pid】,现有【{0}】个进程" -f (Get-Job).count
& 'k_写log.ps1' -被写入的log内容 $private:temp995
& 'k_写log.ps1' -被写入的log内容 ( (Get-Job).State | Out-String )
Start-Sleep -Seconds 60
}
}
else
{
$private:temp998 = & 'kdir-cmdb.ps1' -被查找的库文件名 'u库_进程级别_计划表_2_任务表.ps1'
if ( ($private:temp998 -eq '输入的库路径有错误') -and ($private:temp998 -eq '无返回') )
{
Write-Error "找不到 'u库_进程级别_计划表_2_任务表.ps1' "
}
else
{
& $private:temp998
}
do
{
Start-Sleep -Seconds 1
$private:现在 = Get-Date
}
while ($private:现在.Second -notin $global:u库_进程级别_定时任务_循环在_秒)
& 'begin_invoke_u库_任务表.ps1'
#-----------【运行k库定时任务】-----------
<#
& 'end_invoke_k库_任务表.ps1'
$private:temp999 = & 'kdir-cmdb.ps1' -被查找的库文件名 'k库_计划表_2_k库_任务表.ps1'
if ( ($private:temp999 -eq '输入的库路径有错误') -and ($private:temp999 -eq '无返回') )
{
Write-Error "找不到 'k库_计划表_2_k库_任务表.ps1' "
}
else
{
& $private:temp999
}
Start-Sleep -Seconds 1
& 'begin_invoke_k库_任务表.ps1'
#>
}
}
exit 0
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。