2013-12-10 2 views
0

Я пытаюсь использовать код в сценарии оболочки. в то время как я пытаюсь преобразовать код из пакетного скрипта в сценарий оболочки, я получаю сообщение об ошибке.ошибка в скриптах оболочки?

Batch File КОД

:: Create a file with all latest snapshots 
FOR /F "tokens=5" %%a in (' ec2-describe-snapshots ^|find "SNAPSHOT" ^|sort /+64') do set "var=%%a" 
set "latestdate=%var:~0,10%" 
call ec2-describe-snapshots |find "SNAPSHOT"|sort /+64 |find "%latestdate%">"%EC2_HOME%\Working\SnapshotsLatest_%date-today%.txt" 

КОД В SHELL SCRIPT

#Create a file with all latest snapshots 
FOR snapshot_date in $(' ec2-describe-snapshots | grep -i "SNAPSHOT" |sort /+64') do set "var=$snapshot_date" 
set "latestdate=$var:~0,10" 
ec2-describe-snapshots |grep -i "SNAPSHOT" |sort /+64 | grep "$latestdate">"$EC2_HOME%/SnapshotsLatest_$today_date" 

Я хочу, чтобы отсортировать снимки по датам и сохранить снимки, созданные в последней даты в файле.

ОБРАЗЦА ВЫВОД ЕСЕ-опишете-снимки:

`SNAPSHOT  snap-5e20 vol-f660 completed  2013-12-10T08:00:30+0000  100% 109030037527 10  2013-12-10: Daily Backup for i-2111 (VolID:vol-f9a0 InstID:i-2601)` 

Он будет содержать записи, как этот

в snaphsot последний файл cointain:

SNAPSHOT snap-cdd617f3 vol-f66409a0 completed 2013-12-04T09:24:50+0000 100% 109030037527 10 2013-12-04: Daily Backup for Sanjay_Test_Machine (VolID:vol-f66409a0 InstID:i-26048111) 
SNAPSHOT snap-c7d617f9 vol-3d335f6b completed 2013-12-04T09:24:54+0000 100% 109030037527 10 2013-12-04: Daily Backup for sachin_test_VPC (VolID:vol-3d335f6b InstID:i-e1c443d6) 

Любое предложение или свинец ценится ,

+2

Какую ошибку вы получаете? Shell чувствительна к регистру, используйте 'for' вместо' FOR'. – choroba

+0

Опишите, что вы хотите сделать, и укажите входные данные и желаемый результат. –

+0

У меня есть снимки, сделанные на амазонке, я хочу найти последние снимки, сделанные на дату, а затем хочу сохранить их в файле. например, дата 2013-12-10 моментальных снимков, сделанных в эту дату, должна храниться в файле. Содержание snapshotslatest файла должен быть 'СНАПШОТ \t оснастке c17f3 \t том-f69a0 \t \t завершено 2013-12-04T09: 24: 50 + 0000 \t 100% 2013-12-04: Ежедневное резервное копирование для Sanjay_Test_Machine (VolID : т-f66409a0 INSTID: я-26048111) СНАПШОТА \t оснастка c7d617f9 \t т-3d335f6b \t \t завершены 2013-12-04T09: 24: 54 + 0000 \t 100% \t 2013-12-04: Ежедневное резервное копирование для sacht_VPC (VolID: vol-3db InstID: i-ed6) ' – user3086014

ответ

1

Его запах кода, который вы должны выполнить команду дважды.

Непонятно, что вам нужны только линии за последний день. Попробуйте это:

ec2-describe-snapshots | sort -rk 5 | awk ' 
    $1 != "SNAPSHOT" {next} 
    NR == 1 { split($5, a /T/); date = a[1]; } 
    $5 ~ date {print} 
' > "$EC2_HOME/SnapshotsLatest_$today_date" 

Если вы хотите снимки сегодня «s, еще проще

today=$(date +%F) 
ec2-describe-snapshots | sort -rk 5 | awk -v date=$today ' 
    $1 == "SNAPSHOT" && $5 ~ date {print} 
' > "$EC2_HOME/SnapshotsLatest_$today" 
Смежные вопросы