Как проверить, требует ли сервер перезагрузки после расширения диска

Ярлык Alt-c(bash)

С помощью bash, используя утилиту readline, мы можем определить последовательность клавиш, чтобы поместить слово calcв начало и заключить написанный текст в двойные кавычки:

 bind '"\ec": "\C-acalc \"\e[F\""'

Выполнив это, вы набираете 23 + 46 * 89, например, затем Alt-c , чтобы получить:

 calc "23 + 46 * 89"

Просто нажмите Enter, и математические вычисления будут выполнены функцией, определенной как calc, которая может быть как простой, так и намного более сложной:

 calc () { <<<"$*" bc -l; }

a (+ )Псевдоним

Мы можем определить псевдоним:

alias +='calc #'

Который прокомментирует всю набранную командную строку. Вы набираете:

 + (56 * 23 + 26) / 17

Когда вы нажмете ввод, строка будет преобразована в calc #(56 * 23 + 26) / 17и будет вызвана команда calc. Если calc это функция:

 calc(){ s=$(HISTTIMEFORMAT='' history 1);   # recover last command line.
         s=${s#*[ ]};                        # remove initial spaces.
         s=${s#*[0-9]};                      # remove history line number.
         s=${s#*[ ]+};                       # remove more spaces.
         eval 'bc -l <<<"'"$s"'"';           # calculate the line.
       }

 calc(){ s=$(history -1 |                          # last command(s)
             sed '$!d;s/^[ \t]*[0-9]*[ \t]*+ //'); # clean it up 
                                                   # (assume one line commads)
         eval 'bc -l <<<"'"$s"'"';                 # Do the math.
       }

zsh не допускает ни псевдонима +, ни символа #.

Значение будет напечатано как:

 $ + (56 * 23 + 26) / 17
 77.29411764705882352941

Требуется только +, строка заключена в кавычки (нет подстановок ), допустимы переменные оболочки:

 $ a=23
 $ + (56 * 23 + $a) / 17
 77.11764705882352941176

a (+ )Функция

С некоторыми ограничениями, это самое близкое, что я получил к вашему запросу с функцией (в bash):

+() { bc -l <<< "$*"; }

Что будет работать так:

$ + 25+68+8/24
93.33333333333333333333

Проблема в том, что синтаксический анализ оболочки нельзя избежать, и *(, например ), может быть расширен до списка файлов в pwd.

Если вы напишете командную строку без (пробелов ), вероятно, все будет в порядке.

Остерегайтесь писать такие вещи, как $(...), потому что они будут расширены.

Безопасное решение — заключать оцениваемую строку в кавычки.:

$ + '45 + (58+3 * l(23))/7'
54.62949752111249272462

$ + '4 * a(1) * 2'
6.28318530717958647688

Что всего на на два символа короче вашего _bc "6/2", но +кажется мне более интуитивным.

0
07.02.2020, 21:23
1 ответ

Если вы используете LVM для расширения места на диске, вам не нужно будет перезагружаться, пока доступно место на физическом диске.

Когда вам нужно добавить диск в ESX, вам нужно только повторно просканировать шину SCSI (в GUEST ), чтобы отобразить диск. (без перезагрузки)

Например, на хосте ESX ()вы добавили на сервер НОВЫЙ диск 20G /dev/sdb. Теперь в GUEST вы можете повторно -просканировать шину SCSI без перезагрузки, чтобы отобразить диск.

В этом примере предполагается, что у вас есть только диск /dev/sda. Если у вас уже есть /dev/sdb, он будет отображаться как следующий /dev/sd? устройство.

again assume new drive is /dev/sdb/

Сначала получите номера хостов scsi.

#>ls /sys/class/scsi_host
Host0 Host1 Host2

Затем повторно просканируйте шину scsi с хостом 2, возвращенным сверху. (попробуйте Host1, если вы не можете найти его на Host2)

echo "- - -" > /sys/class/scsi_host/host2/scan

(fdisk теперь должен отображать дополнительные разделы /dev/sdb)

fdisk -l |grep sd
Disk /dev/sdb: 20.7 GB, 10737418240 bytes

Теперь вы можете использовать LVM для расширения логического тома и xfs _growfs для расширения пространства.

3
28.04.2021, 23:24

Теги

Похожие вопросы