shell script - вычесть 1 из шестнадцатеричного mac адреса и добавить двоеточия

Когда процесс завершается, его память исчезает. Вы больше не можете найти его содержимое.

Некоторые следы процесса остались: Linux, как и большинство операционных систем, стирает страницы памяти во время выделения, а не во время освобождения. Другими словами, страницы стираются до того, как ядро ​​передаст их процессу, а не когда оно забирает их из процесса. Таким образом, судебно-медицинская экспертиза ОЗУ (либо путем доступа к / dev / mem (что, конечно, требует root) или с прямым доступом к оборудованию) обнаружит данные от завершенных процессов.

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

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

2
14.03.2016, 15:07
4 ответа

Использование sed :

machex2=$(echo $machex1 | sed 's/\(..\)/\1:/g;s/:$//' )
4
27.01.2020, 21:52

Используя POSIX Awk:

$ awk 'BEGIN{FS=OFS=":";$0=ARGV[1];$NF=sprintf("%X",("0x"$NF)-1);print}' C4:B9:83:7F:FF:AC
C4:B9:83:7F:FF:AB
0
27.01.2020, 21:52

bash shell script:

machex2=${machex1:0:2}:${machex1:2:2}:${machex1:4:2}:${machex1:6:2}:${machex1:8:2}:${machex1:10:2}

Это добавит ':' после двух шестнадцатеричных символов.

2
27.01.2020, 21:52

Используя bash, sed и gforth удалите двоеточия, вычтите 1, затем восстановите двоеточия:

mac="C4:B9:83:7F:FF:AC"
gforth -e 'hex '${mac//:}' 1 - . cr' -e bye | sed 's/../&:/g;s/:.$//'

Выход:

C4:B9:83:7F:FF:AB
1
27.01.2020, 21:52

Теги

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