代码拉取完成,页面将自动刷新
同步操作将从 chuanjiao10/kasini3000 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#建议保存编码为:bom头 + utf8
param
(
[Alias("exit_after_n_min")][byte]$本脚本n分钟后退出 = 1,
[Alias("screen_refresh_interval_second")][byte]$屏幕输出间隔秒 = 4,
[ValidateRange(-20,0)]
[Alias("output_n_record_before")][int]$负偏移量 = 0
# [Alias("remark")][String]$备注,
# [Alias("ipaddress")][String]$被控机ip地址,
# [Alias("grep")][String]$标准输出包含,
# [Alias("begin_time")][String]$任务预定开始时间
# [Alias("end_time")][String]$任务实际结束时间 = (Get-Date -Format 'yyyy-MM-dd HH:mm:ss')
)
if ($global:__kl_rs2 -eq $true)
{
exit
}
$global:__kl2_rs2 = $true
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'
}
$private:脚本结束时间 = (Get-Date).AddMinutes(${本脚本n分钟后退出})
Write-Warning "信息:本脚本将在 ${private:脚本结束时间} 后退出。"
Write-Warning "信息:屏幕每隔 ${屏幕输出间隔秒} 秒,循环输出。"
#已经完成任务,最大id。
$sqlite_sql = @"
SELECT MAX("不可重任务id") FROM "福报任务表rs" WHERE "任务状态"=1000
;
"@
$private:最后一条已完成任务旧 = & "${PSScriptRoot}/cmdb/invoke_福报表rs.ps1" -sqlite_sql语句 $sqlite_sql
[uint64]$private:已经输出完的id = $private:最后一条已完成任务旧['MAX("不可重任务id")'] + $负偏移量
Write-Verbose ("信息:福报rs表,最大id,初始值:{0}" -f ${private:已经输出完的id} )
[System.Collections.ArrayList]$private:已经输出任务的ids = @()
do
{
Start-Sleep -Seconds $屏幕输出间隔秒
$private:最后一条任务当前 = & "${PSScriptRoot}/cmdb/invoke_福报表rs.ps1" -sqlite_sql语句 $sqlite_sql
[uint64]$private:最后一条任务当前id = $private:最后一条任务当前['MAX("不可重任务id")']
Write-Verbose ( "信息:福报rs表,最大id,当前值: {0}" -f $private:最后一条任务当前id)
if ($private:最后一条任务当前id -le $private:已经输出完的id)
{
Write-Host '.' -ForegroundColor Yellow -NoNewline
continue
}
#输出完成状态的任务,条件大于初始id
$sqlite_sql2 = @"
SELECT * FROM "福报任务表rs" WHERE "任务状态"=1000 AND "不可重任务id">={0}
;
"@ -f $private:已经输出完的id
$private:所有完成状态的任务_条件大于初始id = & "${PSScriptRoot}/cmdb/invoke_福报表rs.ps1" -sqlite_sql语句 $sqlite_sql2
Write-Verbose ( "信息:所有完成状态的任务_条件大于初始id {0}" -f $private:所有完成状态的任务_条件大于初始id )
if ( ($null -eq $所有完成状态的任务_条件大于初始id) -or ($所有完成状态的任务_条件大于初始id -eq '') )
{
Write-Error '错误:所有完成状态的任务,条件大于初始id,输出为空'
continue
}
foreach ($private:i in $private:所有完成状态的任务_条件大于初始id)
{
[uint64]$private:iid = $private:i['不可重任务id']
if ($private:已经输出任务的ids.Contains($private:iid))
{
}
else
{
$null = $private:已经输出任务的ids.add($private:iid)
$private:i | Select-Object '被控机ip','标准输出' | Format-List
}
}
#$private:已经输出任务的ids.sort()
Write-Verbose ( "信息:福报rs表,最大id,从: {0}" -f $private:已经输出完的id)
do
{
$private:已经输出完的id++
}
while ($private:已经输出任务的ids.Contains($private:已经输出完的id))
Write-Verbose ( "信息:福报rs表,最大id,变更为: {0}" -f $private:已经输出完的id)
# '---'
# $private:已经输出完的id++
# $private:已经输出完的id
# $private:已经输出任务的ids
# $private:已经输出任务的ids.Contains($private:已经输出完的id)
# '+++'
$private:脚本结束时间 = $private:脚本结束时间.AddSeconds(10)
Write-Verbose "信息:本脚本将在 ${private:脚本结束时间} 后退出。"
}
while ($private:脚本结束时间 -gt (Get-Date))
Write-Verbose ($private:已经输出任务的ids -join '-')
$global:__kl2_rs2 = $false
exit 0
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。