тире максимальная длина переменной в systemd

Предложенные ранее методы в моем случае не подошли. Вы можете попробовать этот, и он, возможно, будет более совершенным. Создайте файл с именем "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!'
5
14.05.2019, 11:08
1 ответ

Не столько ответ, сколько диагностика...

В моей системе, работающейdashv0.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среде и проверить результат.

0
27.01.2020, 20:43

Теги

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