加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-15 18:26:40 所属栏目:安全 来源:网络整理
导读:我创建了这个bash脚本来生成我的EBS卷的快照 #! /usr/bin/bashec2-create-snapshot -d "My Snapshot" vol-XXXXXXX -O MyKey -W MyOtherKey 当我在终端中运行这条线路时,它连接到服务器 bash myscript.sh 然后我创建了这个crontab PATH=/bin:/home/usr/bin/ba
我创建了这个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调用脚本,这样更简洁,更可靠.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读