На командной строке я могу перенаправить вывод в файл БЕЗ>,>>, или | операторы?

Страница LFS сообщает для установки DocBook SGML DTD 3.1 и 4.5, но документ Вы создаете очевидно DocBook SGML DTD 3.0 использования. Таким образом, необходимо получить ту версию (или скорректировать тестовый документ). Инструкции, которым Вы следуете, являются дефектными в том отношении.

1
25.07.2012, 18:53
2 ответа

Перенаправления интерпретируются оболочкой. При использовании API, выполняемые команды, вероятно, не выполняются через оболочку, но непосредственно (человек 3 системы по сравнению с человеком 3 должностных лица).

Для использования перенаправлений только запускают оболочку и используют перенаправления там, например:

/bin/sh -c "command > redirect"
8
27.01.2020, 23:12
  • 1
    Вы, возможно, должны были бы использовать /bin/sh -c 'command>redirect' если приложение бесхитростно и разделяет строку на отдельные аргументы в каждом пробеле. –  Gilles 'SO- stop being evil' 26.07.2012, 02:07

Если у Вас есть несколько VMs, Вы могли бы хотеть изучить программу, названную pdsh. Это может привыкнуть к командам выполнения (через ssh) на нескольких удаленных машинах (реальный или виртуальный) параллельно.

Это было записано для использования в кластерах HPC, но это - полезный инструмент системного администратора для работы с любой группой машин linux/unix.

https://computing.llnl.gov/linux/pdsh.html

например, если у меня есть набор машин, определенных с атрибутом, "вычисляют" (новинка - вычисляют узлы в развертывании OpenStack), я могу выполнить следующую команду для обнаружения, сколько узлов имеет 16 или больше свободных ядер (из 24 ядер на узел) и является этим способным к выполнению xxlarge VM с 16 ядрами:

# pdsh -g compute "ps hwwu -Ckvm | sed -e 's/.*-smp //' -e 's/,.*//' | 
awk '{VMS += 1 ; CPUS += \$1} END {print VMS, CPUS, 24-CPUS}'" | \
awk '$4 > 15 {print}' | sort -k4 -n
comp17: 6 8 16
comp19: 6 8 16
comp23: 6 8 16
comp26: 7 8 16
comp51: 7 8 16
comp56: 6 8 16
comp71: 7 8 16
comp78: 7 8 16
comp81: 6 8 16
comp11: 6 7 17
comp47: 6 7 17
comp79: 6 7 17
comp09: 5 6 18
comp29: 5 5 19
comp27: 4 4 20

(реальный вывод использования, имена хостов, отредактированные для анонимности)

Команда в двойных кавычках выполняется на удаленных машинах (правила заключения в кавычки оболочки применяются, следовательно \1$ в первом awk), и остаток (второй awk и вид) выполняется на локальной машине.

1
27.01.2020, 23:12
  • 1
    Иногда у меня есть к командам выполнения на госте VMs, которые еще не имеют IP-адресов, который исключает SSH. –  smcg 26.07.2012, 16:17

Теги

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