Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何在代码块之间插入等待_Linux_Bash_Amazon Ec2 - Fatal编程技术网

Linux 如何在代码块之间插入等待

Linux 如何在代码块之间插入等待,linux,bash,amazon-ec2,Linux,Bash,Amazon Ec2,我想实现这样的功能:创建卷的快照(使用AmazonEC2工具),并将最新快照的详细信息存储在一个文件中 #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" | whil

我想实现这样的功能:创建卷的快照(使用AmazonEC2工具),并将最新快照的详细信息存储在一个文件中

#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
要检查的状态是否已完成,请执行下一个代码块

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
您还可以使用“&&&&| |”中的一个;只是将一个命令与另一个命令分开。&&表示仅在上一个命令成功时运行以下命令“| |-如果不成功

如果还不够,则有sleep and wait命令:

  • Wait:Wait,waitpid,waitid-等待进程更改状态
  • 睡眠:延迟一定的时间
要在执行第一个代码块后等待,只需使用sleep num


更多信息:人工睡眠。

为什么要再次发布?为什么不编辑较早的一个以包含更多信息?@devnull:我已删除较早的一个?您在挂起/完成时显示的信息来自何处?是否在更新的文件中?是否是您运行的命令的结果?在执行ec2时描述快照将结果写入文件ec2是立即创建快照并返回,然后继续在后台工作,还是阻塞直到完成?