Гостевая установка KVM

Если известно, что время не превышает одного часа, можно просто добавить 60, если результат отрицательный. Тем не менее, это не способ сделать это в любом случае. Есть несколько моментов, которые я хотел бы поднять:

  1. НИКОГДА не разбирайте выходные данные ls, особенно не временной части. Это зависит от языка и может дать совершенно непредсказуемые результаты.
  2. Почему предполагается, что время составляет около часа и точно так же, как в минуты, если вы можете просто вычесть даты? Использовать unix timestamp - число секунд с начала света (1970). Это стандартный способ хранения времени.
  3. Просто запишите позвольте i++ и позвольте l = j-k , не используйте миллионы скобок
  4. Вы делаете $ l массив длины 1, а затем доступ $ i -й член. Вот почему это работает только для первой пары.
  5. Вы используете очень c-подобный стиль программирования. Используйте цикл формы для i в "$ {MMarray [@]}"; сделать... и просто сохраните предыдущий.
  6. Вы используете слишком много массивов и циклов, делайте все в потоке дат, это будет намного лучше. Так что практически все можно переписать.
  7. Вы понимаете, что среднее время просто сначала минус последнее деление на количество файлов минус 1 (количество расхождений)? Вам не нужно вычитать и снова складывать...

Что делать, если вы хотите получить все временные различия в секундах, по одному на строку:

find /some/location -type f -name '*your filter which files you want*' -printf '%T@\n' | sort -n | awk 'NR>1 { print  $1-previous } {previous = $1}'

Что он делает? find находит файлы и печатает метки времени unix. Если не указать -имя , то появится список всех событий. -type f означает только файлы, без каталогов. sort -n сортирует время численно. awk просто вычисляет и печатает различия.

Для среднего значения просто сохраните первую и последнюю дату. Например, для всех файлов в текущем каталоге:

find . -type f -printf '%T@\n' | sort -n | awk 'NR==1 { first = $1 } END{ print ($1-first)/(NR-1) }'

Результаты представляют собой десятичные числа в секундах, но вы можете просто записать int (($1-first )/( NR-1)) для целого числа или int (($1-first )/( NR-1) )/60 в течение минут.

-121--161401-

Вероятно, вы хотите завершить сеанс упорядоченным образом. Этот ответ в SuperUser, по-видимому, обеспечивает следующее: https://superuser.com/questions/395820/how-to-properly-end-a-kde-session-from-shell-without-root-privileges

-121--77171-

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

Я считаю, что этот выбор был связан с тем, что внутриядерная реализация доменных сокетов UNIX слишком отличается, чтобы позволить sane портирование на связь пользователя с ядром. Список протоколов для AF_NETLINK специально разработан для обеспечения иоктл-подобного управления. AF_UNIX даже не использует аргумент "protocol" для функции socket . И если они каким-то образом расширили определение, чтобы разрешить дополнительные протоколы,вероятно, он нарушит существующие приложения, и будет очень неловко в ядре перенаправлять новые протоколы на управляющий код ядра. Кроме того, существует опасность дублирования этих двух функциональных возможностей (особенно с учетом того, что изначально AF_UNIX не разрабатывалась с учетом этого).

И наконец... Доменные сокеты UNIX используют файловую систему в качестве пространства имен (хотя существует взлом, допускающий «анонимные» сокеты). Таким образом, они сразу доступны всем пользователям, которые имеют разрешения на этот сокет - для связи с ядром необходимо иметь всегда открытый «файл» где-то в файловой системе (sys, вероятно,?), который пользователи будут использовать для подключения к ядру.

Короче говоря, они просто предназначены для разных вещей. Даже если вы можете повторно использовать AF_NETLINK для двух процессов в пространстве пользователя (это делается по-другому, чем в AF_UNIX), обратное на самом деле не сработает.

0
29.04.2014, 09:10
2 ответа
[117082]Попробуйте вместо этого один из этих методов.[12215]Не будет автоматически открывать окно установки, вы можете подключиться после.[12216]Автоматически всплывет графический интерфейс, в котором вы можете взаимодействовать с установкой.[12217]Разница заключается в том, что [117650]-- noautoconsole[117651]. Вы также можете столкнуться с проблемой при использовании [117652]/home/ISO[117653]. Я использую Fedora, и на этой системе есть программное обеспечение под названием SELinux, которое блокирует KVM/QEMU от использования [117654]/home/ISO[117655], поэтому я обычно сохраняю [117656].iso[117657] файлов в разделе [117658]/var/lib/libvirt/images[117659].[12218]В Ubuntu App Armor эквивалентна SELinux, поэтому она может блокировать использование [117660]/home/ISO[117661]. [12219]Когда я пытаюсь использовать каталог, с которым SELinux не согласен, я получаю такой тип ошибки:[12220]Внутренний процесс ошибки ERROR прерван при подключении к монитору: char-устройство перенаправлено в /dev/pts/7 (ярлык charserial0). qemu-system-x86_64: -drive file=/home/saml/projects/machines/ISO/debian-live-7.4-amd64-lxde-desktop.iso,if=none,id=drive-ide0-1-0,readonly=on,format=raw: не смог открыть образ диска /home/saml/projects/machines/ISO/debian-live-7.4-amd64-lxde-desktop.iso: Разрешение отказано[12221]Ссылки[12222]Ubuntu 12.04 " Руководство по серверам Ubuntu " Виртуализация " libvirt[12223]KVM: Подключение к виртуальной машине(SSH, VNC, Console, virt-viewer и т.д.)[12224]
1
28.01.2020, 02:52

используйте метод ниже

virt-install -n vmname -r 2048 --os-type=linux --os-variant=ubuntulucid \
    --disk /kvm/images/disk/vmname_boot.img,device=disk,bus=ide,size=40,sparse=true,format=raw \
    -w bridge=br0,model=e1000 --vnc --noautoconsole \
    -c /home/ISO/ubuntu-12.04-server-i386.iso
0
28.01.2020, 02:52

Теги

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