FreeBSD и rc.d скрипты
Добавлено: 2009-06-29 9:07:27
Доброго времени суток. Накатал на основе имеющихся в системе свой скрипт, который конфигурит узлы netgraph для экспорта netflow статистики. Скрипт следующего вида:
Прописал его в rc.conf
Но при загрузке системы скрипт не отрабатывает, то есть ноды не создаются
. В чем косяк, не подскажете?
Код: Выделить всё
#!/bin/sh
. /etc/rc.subr
name="ng_netflow_em2"
rcvar=`set_rcvar`
start_cmd="ng_netflow_start"
stop_cmd="ng_netflow_stop"
load_rc_config $name
eval "${rcvar}=\${${rcvar}:-'NO'}"
ngctl="/usr/sbin/ngctl "
ng_netflow_start() {
echo "Setup ng_netflow on em2"
# 1. Create netflow peer and connect lower of em2 to iface0 of netflow
# 2. Give netflow at em2:lower name - netflow_em2_lower
# 3. Create netflow peer and connect it's out0 to exsisting netflow out0
# 4. Name it as netflow_em2_upper
# 5. Connect iface0 of netflow_em2_upper to em2 upper
# 6. Create ksocket node and connect export of netflow_em2_lower ot inet/dgram/udp
# 7. Create ksocket node and connect export of netflow_em2_upper ot inet/dgram/udp
# 8. Name ksocket nodes as inc and out _socket
# 9. Configure host of ksockets
# (netflow_em2_lower)
#em2:lower ---> . <--- iface0:netflow0 ---- > inet/dgram/udp:7777 --> flanker
# (incoming traffic) |
# | out0
# |
# |
# |
# |
# |
# |
# (outgoing traffic) | out0
#em2:upper ---> . <--- iface0:netflow1 ---- > inet/dgram/udp:7778 --> flanker
# (netflow_em2_upper)
${ngctl} -f- <<-SEQ
mkpeer em2: netflow lower iface0
name em2:lower netflow_em2_lower
mkpeer netflow_em2_lower: netflow out0 out0
name netflow_em2_lower:out0 netflow_em2_upper
connect netflow_em2_upper: em2: iface0 upper
mkpeer netflow_em2_lower: ksocket export inet/dgram/udp
mkpeer netflow_em2_upper: ksocket export inet/dgram/udp
name netflow_em2_lower:export inc_socket
name netflow_em2_upper:export out_socket
msg inc_socket: connect inet/10.10.1.61:7777
msg out_socket: connect inet/10.10.1.61:7778
SEQ
}
ng_netflow_stop() {
echo "Shutting down netflow peers on em2..."
${ngctl} -f- <<-SEQ
shutdown inc_socket:
shutdown out_socket:
shutdown netflow_em2_lower:
shutdown netflow_em2_upper:
SEQ
echo "Compeleted"
}
run_rc_command "$1"
Код: Выделить всё
[root@gw ~]# /usr/local/etc/rc.d/ng_netflow_em2 rcvar
# ng_netflow_em2
ng_netflow_em2_enable=YES