1

我目前正在实施备份方案以运行 Cygwin Expect 脚本。我想做的是让任务调度程序打开 Cygwin 并运行一个名为 Backups 的期望脚本。

我遇到的问题是我认为基于变量或路径的问题。我从 Active Directory 中设置了正确的用户(我们将其称为 AD/svc_backup),我目前正在尝试查看是否可以让任务调度程序打开 Cygwin。

到目前为止,只有在用户登录单选按钮时才运行,它才会打开程序。这将打开 cygwin,但不允许我运行任何进一步的命令并给我一个错误。

例如 ls 给我“bash: ls: command not found” 当它询问我要启动什么程序时,我只需将它指向我桌面上的快捷方式,然后它会填写路径 C:\cygwin\bin\mintty。可执行程序 。任务调度程序似乎不是 IMO 最直观的工具,但如果我能让它工作,我会使用它。我也知道 cygwin 也可以使用 cron。cron 会是更好的选择吗?

4

1 回答 1

2

我想到了。所以系统通过按钮“仅在用户登录时运行”单选按钮按下“意味着我希望脚本运行并且我希望看到它使用本地 usr 帐户运行。(与用户交互)

“无论用户是否登录都运行”按钮将您运行的任何脚本或程序转换为没有用户交互性的后台服务(您看不到它)。通过使用 cygwin 中操作选项卡下的完整路径,我能够告诉它要运行哪个脚本。脚本路径和选项如下:

C:\cygwin\bin\bash.exe -l -c C:/cygwin/home/svc_p_cisco_bkp/

我一直在研究 -l 和 -c 参数,从我可以收集到的 -l 表示列出输出,而 -c 表示运行这些命令。这没有在任何地方列出,但从我读到的内容来看,这是我能给出的答案。我也测试过,如果没有这些变量,脚本将无法正确运行。

当我检查“无论用户是否登录时运行”按钮时,我没有看到脚本启动,但我可以看到备份到我的目标文件夹。但是,当“仅在用户登录时运行”时,我确实看到了它。我所做的是让脚本以我想要的方式运行,同时我可以看到它,然后在我知道它工作正常时选择“无论用户是否登录都运行”单选按钮。

在阅读完有关 Windows 任务调度程序的页面和页面之后,一切都已启动并运行,我是完全自动化的。

于 2013-11-07T20:09:43.220 回答