Как динамически искать имя переменной оболочки

Я понимаю, что эта ветка довольно старая, но, тем не менее, очень уместная в любой установке сегодня и в будущем. В то время как все они предлагали отличные варианты для отслеживания дисковых свиней, мое внимание привлекло ваше утверждение: «... Я часто сталкиваюсь с трудностями...». Похоже, вам приходится часто бороться с этим симптомом. Я бы сделал шаг назад и посмотрел, как вы можете предотвратить это. Мера предосторожности будет состоять из двух этапов:

  1. Предупреждение
  2. Действие над файловой системой

Например, когда FS достигает 90%,вы можете настроить оповещение по электронной почте, чтобы информировать пользователей об этой ситуации. Или вы можете написать себе об этом по электронной почте. Задание cron может проверять состояние с интервалом в 5 -минут.

Затем, когда он достигает, скажем, 98%, вы можете запустить сценарий, чтобы установить FS только для чтения. Это не сильно повредит, так как скоро все пройдет. Но преимущество установки FS ro до 100% состоит в том, что пользователь (с )может удалять файлы при восстановлении записи. При этом в некоторых старых версиях Solaris есть ошибка, которая приводит к сбою системы в случае, если FS достигает 100%, но мы оставим это на другой день.

0
10.07.2019, 03:48
2 ответа

Вы можете использовать вспомогательную переменную для создания имени целевой переменной, а затем использовать косвенное обращение к переменной:

zmx_var=zmx_$1
echo -e "${!zmx_var} $tag $1${zmx_no_color}: $line"
1
28.01.2020, 02:18

В bash версии 4.4 (я думаю )и выше вы можете использовать "nameref"

$ foo_bar=hello
$ set -- bar
$ declare -n "var=foo_$1"
$ echo "$var"
hello
1
28.01.2020, 02:18

Теги

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