покажите последний раз измененный файл
Часто, я хочу посмотреть на новый файл. например, я мог бы быть в каталоге журналов и хотеть видеть, какой файл нов, потому что это - первое место, чтобы надеяться видеть, почему что-то не работает.
ls -lt | head
a, но громоздкий для ввода, таким образом, вот альтернатива:
# show the most recently changed file
latest()
{
if test $# -ne 0
then
/bin/ls -t -1 -d "$@" | head -n 1
else
/bin/ls -t -1 -d * | head -n 1
fi
}
Это также берет подстановочный знак или список файлов, например.
$ latest mail* syslog*
syslog
который особенно удобен, если все Ваши файлы журнала имеют метку времени на свое имя. Можно найти последний журнал для той программы, не волнуя, в каком формате метка времени находится.
$ touch -d 'Feb 1' mylog.20110201
$ touch -d 'Feb 2' mylog.20110202
$ touch -d 'Feb 3' mylog.20110203
$ latest mylog*
mylog.20110203
И вот расширенная версия, которая поддерживает a -<number>
опция распечатать <number>
строки вместо одной.
# show the most recently changed file
latest()
{
local count=1 # how many files to print
local promptlines=5 # how many lines to leave for the prompt
# when printing a screenful with -s
local usage="Usage: latest [-n <number>] [-s] [--] [pattern]"
while test $# -gt 0
do
case $1 in
# -- = stop processing options
--)
shift
break
;;
# -n <number> = <number> files
-n)
if test -n "$2"
then
count=$2
shift 2
else
echo "$usage" 1>&2
return 1
fi
;;
# -s = one screenful
-s)
count=$((LINES - promptlines))
shift
;;
# -<number> = <number> files
-[0-9]*)
count=${1#-}
shift
;;
# anything else starting with a minus is a usage error
-*)
echo "$usage" 1>&2
return 1
;;
*)
break
;;
esac
done
if test $# -ne 0
then
/bin/ls -t -1 -d "$@" | head -n $count
else
/bin/ls -t -1 -d * | head -n $count
fi
}
Быстрое решение обычно является тем, которые представляют менее служебное по сравнению с невиртуализированной средой. Если бы можно справиться его "не ограничение" разнообразия ОС, которое было бы внедрением виртуализации уровня ОС. С Linux, который переводит в OpenVZ/Virtuozzo, контейнеры Linux (lxc) и VServer.
Самый быстрый, при каких условиях? С аппаратной виртуализацией скорость должна быть идентичной на всех платформах виртуализации.
Поэтому единственной вещью, что необходимо рассмотреть поиск, является аппаратная поддержка виртуализации в программном обеспечении.
Насколько я знаю, Virtualbox еще не поддерживает аппаратную виртуализацию IOMMU. KVM, VMware и Xen должны. Xen и VMware должны быть единственными, поддерживающими IOMMU на видеокартах (с отличающимися уровнями успеха).
Я все еще полагаю, что это - XEN. Я когда-то имел разговор с RH-предпродажным парнем и спросил, почему они выгнали XEN в пользу KVM. Он сказал, что KVM, по крайней мере, с такой скоростью, как XEN. Я попросил, чтобы он отправил мне доказательство - ничто не возвратилось...
Я также не соглашаюсь с уровнем ОС. Виртуализация основанная на гипервизоре без операционной системы имеет, по моему скромному мнению, меньше служебное, чем это. Таким образом, PV XEN DomU почти так же хорош как чистый металл.
Позвольте мне привести очень конкретный пример для основного вопроса: виртуализировать другую ОС поверх Linux, где работает решение по виртуализации.
Только представьте себе этот сценарий:
При таком сценарии я думаю, какое решение по виртуализации позволит мне сделать все за меньшее время.
Предположим, что время, которое мне нужно сделать в гостевой системе, не учитывается, так как это ручная задача и т. д.; что отдыхает? Всего три вещи:
Теперь предположим, что вы такой же параноик, как и я, и что Гость находится в «неизменяемом» состоянии, поэтому при каждой загрузке все, что вы сделали при предыдущей загрузке, теряется. Всегда загружайтесь одинаково, если Windows UpDates вошли, они ничего не делают (при загрузке состояния дисков возвращаются обратно в «неизменяемое» состояние )и т. д. Что остается? Только две вещи:
Итак, снова главный вопрос: какое решение для виртуализации сделает это быстрее?
Чтобы привести пример того, что я знаю и использовал (QEMU и VirtualBox):
Итак, еще раз, когда два решения виртуализации могут запускать один и тот же гостевой компьютер и позволяют вам выполнять одну и ту же задачу на гостевом компьютере... какое из них быстрее? или лучший вопрос, с каким из них мне нужно меньше времени для загрузки того же гостя и т. д.?
Для ясности, типичный пример для разработчика:
Представьте себе версии Windows от Win95, 98, ME, 2000, XP, Vista, 7, 8, 8.1, 10 и все подверсии 10 (1507, 1511, 1604, 1608, 1709... и так далее, а также со всеми уровнями обновлений Windows и т. д. и для каждого на Home, Pro, Enterprise и т. д. ).
Это усложняет задачу тестирования нового EXE-файла в более чем нескольких десятках тысяч виртуальных гостевых версий Windows.
Представьте себе реальную задачу (тестирование нового EXE-файла )занимает чуть меньше минуты (просто запустите и протестируйте новые дополнительные функции EXE-файла ), но это должно быть выполнено в течение почти миллиона комбинаций версий Windows, обновлений и т. д.
Для каждой комбинации необходимо выполнить ЗАГРУЗКУ определенного уровня исправления версии Windows и т. д., эта ЗАГРУЗКА подразумевает время, которое может составлять от менее одной минуты до более десяти минут... да, я знаю миллион *1 минута = миллиону минут (около 694,4 дней )...это всего лишь простой пример, показывающий соотношение времени BOOT и времени TEST.
Теперь, если решение виртуализации заставляет этот GUEST загружаться в 99,8 % случаев, чем другое решение виртуализации (, на самом деле почти то же время ), что вы выигрываете 1,5 дня... и это всего лишь 0,2 %.... представьте, что это 5% (не представьте, вы выиграете больше месяца времени 34,27 дня ).
Итак, вопрос в том, какое решение виртуализации позволяет быстрее запускать гостевую систему? НЕТ, это следует понимать как то, с каким решением для виртуализации гость справится с задачей за меньшее время.
Просто пример, который я знаю:
Это увеличение на 37,5%, что следует учитывать. Вернемся к примеру тестирования EXE на миллионе виртуальных машин... что сэкономит вам 260 дней работы.
Я думаю, тот, кто спросит (, а также меня ), что нужно знать, будет быстрее. Поскольку некоторые из них являются «платными», а некоторые очень дорогими (>1000€ ), каждый человек в мире не может провести тесты, необходимые для сравнения их всех.
А теперь личное мнение... VirtualBOX - это черепаха... Та же самая Windows 10 (чистая установка с USB -ISO )на реальном оборудовании по сравнению с VirtualBOX загружает Windows 10 за несколько секунд по сравнению с три-четыре минуты... но опять же, это не сравнение реального оборудования с виртуализированным, это сравнение виртуализированного с «A» и виртуализированного vesus с «B».
Я много искал в Интернете и не нашел никакого сравнения времени загрузки гостевой ОС Windows по сравнению с решениями виртуализации.
Другое дело — запуск в виртуализированной среде базы данных и т. д. Поскольку у меня нет опыта в этом, я не могу об этом говорить.
О чем я могу говорить (, так как мне нужно тестировать новые EXE-файлы на всех возможных Winodws )о времени ЗАГРУЗКИ на VirtualBOX... это очень, очень медленно... но так как мне нужно передать гостю несколько USB (ключей )и карт PCIe, ключей параллельного порта ()и т. д. и в бесплатном -платном... я застрял на VirtualBOX.
Надеюсь, это сосредоточит внимание на реальном тексте вопроса... какое решение виртуализации позволяет гостю выполнять работу за меньшее время.