Как в оболочке bash загрузить значение свойства из файла свойств (env )в переменную в оболочке bash?

ням -крон

Нет необходимости делать собственную запись в crontab для периодического запуска YUM. У YUM есть дополнительный пакет под названием yum-cron. В этом руководстве под названием:Как включить автоматические обновления безопасности в CentOS 7 с помощью yum -cron показано, как его настроить и использовать.

Сначала убедитесь, что он установлен:

$ sudo yum -y install yum-cron

Затем настройте его:

$ cat /etc/yum/yum-cron.conf
....
apply_updates = yes

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

.

$ sudo systemctl enable --now yum-cron

Что еще?

Имейте в виду, что выполнение всех ваших обновлений — это лишь малая часть того, что yum-cronможет сделать. Вы также можете настроить его для исключения определенных пакетов, с которыми вы бы не хотели иметь дело :

.

exclude = kernel*

Ссылки

1
01.09.2020, 05:18
3 ответа

Вы можете сделать это с помощью команды cut; имейте в виду, однако, что хранить пароли внутри скриптов может быть плохой идеей.

[ekaj@headdesk ~]$ cat vars
SA_PASSWORD=Password1!
[ekaj@headdesk ~]$ cat setvar.sh
#!/bin/bash
echo "MY_VAR is currently set to: $MY_VAR"
MY_VAR=$(grep SA_PASSWORD./vars | cut -d'=' -f 2-)
echo "MY_VAR is currently set to: $MY_VAR"
[ekaj@headdesk ~]$
[ekaj@headdesk ~]$./setvar.sh
MY_VAR is currently set to:
MY_VAR is currently set to: Password1!
[ekaj@headdesk ~]$

-f 2-печатает все поля после первого =, что может быть удобно, если ваш пароль содержит знак равенства.

0
18.03.2021, 23:08

У вас почти все получилось, попробуйте использовать расширенное регулярное выражение и шаблон просмотра позади, и только (и вам не нужен конвейер дляxargs):

MY_VAR=$(grep -Po '(?<=SA_PASSWORD=).*' tests/.makefile_test_env)

Это говорит:

  1. Создайте переменную оболочки с именем 'MY _VAR' и установите для нее все, что выходит из $ (), что является...
  2. grep с использованием -Pрегулярного выражения perl и -oвозвращает только совпадение для этого шаблона '...', который равен
  3. (?<=SA_PASSWORD=).*это означает соответствие любому символу любое количество раз .*, но только если символы непосредственно перед (?<=)первым .являются «SA _PASSWORD=» и не включают их как часть матч.
0
18.03.2021, 23:08

Если имя переменной не имеет значения, можно sourceего.

source tests/.makefile_test_env
echo $SA_PASSWORD # Prints Password1!

ПРЕДУПРЕЖДЕНИЕ:Выполнение исходного кода из ненадежного файла опасно. Вы выполняете сценарий оболочки, и этот сценарий может выполнять все, что вы могли бы сделать сами.

0
18.03.2021, 23:08

Теги

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