Хорошо, я сам только что нашел решение:
if ! output=$(rsync user@server:source target 2>&1); then
echo "$output"
fi
Вывод (stdout и stderr )сохраняется в переменной, которая выводится только в том случае, если код выхода не равен 0.
Не уверен, что есть лучший способ, но этот определенно работает для меня.
Фон
Пользователь на самом деле является учетной записью компьютера, а фактический rsync
вызывается через скрипт-оболочку, который принимает файл(/etc/machine.secret
)в качестве пароля. Сам скрипт запускается через cron
, поэтому мне пришлось найти способ получать почту тогда и только тогда, когда что-то пойдет не так.
Бездействие означает, что я получаю это сообщение об ошибке каждый раз, когда вызывается скрипт, выполнение довольно простого 2>/dev/null
означает, что я вообще не получаю никаких сообщений об ошибках, поэтому мне пришлось найти способ отфильтровать их. это конкретное сообщение.
You can try to do this
sudo nano /etc/mkinitcpio.conf
change:
HOOKS="base udev autodetect modconf block keyboard keymap filesystems fsck"
to:
HOOKS="base udev autodetect modconf block keyboard keymap filesystems fsck shutdown"
sudo mkinitcpio -P
sudo grub-mkconfig -o /boot/grub/grub.cfg
sudo systemctl restart systemd-coredump.socket
sudo systemctl reset-failed
Some users reported that it is a nvidia driver issue and they fixed it by removing the nvdia module in /etc/mkinitcpio.conf
Пожалуйста, попробуйте настроить intel_idle.max_cstate=1
на конфиге GRUB. Затем загрузитесь с Grub и посмотрите, сохраняется ли проблема.