我想实现类似的东西:我正在创建卷的快照(使用amazon ec2工具),我将最新快照的详细信息存储在一个文件中。
#Create snapshots of all attached volumes
echo "Create snapshots of all attached volumes"
read -rsp $'Press enter to continue...\n'
awk '{print $2, $3}' "$EC2_HOME/ActiveVolumes_$today_date" | while read vol_id inst_id; do
awk '{print $3, $5}' "$EC2_HOME/Instances_$today_date" | while read inst_id2 name; do
if test "$inst_id" = "$inst_id2"; then
echo ec2-create-snapshot "$vol_id" -d "$today_date: Daily Backup for $inst_id (VolID:$vol_id InstID:$inst_id)"
ec2-create-snapshot "$vol_id" -d "$today_date: Daily Backup for $inst_id (VolID:$vol_id InstID:$inst_id)"
fi
done
done
#Create a file with all latest snapshots
echo "Create a file with all latest snapshots"
read -rsp $'Press enter to continue...\n'
latestdate=$(ec2-describe-snapshots | grep ^SNAPSHOT | sort -rk 5 | awk '{print substr($5, 1, 10); exit}')
ec2-describe-snapshots | grep "^SNAPSHOT.*$latestdate" > "$EC2_HOME/SnapshotsLatest_$today_date"
我想做一件事。我想根据一个条件在两个代码块之间等待。我想在第一个代码块执行后等待。我想检查状态是否已完成,然后执行下一个代码块。
SNAPSHOT snap-7749 vol-86d0 pending 2013-12-11T04:17:57+0000 100% 109030037527 35 EBS_Automated_Snapshot_12-10-2013-20:20:13
SNAPSHOT snap-e2f3dc vol-80 completed 2013-12-11T04:16:49+0000 100% 109030037527 35 EBS_Automated_Snapshot_12-10-2013-20:19:05
答案 0 :(得分:0)
要检查状态是否已完成,请执行下一个代码块。
你也可以使用“;&& ||”中的一个的;只需将一个命令与另一个命令分开。和&&如果前一个命令成功,则只运行以下命令“|| - 如果不成功。Examples
如果还不够,则有睡眠和等待命令:
在第一个代码块执行后等待。只需使用睡眠数
echo "hello"
# wait 5 seconds
sleep 5
echo "Bye"
更多信息:男人睡觉。