【问题标题】:PLink - Running a Script with outputPLink - 运行带有输出的脚本
【发布时间】:2015-07-16 16:51:12
【问题描述】:

致力于自动化我定期运行的几个脚本。我有一个看起来应该很容易的东西,但我遇到了困难。我正在使用 VBA 创建两个文件并运行它。一个文本文件包含命令列表,一个 BAT 文件包含启动它的 plink 命令。两个文件都在下面。 plink.exe 和这两个文件在创建后都在桌面上。

问题是我正在运行的脚本有输出,即使我在命令末尾使用了“&”修饰符。我不允许以任何方式修改脚本。运行命令文件时,脚本运行得很好,但由于输出,退出命令被忽略。我尝试在退出之前将 sleep 命令添加到脚本行的末尾,并在脚本行之后直接添加退出。

BAT 文件 - Chg.bat

plink [user]@[ip] -pw [password] < C:\Users\Mike\Desktop\pcmd.txt

命令文件 - pcmd.txt

cd /opt/test/srt
./srt.tool 20150506 20150506 &
exit

【问题讨论】:

  • 你对输出感兴趣吗?
  • 不,不在乎。虽然如果我们不能完全忽略它,我不反对等到输出完成后再执行退出命令。我只是无法做到这一点
  • 你有没有尝试像./srt.tool 20150506 20150506 &gt; /dev/null 2&gt;&amp;1一样重定向它
  • 好的,所以重定向它可以隐藏它,但现在退出命令被挂断了。当退出发生时,我得到一个“你有正在运行的工作”。我在服务器上运行了一个 ps-ef |grep srt.tool 并在脚本结束时进入睡眠状态。在睡眠后运行退出命令时,srt.tool 已完成。
  • srt.tool 在后台运行自己的一些进程(例如使用&amp;)。

标签: shell batch-file ssh plink


【解决方案1】:

这就是现在为我工作的脚本文件:

cd /test/srt
./srt.tool 20150506 20150506 > /opt/test/srt/test.txt &
rm test.txt
sleep 60; exit

Chg.bat 文件中没有任何变化。显然是在指挥它,然后在出口前睡觉就足够了。没有我想要的那么圆滑,但我会接手不工作的任何一天

【讨论】:

    猜你喜欢
    • 2017-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-21
    • 2018-02-12
    • 1970-01-01
    相关资源
    最近更新 更多