bash – 从Cron执行时,AWS API工具“未找到命令”

前端之家收集整理的这篇文章主要介绍了bash – 从Cron执行时,AWS API工具“未找到命令”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我创建了这个bash脚本来生成我的EBS卷的快照
#! /usr/bin/bash
ec2-create-snapshot -d "My Snapshot" vol-XXXXXXX -O <MyKey> -W <MyOtherKey>

当我在终端中运行这条线路时,它连接到服务器

bash myscript.sh

然后我创建了这个crontab

PATH=/bin:/home/usr/bin/bash:/usr/bin/bash
0 * * * * (bash ~/../bash/myscript.sh)

#ALSO TRIED THESE LINES
#0 * * * * ~/../bash/myscript.sh
#0 * * * * (/usr/bin/bash ~/../bash/myscript.sh)

我在电子邮件中收到此消息

/home/ec2-user/../bash/myscript.sh: line 4: ec2-create-snapshot: command not found

我没有关于如何使这项工作的想法.问题似乎是当从crontab执行时,脚本找不到AWS API工具.

任何想法都将非常感激.

为清楚起见,这是最终工作的内容.谢谢你指点我正确的方向.

连接到服务器,然后键入echo $EC2_HOME并按Enter键.

然后键入echo $JAVA_HOME并按Enter键.

然后输入sudo find / -name“ec2-create-snapshot”(这个可能返回多个值)

记下每个返回的值.您将在一分钟内使用它们.

创建此bash脚本:

#! /usr/bin/bash
export EC2_HOME=/your/ec2_home/path
export JAVA_HOME=/your/java_home/path

# Create an AWS Snapshot
/path/to/your/ec2-create-snapshot -d "Your Snapshot Description" vol-yourvolid -O YOURPUBLICKEY -W YOURPRIVATEKEY

您应该能够通过在终端中键入bash yourscriptname.sh来执行此操作

然后使用contab -e打开你的cron并添加以下行:

* * * * * (bash ~/your/dir/yourscriptname.sh) #CREATE AWS Snapshot

希望这有助于某人.

除了在注释中指定@ceejayoz所说的命令的完整路径之外,您还需要将EC2_HOME设置为指向您的EC2工具目录,并且您可能还需要将$EC2_HOME / bin添加到您的PATH中对于要正确拾取的命令脚本中的引用文件.

不是在crontab中指定一堆环境变量,而是创建一个设置环境并调用命令的shell脚本,然后从crontab调用脚本,这样更简洁,更可靠.

猜你在找的Bash相关文章