前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >计划任务定时重启服务或重启机器

计划任务定时重启服务或重启机器

原创
作者头像
Windows技术交流
修改2024-09-06 10:55:52
3K0
修改2024-09-06 10:55:52
举报
文章被收录于专栏:Windows技术交流

添加一个每隔一段时间就重启服务的计划任务,一句命令搞定计划任务添加

例如

①每天2点触发后、每隔120分钟(2小时)重启一次远程服务

schtasks.exe /CREATE /ru system /rl highest /SC DAILY /MO 1 /TN restart_rdp_service /TR "powershell.exe -c '& {restart-service termservice -force}'" /ST 02:00 /RI 120 /DU 24:00 /f

②每天2点触发后、每隔1439分钟(23小时59分)重启一次远程服务

schtasks.exe /CREATE /ru system /rl highest /SC DAILY /MO 1 /TN restart_rdp_service /TR "powershell.exe -c '& {restart-service termservice -force}'" /ST 02:00 /RI 1439 /DU 24:00 /f

注:restart-service termservice -force重启远程服务的命令,健壮性一般,最好是通过图形界面

该容易出现意外情况,即重启远程服务是先关闭服务再开启服务的过程,跟重启机器类似,是先关机后开机的过程,如果前半程卡住,后半场是没辙的。万一不小心卡住了,参考我这个文档解决:https://cloud.tencent.com/developer/article/1933166

健壮的办法是通过UI上的开关按钮控制:

运行sysdm.cplSystemPropertiesRemote.exems-settings:remotedesktop

添加一个每隔一段时间就重启机器的计划任务,一句命令搞定计划任务添加

例如:

①每天2点触发后、每隔1439分钟(23小时59分)重启一次机器

schtasks.exe /CREATE /ru system /rl highest /SC DAILY /MO 1 /TN restart_computer /TR "shutdown -r -t 0" /ST 02:00 /RI 1439 /DU 24:00 /f

每天凌晨业务低峰期,计划任务定时重启机器,这个办法特别适合这种场景:机器重启后不到2天,CPU、内存利用率逐渐跑到百分之八九十甚至跑满,业务方不太好定位程序占用资源不断升高的原因,跑满时机器hang死,重启后恢复正常。

如果有条件,建议最好是把命令整到一个.ps文件,毕竟能一句话解决的场景比较少,有时候需要多条命令,此时就得执行powershell文件而不是一条命令,例如

创建计划任务获取进程列表并打印CPU利用率每10分钟执行一次

创建计划任务:

schtasks.exe /CREATE /ru system /rl highest /SC DAILY /MO 1 /TN getprocess /TR "powershell.exe -ExecutionPolicy Unrestricted -windowstyle hidden -File c:\get_process.ps1" /ST 02:00 /RI 10 /DU 24:00 /f

把下面2句写到c:\get_process.ps1,计划任务调用它

代码语言:javascript
复制
Get-Date -Format 'yyyy-MM-dd HH:mm:ss:fffffff' >>  E:\process.log
get-process |sort-object cpu -descending |select-object -first 25|format-table processname,cpu|Out-String >>  E:\process.log

再比如创建计划任务每分钟ping百度3下

schtasks.exe /CREATE /ru system /rl highest /SC DAILY /MO 1 /TN pingbaidu /TR "cmd.exe /c start /min d:\pingbaidu.bat" /ST 02:00 /RI 1 /DU 24:00 /f

把下面几句写到d:\pingbaidu.bat,计划任务调用它

代码语言:javascript
复制
time /t >> D:\pingbaidu.txt
ping www.baidu.com -n 3 >> D:\pingbaidu.txt
echo. >> d:\pingbaidu.txt
exit 0

其他关联文档:

https://cloud.tencent.com/developer/article/1929202

https://cloud.tencent.com/developer/article/1933166

代码语言:txt
复制

【每天16点定时执行重启】中文时间格式
schtasks.exe /CREATE /ru system /rl highest /SC DAILY /MO 1 /TN "\restart_computer" /TR  "shutdown -r -t 0" /ST 16:00 /f
schtasks /change /tn "\restart_computer" /ru SYSTEM /st 16:00 /sd 1900/01/01
schtasks /change /tn "\restart_computer" /enable
schtasks /run /tn "\restart_computer"

【每天16点定时执行重启】英文时间格式
schtasks.exe /CREATE /ru system /rl highest /SC DAILY /MO 1 /TN "\restart_computer" /TR  "shutdown -r -t 0" /ST 16:00 /f
schtasks /change /tn "\restart_computer" /ru SYSTEM /st 16:00 /sd 01/01/1900
schtasks /change /tn "\restart_computer" /enable
schtasks /run /tn "\restart_computer"


【每隔5分钟执行一次重启】中文时间格式
schtasks.exe /CREATE /ru system /rl highest /SC minute /MO 5 /TN "\restart_computer" /TR  "shutdown -r -t 0" /f
schtasks /change /tn "\restart_computer" /ru SYSTEM /st 00:00 /sd 1900/01/01
schtasks /change /tn "\restart_computer" /enable
schtasks /run /tn "\restart_computer" #立即触发执行,会马上重启机器,只有触发了至少1次后,系统才会知道下次是什么时候执行,必须确保这点


【每隔5分钟执行一次重启】英文时间格式
schtasks.exe /CREATE /ru system /rl highest /SC minute /MO 5 /TN "\restart_computer" /TR  "shutdown -r -t 0" /f
schtasks /change /tn "\restart_computer" /ru SYSTEM /st 00:00 /sd 01/01/1900
schtasks /change /tn "\restart_computer" /enable
schtasks /run /tn "\restart_computer" #立即触发执行,会马上重启机器,只有触发了至少1次后,系统才会知道下次是什么时候执行,必须确保这点



查看重启日志的powershell命令:
$bufferSize = $Host.UI.RawUI.BufferSize
$bufferSize.Width = 1024
$Host.UI.RawUI.BufferSize = $bufferSize

Get-WinEvent -FilterHashtable @{logname='System';id=@(12,13,6005,6006);StartTime=(Get-Date).AddDays(-1) } | Where-Object {$_.ProviderName -eq "Microsoft-Windows-Kernel-General" -or $_.ProviderName -eq "User32" -or $_.ProviderName -eq "EventLog" } |Sort-Object -Property TimeCreated


如何用命令启用所有Windows计划任务的历史记录?当下被禁用了,想启用,在eventvwr里有个"启用所有任务历史记录"的按钮点一下就可以了,想知道对应的命令,那个按钮点了后,按钮就会变成"禁用所有任务历史记录",是同一个按钮的两种形态
启用
wevtutil sl Microsoft-Windows-TaskScheduler/Operational /e:true
禁用
wevtutil sl Microsoft-Windows-TaskScheduler/Operational /e:false

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 添加一个每隔一段时间就重启服务的计划任务,一句命令搞定计划任务添加
  • 添加一个每隔一段时间就重启机器的计划任务,一句命令搞定计划任务添加
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档