运维同事要每天凌晨备份数据库,之前靠人爬起来手动点,有一次睡过头漏了一天。我让他用系统自带的计划程序,配个定时任务,之后就没再出过岔子。
Windows定时任务就是任务计划程序,图形界面版的cron。打开方式,按Win加R输入taskschd.msc回车。左边是任务计划程序库,右键就能创建任务。
创建任务:基本和触发器两步
先填基本信息,名字写清楚干什么,比如每日数据库备份,勾选用最高权限运行,否则后台脚本可能没权限。安全选项里选不管用户是否登录都要运行,这样锁屏也能跑。
再配触发器,也就是什么时候跑。选每天,设凌晨两点,下面有重复间隔,可以勾每十分钟重复一次。要开机就启动,触发器选启动时,适合常驻的看门脚本。
操作和条件:别让任务白跑
- 操作:启动程序,程序填脚本解释器,参数填脚本路径,起始位置填脚本所在目录
- 条件:默认要求交流电源,笔记本拔电就不跑,按需取消
- 设置:勾上错过计划后尽快启动,关机错过的任务开机补跑
程序或脚本 powershell.exe 添加参数 -File D:/scripts/backup.ps1 起始位置 D:/scripts 查看历史 schtasks /query /tn 任务名 /v /fo LIST很多人配好不跑,八成是卡在起始位置上。脚本用相对路径引用文件,起始位置没填对就找不到,日志里会说系统找不到路径。补上起始位置,问题就没了。命令行也能建,schtasks /create那一套,适合批量部署。
还有个坑,任务显示已完成但结果码不是0,说明脚本报错了。去历史记录里看最后运行结果,或者让脚本自己写日志文件,对着日志查最快。
取舍一句话。简单周期任务用计划程序足够,逻辑复杂、要依赖前一个任务结果的,写在脚本里加状态判断,别全靠计划程序拼。