Использование толькоawk
:
function list_insert (value, id, tmp) {
for (i = 1; i <= list_length; ++i)
if (value > value_list[i]) {
tmp = value_list[i]
value_list[i] = value
value = tmp
tmp = id_list[i]
id_list[i] = id
id = tmp
}
}
BEGIN {
FS = "[= ]"
list_length = 3
}
$1 == "Req_id" { id = $2 }
$1 == "Time_taken" { list_insert($2, id) }
END {
printf("Below Request Id took more then expected\n")
for (i = 1; i <= list_length; ++i)
printf("Request id %d, time taken %d sec\n", id_list[i], value_list[i])
}
Эта программа поддерживает два массива, value_list
и id_list
, оба имеют длину list_length
. Массив value_list
отсортирован и содержит значения времени, а массив id_list
содержит идентификаторы запросов, соответствующие значениям в первом списке.
Функция list_insert
вставляет новое значение и идентификатор в два массива таким образом, чтобы порядок массива value_list
сохранялся (она находит правильное место для вставки, а затем перемешивает оставшиеся элементы в направлении конец ).
Остальная часть программы считывает данные как разделенные новой строкой -записи полей, разделенных =
или пробелами. При обнаружении идентификатора запроса он сохраняется в id
, а при обнаружении записи «затраченного времени» этот идентификатор и значение затраченного времени вставляются в массивы.
В конце два массива используются для создания вывода.
Проверка:
$ awk -f script.awk file
Below Request Id took more then expected
Request id 3456, time taken 200 sec
Request id 3001, time taken 15 sec
Request id 1234, time taken 10 sec
Нет, между паролем учетной записи и ключом ssh нет никакой связи.
Вы можете войти в учетную запись с помощью ssh с помощью ключа, даже если у нее нет пароля.
Для обновленного вопроса да, введите:
su YOURUSERNAME
, затем попробуйте, если вы помните свой пароль
Ключ SSH полностью независим от пароля. Знание ключа не поможет подобрать пароль.
Если вы являетесь пользователем root на сервере, вы можете получить хэш пароля. Он находится в /etc/shadow
, если это локальная учетная запись, или его можно получить из сетевой базы данных, такой как LDAP. В Linux попробуйте sudo getent shadow $USER
. Получив хэш пароля, вы можете попробовать его в автономном режиме. Если у вас есть только несколько вариантов пароля, вы можете использовать этот один вкладыш -, где $6$stuff$more.stuff
— второе поле, разделенное:
-в /etc/shadow
:
perl -l -pe '$_ = crypt $_, q:$6$stuff$more.stuff:'
Если вам нужна более грубая -сила, поищите программное обеспечение для управляемой атаки на пароль. Я недостаточно знаком, чтобы давать рекомендации.
Конечно, если вы являетесь пользователем root на сервере, вы также можете изменить пароль.