Создайте новый vms с шаблоном с csv. Возможный?

Я подозреваю, что xargs является Вашим другом в этом экземпляре.

Полностью непротестированный:

 # cat file | xargs -IREPLACE rsync -v REPLACE server:/path

xargs возьмет данные из stdin и добавит его к командной строке один параметр на входную строку, пока это не заполнит длину командной строки и затем выполняет отдельную команду, пока все входные строки не были израсходованы. Это будет означать, что rsync мог работать несколько раз. Это не должно быть проблемой в этом случае, но могло быть с другими командами.

Обычно xargs просто прикрепляет аргументы на конец строки, но с rsync Вы хотели бы иметь место назначения в последний раз, таким образом, мы используем-I опцию заменить строку аргументами. (Это - бит, это не тестируется). Я также немного не уверен, что rsync сделает с путями, поэтому протестируйте это тщательно перед использованием его в гневе.

Если у Вас действительно есть проблема с xargs, Вы могли бы использовать что-то как:

for i in $(cat file); do rsync -v $i server:/path; done

Если Ваш файл больше, Вы, вероятно, хотите использовать в то время как/чтение цикл вместо этого. Это будет намного медленнее, поскольку это сделает единственный файл за один раз.

1
задан 17 March 2010 в 16:01
2 ответа

Это работало на меня:

param ( $CsvFile = "D:\foo\bar.csv" )

$worksheet = Import-Csv $CsvFile
$worksheet |ForEach-Object {
    New-VM -VMHost $_.VMHost `
        -Name $_.Name `
        -MemoryMB $_.MemoryMB `
        -DiskMB $_.DiskMB `
        -NetworkName $_.NetworkName `
        -Datastore $_.Datastore `
        -CD:$FALSE `
        -ResourcePool $_.ResourcePool `
        -Description $_.Description `
        -GuestId $_.GuestId `
        -NumCPU $_.NumCPU
}
1
ответ дан 4 December 2019 в 02:10

Проверьте мой сценарий здесь - http://poshcode.org/2051.

0
ответ дан 4 December 2019 в 02:10

Теги

Похожие вопросы