Клонировать Windows Server 2019 Standard - Unlicensed to Datacenter/Standard Licensed

У меня есть ОС для оценки Windows Server 2019, и период ее оценки истек, я выполнил несколько попыток активации (с лицензионным кодом и сервером kms), но они обе завершились неудачей.

Срок ее действия истек более 2 месяцев, теперь она отключается сама по себе несколько раз. Я использовал cscript и ipk для установки ключей, но это также не удалось. Машина является виртуальной машиной.

Необходимо клонировать его конфигурации и восстановить в Windows Server 2019 Datacenter. Как я могу достичь этого.

-121--309128- Оболочка Linux: Pipe stderr и stdout для одного файла И для отдельных файлов одновременно (с помощью tee?) Я хотел бы сформировать поток, который захватывает stdout для одного файла и stderr для другого файла И оба в третьем файле (так что полный вывод терминала как-то так: процесс...

Я хотел бы сформировать поток каналов, который захватывает stdout к одному файлу и stderr к другому файлу И оба в третьем файле (так что также полный вывод терминала в одном файле)

как-то так:

process ----+-- <stdout> --- + --- stdlog.txt 
            |                |
            |                }---- <terminal> --- alllog.txt
            |                |
            \-- <stderr> --- +---- errlog.txt 

Я знаю, что должен использовать тройник, но я не могу понять это. У вас есть решение? Баш/ш предпочитал...

Тхэнкс за любую помощь, я очень ценю это!!!

0
задан 5 January 2021 в 11:14
1 ответ

Во-первых: это не то, что я рекомендовал бы вам делать, добавление зарегистрированных сообщений с отметками времени и метками, такими как [INFO] и [ERROR] в одном файле или просто отметками времени в двух ваших файлах, вероятно, было бы лучше и надежнее. идея в долгосрочной перспективе. в то же время позволяя вам создать другой файл, который вы хотите, с помощью grep или сортировки.

К вашему вопросу: мне никогда не приходилось этого делать, но вам, вероятно, потребуется использовать именованные каналы. Непроверенный пример bash:

# Log one output type
function logger() {
    unique_file="$1"
    common_file="$2"
    # Tee reads from the function's standard input, writes to unique_file, appends to common_file, then outputs what was written
    tee "$unique_file" | tee -a "$common_file"
}

# Call your code's main function to start processing
main > >(logger info_log_file common_log_file) 2> >(logger error_log_file common_log_file >&2)

У вас может возникнуть соблазн использовать exec> "$ info_pipe" 2> "$ error_pipe" . Не делайте этого, иначе вы сгенерируете цикл, который заставит ваш файл журнала заполнить все доступное дисковое пространство

. Обратите внимание, что если ваш bash не поддерживает неявные именованные каналы (это должно быть, но я видел среды, которые этого не сделали), вы можете захотеть использовать их явно, вызвав mkfifo, однако это потребует дополнительных подключений:

# Log one output type
function logger() {
    unique_file="$1"
    common_file="$2"
    # Tee reads from the function's standard input, writes to unique_file, appends to common_file, then outputs what was written
    tee "$unique_file" | tee -a "$common_file"
}

# Setup logging
function prepare() {
    tmp_pipe_dir="$(mktemp -d)"
    error_pipe="$(mkfifo "$tmp_pipe_dir/error")"
    info_pipe="$(mkfifo "$tmp_pipe_dir/info")"
}

function cleanup() {
    rm -rf "$tmp_pipe_dir"
}

prepare
# Start logging, note that logger won't stop on its own. Removing the pipe files should do the trick
logger info_log_file common_log_file <"$info_pipe" &
logger error_log_file common_log_file <"$error_pipe" >&2 &
# Call your code's main function to start processing
main >"$info_pipe" 2>"$error_pipe"
cleanup
0
ответ дан 24 April 2021 в 02:16

Теги

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