dracut -crypt -ssh — это модуль dracut, который запускает ssh-сервер dropbear во время initramfs, поэтому вы можете войти по ssh, чтобы ввести парольную фразу и расшифровать корневую файловую систему. Я использую это на ряде серверов, разбросанных по всей планете, к которым у меня нет доступа к консоли, и это работает довольно хорошо.
some_command_that_takes_this_file_as_argument $(find. -iname "logA.log.$(date +%m%d%Y).[0-9]*" 2> /dev/null | sort -n | tail -1)
должно помочь
Редактировать:Если вы просто хотите использовать новейший файл журнала, вы можете сделать это еще проще:some_command_that_takes_this_file_as_argument $(ls -rt | grep ^logA.log. | tail -1)
Можно просто:
set -- logA.log."$(date +%m%d%Y)".*
eval "latest=\${$#}"
(или shift "$(($# - 1))"; latest=$1
, если у вас есть религиозные возражения против использования eval
, хотя конкретное использование eval
совершенно безопасно ).
Поскольку расширения glob сортируются лексически, учитывая ваш формат HHMMSS
, последнее в этом списке будет самым последним.
Сzsh
:
(){latest=$argv[-1];} logA.log.${(%):-%D{%m%d%Y}}.*
Или:
(){latest=$1;} logA.log.${(%):-%D{%m%d%Y}}.*([-1])
${(%):-%D{%m%d%Y}}
использует флаг расширения параметра %
для расширения %D{%m%d%Y}
в качестве подсказки. Конечно, вы можете заменить его на "$(date +%m%d%Y)"
, чтобы сделать его более разборчивым, хотя это потребует создания дополнительного процесса и выполнения отдельной утилиты.
В качестве альтернативы вы можете использовать встроенную команду strftime
(zsh
в модуле zsh/datetime
)как strftime -s today %m%d%Y
для заполнения переменной $today
этой отметкой времени.