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
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:__kl2 -eq $true)
{
exit
}
$global:__kl2 = $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 "福报任务表" WHERE "任务状态"=1000
;
"@
$private:最后一条已完成任务旧 = & "${PSScriptRoot}/cmdb/invoke_福报表.ps1" -sqlite_sql语句 $sqlite_sql
[uint64]$private:已经输出完的id = $private:最后一条已完成任务旧['MAX("不可重任务id")'] + $负偏移量
Write-Verbose ("信息:福报表,最大id,初始值:{0}" -f ${private:已经输出完的id} )
[System.Collections.ArrayList]$private:已经输出任务的ids = @()
do
{
Start-Sleep -Seconds $屏幕输出间隔秒
$private:最后一条任务当前 = & "${PSScriptRoot}/cmdb/invoke_福报表.ps1" -sqlite_sql语句 $sqlite_sql
[uint64]$private:最后一条任务当前id = $private:最后一条任务当前['MAX("不可重任务id")']
Write-Verbose ( "信息:福报表,最大id,当前值: {0}" -f $private:最后一条任务当前id)
if ($private:最后一条任务当前id -le $private:已经输出完的id)
{
Write-Host '.' -ForegroundColor Yellow -NoNewline
continue
}
#输出完成状态的任务,条件大于初始id
$sqlite_sql2 = @"
SELECT * FROM "福报任务表" WHERE "任务状态"=1000 AND "不可重任务id">={0}
;
"@ -f $private:已经输出完的id
$private:所有完成状态的任务_条件大于初始id = & "${PSScriptRoot}/cmdb/invoke_福报表.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 ( "信息:福报表,最大id,从: {0}" -f $private:已经输出完的id)
do
{
$private:已经输出完的id++
}
while ($private:已经输出任务的ids.Contains($private:已经输出完的id))
Write-Verbose ( "信息:福报表,最大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 = $false
exit 0
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。