Можно попробовать использовать хуки preexec
и precmd
:
preexec(){ cmd=$1; }
precmd(){ if [ "$cmd" ]; then lcmd=$cmd; cmd=; else; echo " last was <$lcmd>"; fi; }
zsh$ :
zsh$
last was <:>
zsh$ pwd
/home2/ahq
Вы должны полностью прочитать подраздел Hook Functions
на справочной странице zshmisc(1)
, особенно часть об аргументах, которые передаются в preexec
.
Кроме того, вместо прямого определения функций ловушек вы можете использоватьadd-zsh-hook
:
autoload -Uz add-zsh-hook
add-zsh-hook -Uz precmd my_precmd
Для mdadm --create
и RAID 1 обычно первое устройство копируется на второе. Однако на это нет никаких гарантий.
В конце концов, mdadm --create
создает новый RAID с нуля без данных на нем , поэтому не имеет значения, в каком направлении копируются данные для начальной синхронизации. Любые данные, которые вы хотите там иметь, вы должны написать после создания.
Если вы хотите форсировать ситуацию, вы можете создать RAID-массив с пониженной производительностью, а затем добавить другой диск:
mdadm --create /dev/md100 --level=1 --raid-devices=2 missing /dev/sdy1
mdadm --manage /dev/md100 --add /dev/sdx1
Таким образом, синхронизация пойдет от /dev/sdy1
, являющегося единственным диском в RAID, к /dev/sdx1
, который был добавлен позже.
Даже в этом случае нельзя полагаться на то, какие данные будут на RAID.
Использование mdadm --create
для восстановления данных возможно, но только в том случае, если вы знаете, что делаете . В принципе, это можно заставить работать по обстоятельствам, оно не предназначено для этой цели.
В RAID 1 также есть возможность пометить отдельные диски как write-mostly
, что в основном позволит избежать чтения с этого диска в максимально возможной степени (, но не полностью ). Это может помочь компенсировать некоторое снижение производительности в массиве, где один диск заметно медленнее другого.