![通过任务计划程序在 Windows 上运行 bash 文件](https://linux22.com/image/1519304/%E9%80%9A%E8%BF%87%E4%BB%BB%E5%8A%A1%E8%AE%A1%E5%88%92%E7%A8%8B%E5%BA%8F%E5%9C%A8%20Windows%20%E4%B8%8A%E8%BF%90%E8%A1%8C%20bash%20%E6%96%87%E4%BB%B6.png)
我知道有无数的帖子涉及同样的问题,但是我无法按照建议安装 Cygwin 并运行它来使其工作。
我正在尝试做的事情:
- 使用此工具安排 EC2 快照:https://github.com/colinbjohnson/aws-missing-tools/tree/master/ec2-automate-backup
- 在 Windows Server 2012 R2 上运行
到目前为止我已经做过/测试过的事情:
- 安装 Git
- 创建了一个基本任务,并将操作设置为“启动程序”
- 程序/脚本字段设置为“C:\Program Files\Git\bin\bash.exe”
- 添加设置为 -l -c "C:/AWS/ec2-automate-backup.sh -v -r -n" 的参数
我最初以为我输入了错误的 shell 脚本路径格式,因为 Unix 对 \ 的解释不同。我已确认在常规命令提示符中运行命令“c:\Program Files\Git\bin\bash.exe”-l -c“C:/AWS/ec2-automate-backup.sh -v .....”确实有效,并且我的卷的快照已在 AWS 中创建。
因为上述方法有效,所以我认为也许我应该在“程序/脚本”字段中用一行指定所有内容。当我尝试这样做时,任务无限期地挂起在“任务当前正在运行”模式下。
我还将任何错误重定向到snapshot.log文件,并注意到它出现了一条错误消息,提示“无法找到凭据。您可以通过运行“aws configure”来配置凭据。”。奇怪的是,如果我打开bash可执行文件并运行aws configure,我的凭据已经加载在那里。然后我想也许是因为凭证是特定于配置文件的。我登录了用于运行任务的服务帐户,并在该帐户下设置了aws凭证,但仍然没有任何运气。如果有人曾经尝试过使用此脚本进行快照备份,我希望得到一些指点。我知道有一种更简单的方法可以通过AWS Lambda工具来完成,但这需要花钱,而我真的只需要为几台服务器执行此操作,因此无法证明成本是合理的。