У меня есть скрипт для strongswan, который добавляет такие политики: ip xfrm policy add dir in src $PLUTO_PEER_CLIENT dst 0.0.0.0/0 proto any varl src $PLUTO_PEER dst $PLUTO_ME proto esp mode tunnel reqid $PLUTO_REQID level required priority 1500 mark 0xfffe
Я хочу записать вывод этой команды в файл журнала, но, похоже, нет вывода или подробного переключателя?
это мне ничего не дает: ip xfrm policy add dir in src $PLUTO_PEER_CLIENT dst 0.0.0.0/0 proto any varl src $PLUTO_PEER dst $PLUTO_ME proto esp mode tunnel reqid $PLUTO_REQID level required priority 1500 mark 0xfffe >> /var/log/mylog.log
iproute2 не генерирует никаких выходных данных для изменения команд (например, add
или del
), если что-то не так с аргументами или ядром (например, в разрешении отказано). В этом случае сообщение об ошибке записывается на stderr
(чтобы запечатлеть это, вам нужно будет добавить 2>>&1
к вашей команде или напрямую перенаправить stderr
в файл журнала, даже не изменяя stdout
).
Вы можете легко проверить, была ли команда успешной, через статус выхода ($?
или через || <whatever should happen if the command fails>
после команды), поскольку это задокументировано как 0 в случае успеха и 1 или 2 в случае неудачи (см. man ip
подробнее).
И для регистрации / просмотра выполненной команды вы, вероятно, могли бы просто полагаться на оболочку (см., Например, этот вопрос на stackoverflow.com) или, например, оберните команду так, чтобы она сначала отображалась в журнале, а затем выполнялась.