Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to use while loop to check condition in linux?
    primarykey
    data
    text
    <p>I have to do something like this :</p> <pre><code>while ( condition) do wait </code></pre> <p>I have to do this is in linux. While the state of snapshot is pending it should wait. </p> <p>Content of ec2-describe snapshot is :</p> <pre><code>SNAPSHOT snap-c7f3 vol-f6a0 completed 2013-12-04T09:24:50+0000 100% 109030037527 10 2013-12-04: Daily Backup for SaMachine (VolID:vol-f09a0 InstID:i-2604) SNAPSHOT snap-c7df9 vol-3f6b completed 2013-12-04T09:24:54+0000 100% 109030037527 10 2013-12-04: Daily Backup for sa_test_VPC (VolID:vol-3InstID:i-e1c46) </code></pre> <p>How to do this? How should I use grep and all that ?</p> <pre><code>#!/bin/bash # Setting the environmental variables export EC2_HOME=/opt/ec2/tools export AWS_ACCESS_KEY_ID= export AWS_SECRET_ACCESS_KEY= export SOURCE_REGION="us-west-2" export DESTINATION_REGION="us-east-1" # Set the variable today-date to current date today_date=`date +%Y-%m-%d` echo "$today_date" # Set the variable date_dir to yesterday's date date_dir=$(date +%Y-%m-%d -d '-1 days') echo "$date_dir" #First delete all snapshots older than one day #Create a file with all scheduled snapshots echo "First delete all snapshots older than one day" echo "Create a file with all scheduled snapshots" read -rsp $'Press enter to continue...\n' ec2-describe-snapshots | grep -i "$date_dir"&gt;"$EC2_HOME/SnapshotsDOW_$today_date" #Delete snapshots for older backups echo "Delete snapshots for older backups" read -rsp $'Press enter to continue...\n' for snapshot in $(cat "$EC2_HOME/SnapshotsDOW_$today_date" | awk '{print $2}') do ec2-delete-snapshot $snapshot done #Now create a snapshot for every attached volume to every instance #Create a file with all attached volumes echo "Create a file with all attached volumes" read -rsp $'Press enter to continue...\n' #ec2-describe-volumes | grep -i "attached" &gt;"$EC2_HOME/ActiveVolumes_$today_date" #Create a file with all instances echo "Create a file with all instances" read -rsp $'Press enter to continue...\n' ec2-describe-instances | grep -i "tag" | grep -i "name" &gt;"$EC2_HOME/Instances_$today_date" #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" &gt; "$EC2_HOME/SnapshotsLatest_$today_date" #Copy the snapshot across multiple regions. echo "Copy the snapshot across multiple regions." read -rsp $'Press enter to continue...\n' for snapshot in $(cat "$EC2_HOME/SnapshotsLatest_$today_date" | awk '{print $2}') do ec2-copy-snapshot -r $SOURCE_REGION -s $snapshot -region $DESTINATION_REGION done #Send the latest snapshot details to user using mail command. echo "Send the latest snapshot details to user using mail command" read -rsp $'Press enter to continue...\n' mail -s 'VM Snapshot $today_date' jp.com &lt; "$EC2_HOME/SnapshotsLatest_$today_date" read -rsp $'Press enter to exit...\n' </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload