Предложенные ранее методы в моем случае не подошли. Вы можете попробовать этот, и он, возможно, будет более совершенным. Создайте файл с именем "dnfupdate-security", а затем вставьте строки python ниже или выполнить cmd:
cmd1: sudo touch /usr/bin/dnfupdate-security && sudo chmod +x /usr/bin/dnfupdate-security
cmd2: sudo gedit /usr/bin/dnfupdate-security
Далее вставьте код python в файл "dnfupdate-security", сохраните его
выполнить cmd: sudo dnfupdate-security
#!/usr/bin/python
"""
DESCRIPTION: Check for security updates and insert all the packages into "dnf update" as argument.
"""
import os
updateList = ''; x = ''
for x in os.popen("dnf -q updateinfo list sec | awk '{print $3}'"):
x = x.strip()
updateList = updateList+' '+x
if x != '':
os.system('dnf update '+updateList)
else:
print 'No security updates available at this time!'
Не столько ответ, сколько диагностика...
В моей системе, работающейdash
v0.5.8 -2.10 , переменная длина может быть довольно большой, по крайней мере 2^30 символов. Демонстрация путем удвоения длины переменной ${x}
до тех пор, пока ее длина в символах ${#x}
не превысит примерно 25% свободной памяти (, что проверяется специальной функциейfurp
):
Первый запускdash
:
dash
Затем, (внутри dash
), запустите этот код:
furp() { free | { read z; read a b c d; echo $((100*$c/$b)) ; } }
x=1
while [ `furp` -lt 25 ] ; do
x="${x}${x}"; echo ${#x}
done | tail -1
Вывод (в моей системе, может отличаться в зависимости от свободной памяти):
1073741824
Попробуйте поместить код, подобный приведенному выше, в свой сценарий, а затем запустить его в той же systemd
среде и проверить результат.