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

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

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

  1. bash myscript.sh

然后我创建了这个crontab

  1. PATH=/bin:/home/usr/bin/bash:/usr/bin/bash
  2. 0 * * * * (bash ~/../bash/myscript.sh)
  3.  
  4. #ALSO TRIED THESE LINES
  5. #0 * * * * ~/../bash/myscript.sh
  6. #0 * * * * (/usr/bin/bash ~/../bash/myscript.sh)

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

  1. /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脚本:

  1. #! /usr/bin/bash
  2. export EC2_HOME=/your/ec2_home/path
  3. export JAVA_HOME=/your/java_home/path
  4.  
  5. # Create an AWS Snapshot
  6. /path/to/your/ec2-create-snapshot -d "Your Snapshot Description" vol-yourvolid -O YOURPUBLICKEY -W YOURPRIVATEKEY

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

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

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

希望这有助于某人.

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

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

猜你在找的Bash相关文章