【发布时间】:2021-07-22 07:11:52
【问题描述】:
我正在使用安装在 Centos 8 服务器上的 Rundeck 3.4.0 版。
我安装了 WinRM Node Executor Python 插件版本 2.0.12 以在 Windows 2016 服务器上运行作业。
尝试在我的 Windows 服务器上删除文件的简单 .bat 作业始终成功,即使该文件不存在。
但是,在日志文件中出现错误“找不到 C:...”
当文件不存在时,使用 ssh 在 Linux 服务器上运行的相同作业失败。
我确切地说我是 Rundeck 的新手。
非常简单的 .bat 文件:
:: Rundeck delete file
::
@ECHO OFF
del C:\users\winrmuser\Documents\CreateFile_%1.log
EXIT
还有工作定义:
- <joblist>
- <job>
<defaultTab>nodes</defaultTab>
<description />
- <dispatch>
<excludePrecedence>true</excludePrecedence>
<keepgoing>false</keepgoing>
<rankOrder>ascending</rankOrder>
<successOnEmptyNodeFilter>false</successOnEmptyNodeFilter>
<threadcount>1</threadcount>
</dispatch>
<executionEnabled>true</executionEnabled>
<id>9c33bba8-223a-4f55-9a71-16b239eac465</id>
<loglevel>INFO</loglevel>
<name>Test horus delete file</name>
<nodeFilterEditable>false</nodeFilterEditable>
- <nodefilters>
<filter>horus</filter>
</nodefilters>
<nodesSelectedByDefault>true</nodesSelectedByDefault>
- <notification>
- <onfailure>
<email attachLog="true" attachLogInFile="true" recipients="xxx@yyy.zzz" />
</onfailure>
- <onsuccess>
<email attachLog="true" attachLogInFile="true" recipients="xxx@yyy.zzz" />
</onsuccess>
</notification>
<notifyAvgDurationThreshold />
<plugins />
<scheduleEnabled>true</scheduleEnabled>
- <sequence keepgoing="false" strategy="node-first">
- <command>
<description>DeleteFile</description>
<exec>C:\Users\winrmuser\Documents\RundeckDeleteFile.bat New</exec>
- <plugins>
- <LogFilter type="key-value-data">
- <config>
<invalidKeyPattern>\s|\$|\{|\}|\\</invalidKeyPattern>
<logData>false</logData>
<name>DeleteFailed</name>
<regex>^RUNDECK:DATA:\s*([^\s]+?)\s*=\s*(.+)$</regex>
</config>
</LogFilter>
- <LogFilter type="highlight-output">
- <config>
<bgcolor>red</bgcolor>
<fgcolor>green</fgcolor>
<mode>bold</mode>
<regex>failed</regex>
</config>
</LogFilter>
</plugins>
</command>
</sequence>
<uuid>9c33bba8-223a-4f55-9a71-16b239eac465</uuid>
</job>
</joblist>
提前感谢您的帮助。
【问题讨论】:
-
嗨!你能分享一个最小的可重现的例子吗?也许是脚本和 rundeck 作业定义?我进行了测试,它按预期工作。 .bat 文件示例:pastebin.com/imyueeeP 以及文件不存在时的结果:imgur.com/D1Q1d7X
-
请给我你的定义文件好吗?
-
您好,它现在可以工作了,但我必须修改我的批处理作业:
-
:: Rundeck 删除文件 :: @ECHO OFF dir "C:\users\winrmuser\Documents\CreateFile_%1.log" IF %ERRORLEVEL% EQU 0 (del C:\users\winrmuser\ Documents\CreateFile_%1.log echo 成功)否则(退出)
-
好!请添加您的解决方案作为答案:)
标签: rundeck