我希望让 cron 执行 delete_snapshot.bash,但是当我尝试如下创建 cron 时:
*/1 * * * * /var/www/mango_gis/delete_snapshot.bash >/dev/null
它没有执行我的脚本全部,因为当我没有看到它删除亚马逊云中的快照时,并且我的脚本已经用 bash 进行了测试,它工作正常。
这是我的脚本如下:
#!/bin/bash
get()
{
local pos=$1
shift
eval 'echo ${'$pos'}';
}
length(){ echo $#; }
find_snapshots()
{
echo $(ec2-describe-snapshots | xargs -n1 basename);
}
snapshots=$(find_snapshots)
len=$(length $snapshots)
row_count=$(($len/6))
if(($row_count > 6)); then
delete_count=$(($row_count-6))
for (( i=1; i<=$delete_count; i++ )); do
ec2-delete-snapshot $(echo $(get $((2+$((6*$(($i-1)))))) $snapshots)) > /dev/null
done
fi
在上面,我发现问题是我调用了 EC2 命令的一个命令。
我已经测试创建一个 cron 作业来调用此命令是 ec2-describe-snapshots,
但它不起作用。
请指教...
利基纳