我有一个 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
答案1
iproute2 不会生成任何修改命令(如add
或del
)的输出,除非参数或内核出现问题(例如权限被拒绝)。在这种情况下,会写入错误消息stderr
(因此要捕获该消息,您必须将其添加2>>&1
到命令中,或者直接重定向stderr
到日志文件,甚至无需更改stdout
)。
$?
您可以通过退出状态(或通过命令之后)轻松检查命令是否成功,|| <whatever should happen if the command fails>
因为记录显示成功时为 0,失败时为 1 或 2(有关man ip
详细信息,请参阅)。
要记录/查看已执行的命令,你可能只需要依赖 shell(例如stackoverflow.com 上的这个问题),或者例如包装命令以便它首先回显到日志然后执行。