Привязка команды к результату обновления LetsEncrypt

Проблема может быть связана с тем фактом, что команды эха должны записывать в mailx STDIN , но то, как вы делать это с помощью встроенных обратных кавычек может быть проблематично. Я бы попробовал передать тело сообщения по конвейеру mailx вместо этого:

...
then
    SEP="============================================"
    BODY="$CHKOUT\n$SEP\n$DFOUT"
    echo $BODY | mailx -s "Warning! : ..."
fi
0
15.02.2018, 11:23
1 ответ
~/dehydrated/dehydrated --cron --domain www.mydomain.com --out. --challenge http-01 | grep -q 'Skipping renew' || python manage.py email_hosts

Explicación

  • |:canalice la salida de su comando inicial al siguiente comando. Esto supone que escribe en la salida estándar.
  • grep -q 'Skipping renew':busque Skipping renewen la salida del comando antes de la tubería |. Actúa en modo "silencioso" -q, es decir, no muestra la coincidencia en la línea de comando.
  • ||Si el comando anterior falla (, es decir, no hay ninguna coincidencia ), ejecute el siguiente comando (, es decir, envíe un correo electrónico ). Esto es esencialmente lo contrario de &&. Si el comando anterior coincide con algo, entonces el comando de correo electrónico no se ejecutará.

Prueba

También puede probar la lógica del flujo de comandos con algo como lo siguiente:

echo 'Skipping renew' | grep -q 'Skipping renew' || echo Mailing
echo 'Something else' | grep -q 'Skipping renew' || echo Mailing
0
28.01.2020, 04:30

Теги

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