<div dir="auto">Hi<div dir="auto"><br></div><div dir="auto">В особо сложных случаях можно попробовать base64 encode для оригинального выражения, а в sudo декодировать и выполнять.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, 2 Jul 2021, 20:15 Volodymyr Litovka, <doka@funlab.cc> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div>
    <p><font face="Arial">Мне чё та лень придумывать аналог этого
        выражения в отсутствие psql, но попробуй декомпозировать длинную
        строку в два выражения - как минимум можно будет сузить диапазон
        поиска проблемы:</font></p>
    <p> max_conn=$(psql -qtAX -c "SELECT
      current_setting('max_connections')") \<br>
       psql -c "ALTER SYSTEM SET work_mem = $(awk '/MemTotal/ {print
      int(($2)*0.25/$max_conn)}' /proc/meminfo)"<br>
    </p>
    <p><br>
    </p>
    <div>On 02.07.2021 18:37, VASYL MELNYK
      wrote:<br>
    </div>
    <blockquote type="cite">
      
      <div dir="ltr">Всем привет
        <div><br>
        </div>
        <div>Дилетантсткий вопрос, раньше просто наваял бы скрипт на
          баше да и не думал, но тут надо именно одной строкой</div>
        <div><br>
        </div>
        <div>Есть такое выражение, вычисляет work_mem в зависимости от
          количества оперативки и макс коннекшин и прописывает в конфиг
          постгреса</div>
        <div><br>
        </div>
        <div>вот такая команда под юзером postgres выполняется</div>
        <div>psql -c "ALTER SYSTEM SET work_mem = $(awk '/MemTotal/
          {print int(($2)*0.25/'$(psql -qtAX -c "SELECT
          current_setting('max_connections')")')}' /proc/meminfo)"<br>
        </div>
        <div><br>
        </div>
        <div>Но если из судо это делать<br>
          sudo -iu postgres psql -c "ALTER SYSTEM SET work_mem = $(awk
          '/MemTotal/ {print int(($2)*0.25/'$(psql -qtAX -c "SELECT
          current_setting('max_connections')")')}' /proc/meminfo)"<br>
          <br>
          , то выдается ошибка, надо как эту команду экранировать, а я
          уже использовал одинарные кавычки и двойные в выражении и ума
          не приложу как это выражение экранировать.</div>
        <div><br>
        </div>
      </div>
      <br>
      <fieldset></fieldset>
      <pre>_______________________________________________
uanog mailing list
<a href="mailto:uanog@uanog.kiev.ua" target="_blank" rel="noreferrer">uanog@uanog.kiev.ua</a>
<a href="https://mailman.uanog.kiev.ua/mailman/listinfo/uanog" target="_blank" rel="noreferrer">https://mailman.uanog.kiev.ua/mailman/listinfo/uanog</a></pre>
    </blockquote>
    <pre cols="72">-- 
Volodymyr Litovka
  "Vision without Execution is Hallucination." -- Thomas Edison</pre>
  </div>

_______________________________________________<br>
uanog mailing list<br>
<a href="mailto:uanog@uanog.kiev.ua" target="_blank" rel="noreferrer">uanog@uanog.kiev.ua</a><br>
<a href="https://mailman.uanog.kiev.ua/mailman/listinfo/uanog" rel="noreferrer noreferrer" target="_blank">https://mailman.uanog.kiev.ua/mailman/listinfo/uanog</a></blockquote></div>