Files
ircnet.ipng.ch/cron/ripedb_ilines_update.cron
ircnet be934a26fe Fix two bugs in asset_ilines.py
- use .wrap, not .fill when printing AS-SET
- fix a bug when one does not add '-l' (LOCAL) asns, populate the LOCAL as-set with a string, not an int.


git-svn-id: svn+ssh://svn.ipng.nl/usr/share/subversion/repositories/ircnet.ipng.ch@58 c5d60b8d-fdcb-4146-b734-af4215e9eb71
2011-03-12 22:51:51 +00:00

92 lines
2.5 KiB
Plaintext

NAME="ripedb_ilines_update"
AUTHOR="Pim van Pelt"
MAILTO="pim@ipng.nl"
ESCALATE_MAILTO="pim@ipng.nl"
MASTERLOG="/home/ircd/cronscripts/logs/${NAME}.log"
PATH=/usr/local/bin:/usr/bin:/bin:/home/ircd/bin
INPUT_DELEGATED="/home/ircd/ircd/etc/ripedb/delegated-ripencc-latest"
OUTPUT_ROOT="/home/ircd/ircd/etc"
MANUAL_ASN_LIST="3303,12859" # Comma separated
do_country()
# $1=country $2=class $3=threshold
{
delegated_ilines.py -i $INPUT_DELEGATED -o ilines.$1.$$ -c $1 -y $2
[ ! -r ilines.$1.$$ ] && return -1
[ `wc -l ilines.$1.$$ | awk '{ print $1 }'` -lt $3 ] && {
warning "$1: File too short, less than $3 lines"
rm -f -- ilines.$1.$$
return -2
}
mv ilines.$1.$$ $OUTPUT_ROOT/include/ilines.$1.conf
return 0
}
do_asn()
# $1=asn(s) $2=class $3=threshold
{
asset_ilines.py -a '' -o ilines.asn.$$ -l $1 -y $2
[ ! -r ilines.asn.$$ ] && return -1
[ `wc -l ilines.asn.$$ | awk '{ print $1 }'` -lt $3 ] && {
warning "$1: File too short, less than $3 lines"
rm -f -- ilines.asn.$$
return -2
}
mv ilines.asn.$$ $OUTPUT_ROOT/include/ilines.asn.conf
return 0
}
do_asset()
# $1=as-set(s) $2=class $3=threshold
{
asset_ilines.py -l '' -o ilines.as-set.$$ -a $1 -y $2
[ ! -r ilines.as-set.$$ ] && return -1
[ `wc -l ilines.as-set.$$ | awk '{ print $1 }'` -lt $3 ] && {
warning "$1: File too short, less than $3 lines"
rm -f -- ilines.as-set.$$
return -2
}
mv ilines.as-set.$$ $OUTPUT_ROOT/include/ilines.as-set.conf
return 0
}
function bitcron_main()
{
cd $OUTPUT_ROOT || fatal "No OUTPUT_ROOT directory"
echo "Gathering I-Lines for countries"
do_country ch 200 1200 || error "ilines.ch.conf failed"
do_country li 202 10 || error "ilines.li.conf failed"
echo "Gathering I-Lines for AS numbers"
ASN_LIST=$MANUAL_ASN_LIST
[ -n "$ASN_LIST" ] && ASN_LIST=$ASN_LIST","
ASN_LIST=$ASN_LIST$(awk -F'|' '$2=/(CH|LI)/ {
if ($3 == "asn") {
n++;
if (n>1) { printf "," };
printf $4
}
}' < $INPUT_DELEGATED )
do_asn $ASN_LIST 250 1300 || error "ilines.asn.conf failed"
echo "Gathering I-Lines for AS-SETs"
do_asset AS-IP-MAN-PEERING-TIX,AS-IP-MAN-PEERING-CIXP,AS-IP-MAN-PEERING-SWISSIX,AS-BIT 300 1300 || error "ilines.as-set.conf failed"
if [ $ERR -eq 0 ]; then
echo "This is what we've got:"
ls -l $OUTPUT_ROOT/include/ilines.*.conf
tail -n 1 $OUTPUT_ROOT/include/ilines.*.conf
echo "Committing to SVN"
svn commit -m "Automatic I-lines update by ilines_update.cron"
echo "HUPing ircd"
pkill -HUP ircd
else
fatal "Not submitting/HUPing. This needs human attention"
fi
}