Как подавить `gcloud вычислить вывод обновления правил брандмауэра, если ошибок нет?

У меня есть сценарий bash, работающий как cron задание, в котором есть несколько команд gcloud.

например.

gcloud compute firewall-rules update allow-ssh--source-ranges=$(echo "${mylocations[@]}" | tr ' ' ',')

У меня есть запись crontab, перенаправляющая stdout в / dev / null, так что я не получаю электронные письма каждый раз, когда он запускается.

Проблема в том, что Вывод gcloud отправляется на stderr, даже если ошибки нет, поэтому я получаю такие электронные письма:

НАЗВАНИЕ: Cron user @ host /home/user/bin/firewall-update.sh> / dev / null

Обновлено [https://www.googleapis.com/compute/v1/projects/project-name-4234534/global/firewalls/allow-sshpting.

...

Я попытался добавить - многословие = ошибка , критическое и none для команд gcloud, но они не действуют.

Итак, как мне остановить gcloud от отправки этого сообщения на stderr, когда он завершается успешно? Почему он вообще это делает?

0
задан 13 August 2020 в 20:55
2 ответа

Решение - чтобы добавить этот глобальный флаг, который применяется ко всем командам gcloud:

--no-user-output-enabled

    Print user intended output to the console. 
    Overrides the default core/user_output_enabled property value for this command invocation. 
    Use --no-user-output-enabled to disable.

https://cloud.google.com/sdk/gcloud/reference#--user-output-enabled

Фактические ошибки по-прежнему направляются в stderr.

0
ответ дан 4 January 2021 в 09:54

Я полагаю, он это делает, потому что вы перенаправляете в / dev / null ТОЛЬКО stdout. Cron также отправит вам электронные письма, если есть какие-то ошибки. Попробуйте также перенаправить в / dev / null stderr. Добавьте в конец вашей команды crontab что-то вроде этого:

> / dev / null 2> & 1

0
ответ дан 4 January 2021 в 09:54

Теги

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