په Windows VPS کې د بوټ چلولو عادي لاره دا ده چې په RDP ناسته کې یې پیل کړئ او کړکۍ وتړئ. دا تر هغه کار کوي چې یو تازه کول د شپې په 3 بجو سرور بیا پیل کړي او څوک یې بیا پیل نه کړي. Task Scheduler چې په هر Windows Server کې شته، دا ستونزه پرته له اضافي سافټویر حل کوي. لاندې تنظیم:
- سکریپټ د بوټ پر مهال، مخکې له دې چې څوک ننوځي پیلوي؛
- که کرش شي یا ووژل شي، په یوه دقیقه کې یې بیا پیلوي؛
- هېڅکله دوه کاپي یوځای نه چلوي.
دا درې واړه موږ زموږ په Windows Server 2022 انځور کې ازمویلي: پروسه مو ووژله، سرور مو بیا پیل کړ او کاپي مو وشمېرلې.
د بېلګې سکریپټ
ستاسو د بوټ ځای ناستی: هر 10 ثانیې یوه کرښه لیکي، نو اسانه ښکاري چې ژوندی دی که نه.
New-Item -ItemType Directory -Force C:\bots | Out-Null
Set-Content C:\bots\heartbeat.ps1 -Encoding ascii -Value @'
while ($true) {
Add-Content -Path C:\bots\heartbeat.log -Value ("{0:u} pid {1}" -f (Get-Date), $PID)
Start-Sleep -Seconds 10
}
'@
دنده ثبت کړئ
د مدیر په PowerShell کې یې وچلوئ:
$action = New-ScheduledTaskAction -Execute 'powershell.exe' -Argument '-NoProfile -ExecutionPolicy Bypass -File C:\bots\heartbeat.ps1' -WorkingDirectory 'C:\bots'
$atBoot = New-ScheduledTaskTrigger -AtStartup
$everyMin = New-ScheduledTaskTrigger -Once -At (Get-Date) -RepetitionInterval (New-TimeSpan -Minutes 1)
$settings = New-ScheduledTaskSettingsSet -ExecutionTimeLimit ([TimeSpan]::Zero) -MultipleInstances IgnoreNew -StartWhenAvailable
Register-ScheduledTask -TaskName 'mybot' -Action $action -Trigger $atBoot, $everyMin -Settings $settings -User 'SYSTEM' -RunLevel Highest
Start-ScheduledTask -TaskName 'mybot'
هره برخه څه کوي:
-AtStartupد Windows د بوټ پر مهال بوټ پیلوي، پرته له ننوتلي کارن.- هره دقیقه تکرار دنده هره دقیقه بیا چلوي. که بوټ ژوندی وي، هېڅ نه کېږي؛ که مړ شوی وي، بیا پیلېږي.
-MultipleInstances IgnoreNewتکرار خوندي کوي: هغه چلول چې بوټ لا دمخه روان ومومي، پرېښودل کېږي.-ExecutionTimeLimit 0د 72 ساعتونو ډیفالټ حد لرې کوي، چې له هغه وروسته به Task Scheduler بوټ دراوه.-User 'SYSTEM'یې پرته له پاسورډ او ناستې چلوي. SYSTEM په سرور بشپړ واک لري، نو په دې ډول یوازې خپل کوډ وچلوئ.
د Python لپاره عمل بدل کړئ:
$action = New-ScheduledTaskAction -Execute 'C:\Program Files\Python312\python.exe' -Argument 'C:\bots\bot.py' -WorkingDirectory 'C:\bots'
موږ څه وازمویل
کرش. موږ د بوټ پروسه د Stop-Process -Force په مرسته ووژله. 46 ثانیې وروسته د هرې دقیقې محرک نوې پیل کړې وه، او دقیقاً یوه کاپي وه.
بیا پیل. موږ سرور بیا پیل کړ او ننوتلي نه وو. له بوټ 40 ثانیې وروسته بوټ په خپل لاګ کې لیکل کول، پرته له دې چې په سرور کې د کارن ناسته وي.
څه کار ونه کړ. دوه شیان سم ښکاري خو نه دي:
- "که دنده ناکامه شي، هر … بیا یې پیل کړه". فعال مو کړ، پروسه مو ووژله، او دنده څو دقیقې په Ready حالت کې پاتې شوه. دا هغې دندې ته غبرګون ښیي چې پیل نشي، نه هغه پروګرام ته چې وروسته مړ شي.
- پوښونکی لوپ (
while ($true) { & bot; sleep 5 }). کرش شوی بوټ بیا پیلوي، خو که پخپله پوښونکی مړ شي، ماشومه پروسه روانه وي او راتلونکی چلول دویم بوټ پیلوي. موږ په پای کې دوه کاپي درلودې، چې د Telegram بوټ لپاره یعنې دوه پروسې چې پر هماغو تازه کولو جګړه کوي.
څنګه یې وګورو
Get-ScheduledTask -TaskName mybot | Select-Object TaskName, State
Get-ScheduledTaskInfo -TaskName mybot | Select-Object LastRunTime, NextRunTime
Get-Content C:\bots\heartbeat.log -Tail 5
د ساتنې لپاره د درولو لپاره لومړی Disable-ScheduledTask mybot وچلوئ (که نه د هرې دقیقې محرک به یې بیا پیل کړي)، بیا پروسه ودروئ. Enable-ScheduledTask mybot یې بېرته راولي.
لاګونه
دنده وتونکي نه نیسي. بوټ ته اجازه ورکړئ چې خپل لاګ پخپله ولیکي، لکه بېلګه، یا په یوه کوچني .cmd پیلوونکي کې وتونکی بلې خوا ته واستوئ او -Execute هغه فایل ته وګرځوئ.
کوم پلان
د PowerShell یا Python بوټ لږ CPU کاروي، خو پخپله Windows زموږ په انځور کې په خالي حالت کې له 1 تر 1.3 GB حافظه نیسي. Windows-Small (4 vCPU، 4 GB حافظه، 50 GB، میاشتنی $11) د یوه یا دوو بوټونو لپاره سم اندازه ده. په NAT پلان کې وتونکي اتصالونه (Telegram، د تبادلو API، هغه webhooks چې تاسو یې غواړئ) عادي کار کوي. که بوټ باید webhooks یا نورې راتلونکې ترافیک ترلاسه کړي، Windows Small-IP (میاشتنی $28) له خپل IPv4 سره واخلئ.
راتلونکي ګامونه: RDP خوندي کړئ، او که غواړئ بوټ د SSH له لارې اداره کړئ، OpenSSH نصب کړئ. تادیه په USDT، USDC یا ETH کېږي، او Windows ستاسو د خپل جواز سره Server 2022 دی (BYOL). ټول پلانونه: Windows VPS.
تبصرې
لا تبصرې نشته. لومړی اوسئ.