linux远程window服务器执行脚本

问题描述:

通过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远程window服务器执行脚本_第1张图片
操作->创建任务
linux远程window服务器执行脚本_第2张图片
填入名称和描述,注意:这里名称要和linux上脚本一致
然后切换到操作选项,点击新建
linux远程window服务器执行脚本_第3张图片
浏览添加上面的vbs脚本。
然后一路确定就大功告成了。

尝试一下:
在linux服务器上执行:

ls && ./toast.sh

linux远程window服务器执行脚本_第4张图片

ps:跳过执行计划任务直接ssh去调用bat脚本是不行的,可能是因为安全原因,ssh是不能执行mshta命令的。

参考:
SSH连接服务器后执行多条命令_阿兵云原生的博客-CSDN博客_ssh后面接命令
linux主机通过ssh登录windows服务器启动tomcat所踩的坑 - 鲨鱼辣椒 - 博客园 (cnblogs.com)
windows执行计划任务_51CTO博客_windows计划任务不执行

你可能感兴趣的:(服务器,linux,ssh)