问题描述:
通过ssh远程在linux服务器执行时间比较长的任务的时候,不想在那等待,希望命令执行完成后能够提示下。
1.linux服务器上脚本
将以下代码保存成toast.sh并赋予执行权限
ssh [username]@[ip] "schtasks /Run /TN toast" > /dev/null
这里是linux远程到本地window 并执行了一个名叫toast计划任务。
然后这里需要配置ssh的免密登录,否则还要输入密码就达不到通知的效果了。配置也很简单,将linux中的id_rsa.pub的内容复制到
window的.ssh/authorized_keys中就可以了。
2.window上显示弹窗脚本
新建一个vbs脚本
set ws=WScript.CreateObject("WScript.Shell")
ws.Run "C:\Users\123\toast.bat",0
用vbs来调用bat,这样执行bat脚本就不会有一闪而过的黑框
再新建一个toast.bat脚本
mshta vbscript:msgbox("服务器命令执行完成",64,"提示")(window.close)
这里用vbscript显示一个弹窗。
3.新建window计划任务
win+r打开运行
输入control schedtasks,点击确定
操作->创建任务
填入名称和描述,注意:这里名称要和linux上脚本一致
然后切换到操作选项,点击新建
浏览添加上面的vbs脚本。
然后一路确定就大功告成了。
尝试一下:
在linux服务器上执行:
ls && ./toast.sh
ps:跳过执行计划任务直接ssh去调用bat脚本是不行的,可能是因为安全原因,ssh是不能执行mshta命令的。
参考:
SSH连接服务器后执行多条命令_阿兵云原生的博客-CSDN博客_ssh后面接命令
linux主机通过ssh登录windows服务器启动tomcat所踩的坑 - 鲨鱼辣椒 - 博客园 (cnblogs.com)
windows执行计划任务_51CTO博客_windows计划任务不执行