Вы можете подавить стандартный вывод, перенаправив его в / dev / null:
commandname >/dev/null
Вы можете подавить stderr, перенаправив его в / dev / null:
commandname 2>/dev/null
Вы можете подавить как stdout, так и sderr, перенаправив оба на / dev / null:
commandname &>/dev/null
Однако эти методы будут подавлять любые подлинные ошибки, которые может выдавать ваш скрипт.
Несколько лучший вариант - позволить nohup запустить ваш скрипт и перенаправить вывод (и stdout, и stderr) в nohup.out:
nohup commandname
... таким образом ваш cron не будет получать никаких ошибок (и не будет отправлять вам сообщение об ошибке), но вы все равно можете периодически проверять содержимое nohup.out, просто убедитесь, что он создается в правильный каталог (может быть, у nohup есть для этого опции, но вам не нужно будет вызывать nohup из определенного каталога, в котором вы хотите создать nohup.out).
Но еще лучше было бы просто подавить эту единственную строку, используя grep:
commandname | grep -v 'ignored attr: {}abstract'
... (убедитесь, что вы используете правильную оболочку, экранирующуюся там, я просто поместил ее между апострофами '', но скобки {} могут нуждаться в другой экранировке) таким образом, вы только подавляете вхождения этого конкретного сообщения из stdout, но позволяете всем другие сообщения проходят. так что вы не получите электронное письмо, если ваш сценарий генерирует только это, но вы получите электронное письмо, если скрипт выведет другие сообщения - что, я думаю, очень близко к тому, что вы хотите.
Конечно, идеальным решением было бы углубиться в сценарий, найти и исправить причину сообщения.