Все, что тебе нужно было сделать, это сделать первый шаг
mdadm --manage /dev/md0 --fail /dev/sdc
На данный момент ваш массив RAID 5 работает в ухудшенном режиме, и вы можете заменить диск на новый.
К сожалению, похоже, что вы сократили эффективный размер вашего массива с 2 ТБ до 1 ТБ, уничтожив вторую половину вашей файловой системы. К счастью, вы говорите, что у вас есть резервные копии.
Я немного озадачен. С четырьмя дисками в конфигурации RAID5 у вас должно быть 3 ТБ. Но не видя результатов mdadm --examine
, я не уверен, что могу предложить вам что-то еще.
Вы можете использовать GNU sed -, используя модификаторe
(execute ):
e
This command allows one to pipe input from a shell command into pattern space. If a substitution was made, the command that is found in pattern space is executed and pattern space is replaced with its output. A trailing newline is suppressed; results are undefined if the command to be executed contains a NUL character. This is a GNU sed extension.
(источник)
но его полезность ограничена, так как он выполняет и заменяет все пространство шаблонов, а не определенные группы захвата. Так что вам придется прыгать через довольно уродливые обручи.
Пр.
$ echo 'lorem ipsum foobar' | sed '
s/\(lorem ipsum \)\(foobar\)/printf "%s%s" "\1" "$(echo "\2" | tr o a)"/e
'
lorem ipsum faabar
Насколько мне известно :нет.
Можно записать пространство шаблонов в файл, используя
sed '/example/w file'
, но не группу захвата. Вы можете выполнить внешнюю программу с помощью
sed 'e ls'
и вы можете прочитать файл с помощью
sed 'r file'
но я не вижу удобного способа сделать то, что вы просите. И, честно говоря, вы находитесь на границе полезности sed
здесь.
awk
может быть здесь немного более гибким, но это место, где perl
— ваш лучший вариант, как уже предложил @ikkachu в своем комментарии.
Вкратце о том, насколько это тривиально вperl
:
while (<>){
if (/(.*)(pattern)(.*)/){
$pre=$1;
$pat=$2;
$post=$3;
$repl=`filter_pgm $pat`;
print $pre. $repl. $post;
}
else {
print;
}
}
(для тех, кто больше разбирается в Perl :Я знаю, что это уродливо и, возможно, потребуется немного полировки перед запуском в производство)