Нет необходимости делать собственную запись в 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*
Вы можете сделать это с помощью команды 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-
печатает все поля после первого =
, что может быть удобно, если ваш пароль содержит знак равенства.
У вас почти все получилось, попробуйте использовать расширенное регулярное выражение и шаблон просмотра позади, и только (и вам не нужен конвейер дляxargs
):
MY_VAR=$(grep -Po '(?<=SA_PASSWORD=).*' tests/.makefile_test_env)
Это говорит:
-P
регулярного выражения perl и -o
возвращает только совпадение для этого шаблона '...', который равен (?<=SA_PASSWORD=).*
это означает соответствие любому символу любое количество раз .*
, но только если символы непосредственно перед (?<=)
первым .
являются «SA _PASSWORD=» и не включают их как часть матч. Если имя переменной не имеет значения, можно source
его.
source tests/.makefile_test_env
echo $SA_PASSWORD # Prints Password1!
ПРЕДУПРЕЖДЕНИЕ:Выполнение исходного кода из ненадежного файла опасно. Вы выполняете сценарий оболочки, и этот сценарий может выполнять все, что вы могли бы сделать сами.