G2toG1移行スクリプト
現在は、urcallに個人コールだった場合は全て、10分間、G1に移行してしまうため、G1からG2に戻るまでの約10分間は、G2側に接続できない。
そこで改善策を検討。※つまりG1移行の条件付けをする
- urcall が"J" または"7" で始まる局、尚且つ、RPT1/RPT2がG1レピーター*1であり、RTP2の末尾文字が"G"の場合にG1へ移行する。
- dplusのヘッダー例
"type=XX"のXX桁数により、切り取る位置が異なる。
0x0000: 4500 00d9 0000 4000 4011 7c11 0a00 0002 E.....@.@.|.....
0x0010: 4016 73eb 4e21 4e22 00c5 bed9 bdc0 1000 @.s.N!N"........
0x0020: 6470 6c75 7320 322e 3267 3a67 7763 616c dplus.2.2g:gwcal
0x0030: 6c3d 4a50 3159 4a51 2020 3a74 696d 653d l=JP1YJQ..:time=
0x0040: 3133 3235 3331 3533 3033 2e37 3837 3232 1325315303.78722
0x0050: 323a 7479 7065 3d31 363a 6d6f 6475 6c65 2:type=16:module
0x0060: 6964 3d30 313a 7374 7265 616d 6964 3d64 id=01:streamid=d
0x0070: 6665 303a 6d79 6361 6c6c 3d4a 4831 424c fe0:mycall=JH1BL
0x0080: 5420 4e3a 6d79 7375 6666 6978 3d44 5641 T.N:mysuffix=DVA
0x0090: 503a 7572 6361 6c6c 3d43 5143 5143 5120 P:urcall=CQCQCQ.
0x00a0: 203a 7270 7431 3d4a 4831 424c 5420 4e3a .:rpt1=JH1BLT.N:
0x00b0: 7270 7432 3d52 4546 3030 3820 423a 6d73 rpt2=REF008.B:ms
0x00c0: 673d 6777 6c69 6e6b 2076 2f64 2065 6e64 g=gwlink.v/d.end
0x00d0: 2031 343a 6470 6c75 73 .14:dplus
-------------------------------------------------------------------
0x0000: 4500 00d2 0000 4000 4011 7c18 0a00 0002 E.....@.@.|.....
0x0010: 4016 73eb 4e21 4e22 00be bed2 b6c0 1000 @.s.N!N"........
0x0020: 6470 6c75 7320 322e 3267 3a67 7763 616c dplus.2.2g:gwcal
0x0030: 6c3d 4a50 3159 4a51 2020 3a74 696d 653d l=JP1YJQ..:time=
0x0040: 3133 3235 3331 3437 3134 2e30 3833 3337 1325314714.08337
0x0050: 323a 7479 7065 3d32 3a6d 6f64 756c 6569 2:type=2:modulei
0x0060: 643d 3030 3a73 7472 6561 6d69 643d 3030 d=00:streamid=00
0x0070: 3030 3a6d 7963 616c 6c3d 4a47 3156 574c 00:mycall=JH1BLT
0x0080: 2020 3a6d 7973 7566 6669 783d 2020 2020 ..:mysuffix=....
0x0090: 3a75 7263 616c 6c3d 2020 2020 2020 2020 :urcall=........
0x00a0: 3a72 7074 313d 4a50 3159 4a51 2041 3a72 :rpt1=JP1YJQ.A:r
0x00b0: 7074 323d 2020 2020 2020 2020 3a6d 7367 pt2=........:msg
0x00c0: 3d55 7365 7220 7570 6461 7465 3a64 706c =User.update:dpl
0x00d0: 7573 us
- g2g1_grep.sh (2011 12/30 )
#!/bin/bash
while :
do
FLAG=`/usr/sbin/tcpdump -vv dst host xx.xx.xxx.xxx -nXs 800 -c 1`
echo "$FLAG"
DISCO=`echo "$FLAG" | grep -e "disconne"`
URCALL=`echo "$FLAG" | grep -e "urcall" | cut -b60-69`
TYPE=`echo "$FLAG" | grep -e "type" | cut -b62-67`
echo "$TYPE"
if test "$DISCO" = "" && test "$URCALL" = "........"; then
date >> log01
if test $TYPE = "odulei" ; then
MYCALL=`echo "$FLAG" | grep -e "mycall" | cut -b62-67`
URCALL=`echo "$FLAG" | grep -e "urcall" | cut -b60-69`
RPT1=`echo "$FLAG" | grep -e "pt1=" | cut -b58-65`
RPT2=`echo "$FLAG" | grep -e "pt2=" | cut -b56-63`
fi
if test $TYPE = "module" ; then
MYCALL=`echo "$FLAG" | grep -e "mycall" | cut -b63-68`
URCALL=`echo "$FLAG" | grep -e "urcall" | cut -b61-68`
RPT1=`echo "$FLAG" | grep -e "pt1=" | cut -b59-66`
RPT2=`echo "$FLAG" | grep -e "pt2=" | cut -b57-64`
fi
date; echo "$MYCALL"; echo "$URCALL"; echo "$RPT1"; echo "$RPT2"
DT=`date`
echo $DT $MYCALL $URCALL $RPT1 $RPT2 >>trace.log
H_UR=`echo "$URCALL" | cut -b1`
C_RPT1=`echo "$RPT1" | cut -b1-6`
C_RPT2=`echo "$RPT2" | cut -b1-6`
E_RPT2=`echo "$RPT2" | cut -b8`
RPT1_G1=`grep $C_RPT1 /root/G1_rpt.txt`
RPT2_G1=`grep $C_RPT2 /root/G1_rpt.txt`
if (test "$H_UR" = "J" || test "$H_UR" = "7") && test "$RPT1_G1" != "" && test "$RPT2_G1 " != "" && test "$E_RPT2" = "G"; then
echo "going to G1"; echo "to G1" >>trace.log
pkill -9 tcpdump
chkconfig --level 2 dstar_gw off
/etc/init.d/dstar_gw stop
/etc/init.d/dplus stop
if [ -f /dstar/dsgwd/dsgwd2 ]; then
mv /dstar/dsgwd/dsgwd2 /dstar/dsgwd/dsgwd
fi
sleep 10
/dstar/exec-gw
sleep 600
if [ -f /dstar/dsgwd/dsgwd ]; then
mv /dstar/dsgwd/dsgwd /dstar/dsgwd/dsgwd2
fi
pkill -9 exec-gw-nonstop
pkill -9 dsgwd
/sbin/chkconfig --level 2 dstar_gw on
/etc/init.d/dplus restart
/etc/init.d/dstar_gw start
echo "dsgwd starting"
/opt/products/dstar/dstar_gw/dsgwd/gwstart.sh
sleep 30
echo "Linking REFxxx A REFxxx B"
/root/lkref08
fi
fi
FLAG=""
done
- g2g1_grep.sh (2012 1/1)*2
#!/bin/bash
while :
do
FLAG=`/usr/sbin/tcpdump -vv dst host xx.xx.xxx.xxx -nXs 1000 -c 1`
echo "$FLAG"; pkill -9 tcpdump
DISCO=`echo "$FLAG" | grep -e "disconne"`
TYPE=`echo "$FLAG" | grep -e "type" | cut -b62-67`
if test $TYPE = "odulei" ; then
URCALL=`echo "$FLAG" | grep -e "urcall" | cut -b60-69`
fi
if test $TYPE = "module" ; then
URCALL=`echo "$FLAG" | grep -e "urcall" | cut -b61-68`
fi
echo "$TYPE urcall=$URCALL"
if test "$DISCO" = ""; then
if test "$URCALL" != "........" ; then
date >> log01
if test $TYPE = "odulei" ; then
MYCALL=`echo "$FLAG" | grep -e "mycall" | cut -b62-67`
URCALL=`echo "$FLAG" | grep -e "urcall" | cut -b60-69`
RPT1=`echo "$FLAG" | grep -e "rpt1=" | cut -b58-65`
RPT2=`echo "$FLAG" | grep -e "pt2=" | cut -b56-63`
fi
if test $TYPE = "module" ; then
MYCALL=`echo "$FLAG" | grep -e "mycall" | cut -b63-68`
URCALL=`echo "$FLAG" | grep -e "urcall" | cut -b61-68`
RPT1=`echo "$FLAG" | grep -e "rpt1=" | cut -b59-66`
RPT2=`echo "$FLAG" | grep -e "pt2=" | cut -b57-64`
fi
# date; echo "$MYCALL"; echo "$URCALL"; echo "$RPT1"; echo "$RPT2"
DT=`date`
nTIME=`echo "$DT" | cut -b12-16`
nDATA="$nTIME $MYCALL $URCALL $RPT1 $RPT2"
oDT0=`tail -1 /root/trace.log`
oDATA1=`echo "$oDT0" | cut -b11-15`
oDATA2=`echo "$oDT0" | cut -d " " -f 7,8,9,10`
echo "NewDATA=$nDATA"
echo "OldDATA=$oDATA1 $oDATA2"
if test "$nDATA" != "$oDATA1 $oDATA2"; then
echo "New DATA!!"
echo $DT $MYCALL $URCALL $RPT1 $RPT2 >>trace.log
fi
H_UR=`echo "$URCALL" | cut -b1`
C_RPT1=`echo "$RPT1" | cut -b1-6`
C_RPT2=`echo "$RPT2" | cut -b1-6`
E_RPT2=`echo "$RPT2" | cut -b8`
RPT1_G1=`grep $C_RPT1 /root/G1_rpt.txt`
RPT2_G1=`grep $C_RPT2 /root/G1_rpt.txt`
if (test "$H_UR" = "J" || test "$H_UR" = "7") && test "$RPT1_G1" != "" && test "$RPT2_G1" != "" && test "$E_RPT2" = "G"; then
echo "going to G1"; echo "going to G1..." >>trace.log
###### go to G1 ######
pkill -9 tcpdump
chkconfig --level 2 dstar_gw off
/etc/init.d/dstar_gw stop
/etc/init.d/dplus stop
if [ -f /dstar/dsgwd/dsgwd2 ]; then
mv /dstar/dsgwd/dsgwd2 /dstar/dsgwd/dsgwd
fi
sleep 10
/dstar/exec-gw
sleep 600
###### go to G2 ######
if [ -f /dstar/dsgwd/dsgwd ]; then
mv /dstar/dsgwd/dsgwd /dstar/dsgwd/dsgwd2
fi
pkill -9 exec-gw-nonstop
pkill -9 dsgwd
/sbin/chkconfig --level 2 dstar_gw on
/etc/init.d/dplus restart
/etc/init.d/dstar_gw start
echo "dsgwd starting"
/opt/products/dstar/dstar_gw/dsgwd/gwstart.sh
sleep 30
echo "Linking REFxxx A REFxxx B"
/root/lkref08
fi
fi
fi
FLAG=""
done