8

У меня есть cronjob, который выполняет некоторые задачи, и в начале сценария он выполняет вызов ssh-add (он не запускается как пользователь с соответствующим ключом, поэтому он нуждается в добавлении, и в будущем он вполне может использовать ключ развертывания, определенный в управлении версиями). Это выглядит примерно так:

ssh-agent bash -c "ssh-add /home/tomjn/.ssh/id_rsa; etc... "

Я хочу заставить его замолчать, так как этот cronjob выполняется регулярно, и у меня в почтовом ящике много писем, которые совершенно бесполезны для меня, утверждая, что да, ключ был добавлен. Я хочу получать электронные письма только тогда, когда что-то идет не так, как, например, зависание удаленного соединения git pull и т.д., что действительно происходит.

Итак, TLDR, я продолжаю видеть это:

Идентификация добавлена: /home/tomjn/.ssh/id_rsa (/home/tomjn/.ssh/id_rsa)

Как мне заткнуться?

Я пробовал такие вещи, как:

ssh-add /home/tomjn/.ssh/id_rsa > /dev/null

Но безрезультатно. Страница man не указывает на наличие параметра --quiet Могу ли я сделать что-то еще, чтобы отключить вывод?

1 ответ1

12

Выходные данные команды ssh-add находятся в STDERR. Вам нужно перенаправить STDERR в /dev /null, чтобы подавить вывод:

mtak@frisbee:~$ ssh-add .ssh/id_rsa 2>/dev/null
mtak@frisbee:~$ 

или альтернативно подавить все выходные данные, завершив команду >/dev/null 2>&1

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .