我创build了这个bash脚本来生成我的EBS卷的快照
#! /usr/bin/bash ec2-create-snapshot -d "My Snapshot" vol-XXXXXXX -O <MyKey> -W <MyOtherKey>
当我在连接到服务器时在terminal中运行这条线时,它就起作用了
bash myscript.sh
然后我创build了这个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工具。
任何想法将非常感激。
为了清楚起见,这里是结束了工作。 谢谢你指出我正确的方向。
连接到服务器,然后inputecho $EC2_HOME并回车。
然后inputecho $JAVA_HOME并回车。
然后inputsudo find / -name "ec2-create-snapshot" (这个可能会返回多个值)
记下每个返回的值。 你会在一分钟内使用它们。
创build这个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
您应该可以通过在terminal中inputbash yourscriptname.sh来执行此操作
然后用contab -e打开你的cron并添加这行:
* * * * * (bash ~/your/dir/yourscriptname.sh) #CREATE AWS Snapshot
希望这有助于某人。
除了在注释中指定命令的完整path外,还需要将EC2_HOME设置为指向EC2工具目录,还可能需要将$ EC2_HOME / bin添加到PATH中在命令脚本中引用的文件被正确拾取。
而不是在crontab中指定一堆环境variables,创build一个设置环境并调用命令的shell脚本,然后从你的crontab调用脚本,会更加整洁可靠。