system.runでawk sub()を使うと間違った書式で保存出来ない
お世話になっております。
Zabbix 5.4.3
監視対象CentOS7
有る設定ファイルのIPアドレスから/24を削除したい為にawk sub()を使いましたが
system.runにて保存しようとすると間違った書式として保存出来ずに困っています。
ターミナルでの動作:
$ echo 192.168.100.0/24 | awk '{ sub("/.*",""); print $0 }'
192.168.100.0
実際の書式はワンライナーでもっと長いのですが、問題の切り分けの為に簡略化しています。
これをsystem.runに入れて保存しようとすると
system.run[echo 192.168.100.0/24 | awk '{ sub("/.*",""); print $0 }']
間違った書式が"); print $0 }']"付近に見つかりました
普通にawkを使う分には問題ないのですが、subをセミコロンでprint $0に渡しているのが悪いのか
あれこれ試しましたが保存出来ずにいます。
アドバイス頂ければ助かります。
どうぞよろしくお願いします。
MSG - 投稿数: 61
本件別アプローチで解決しました。
サブネットの開始アドレスにpingを打ちたい事が目的でしたので、sipcalcを使いました。
$ sipcalc 192.168.100.0/24
-[ipv4 : 192.168.100.0/24] - 0
[CIDR]
Host address - 192.168.100.0
Host address (decimal) - 3232261120
Host address (hex) - C0A86400
Network address - 192.168.100.0
Network mask - 255.255.255.0
Network mask (bits) - 24
Network mask (hex) - FFFFFF00
Broadcast address - 192.168.100.255
Cisco wildcard - 0.0.0.255
Addresses in network - 256
Network range - 192.168.100.0 - 192.168.100.255
Usable range - 192.168.100.1 - 192.168.100.254
-
$ sipcalc 192.168.100.0/24 | grep Usable | awk '{ print $4 }'
192.168.100.1
grepとawkでUsable rangeから開始アドレスを切り出す事で解決しました。