inn2 batch creating cyclic buffers
From
go-while@21:1/5 to
All on Wed Jul 26 14:44:06 2023
inn2 batch creating cyclic buffers
cat storage.conf (debian11)
## $Id: storage.conf 7651 2007-08-20 10:28:34Z iulius $
##
## Rules for where INN should store incoming articles.
##
## This file is used to determine which storage method articles are sent
## to be stored and which storage class they are stored as. Each
## method is described as follows:
##
## method <methodname> {
## newsgroups: <wildmat>
## class: <storage class #>
## size: <minsize>[,<maxsize>]
## expires: <mintime>[,<maxtime>]
## options: <options>
## exactmatch: <bool>
## }
##
## See the storage.conf man page for more information.
##
## Only newsgroups, class, and (for CNFS, to specify the metacycbuff)
## options are required; the other keys are optional. If any CNFS
## methods are configured, you will also need to set up cycbuff.conf.
## By default, store everything in tradspool.
#method tradspool {
# newsgroups: *
# class: 0
#}
## Here are some samples for a CNFS configuration. This assumes that you
## have two metacycbuffs configured, one for text newsgroups and one for
## binaries. Cancel messages, which tend to be very high-volume, are
## stored in the binary metacycbuff as well. This assumes storeonxref is
## set to true in inn.conf.
## Pick off the binary newsgroups first.
#method cnfs {
# newsgroups: *.bina*,control.cancel
# class: 1
# options: BINARY
#}
## Put the remaining (text) groups in the other cycbuff.
#method cnfs {
# newsgroups: *
# class: 2
# options: TEXT
#}
method cnfs {
newsgroups: *
class: 201
options: LOW
size: 0,32000
}
method cnfs {
newsgroups: *
class: 202
options: MID
size: 32000,128000
}
method cnfs {
newsgroups: *
class: 203
options: BIG
size: 128000,256000
}
method cnfs {
newsgroups: *
class: 204
options: HUG
size: 256000,1000000
}
method cnfs {
newsgroups: *
class: 205
options: MEG
size: 1000000,15000000
}
# trash
method trash {
newsgroups: *
class: 255
}
### EOF storage.conf
^^^
^^^
^^^
^^^
^^^
following a bash example to create bunch of cyclic buffers
### inn2_cycbufs.sh
#
#!/bin/bash
exit 1
PREFIX=""
CYCBUFDIR=/var/spool/news/cycbuf
#CYCBUFDIR=/tank0/cycbufs/node02
STARTLOW=1; LOWBUFS=41; LOWSIZE=100; # 41x 100GB per cycbuf
STARTMID=1; MIDBUFS=30; MIDSIZE=100;
STARTBIG=1; BIGBUFS=3; BIGSIZE=100;
STARTHUG=1; HUGBUFS=2; HUGSIZE=100;
STARTMEG=1; MEGBUFS=1; MEGSIZE=100;
MODE="SEQUENTIAL"
#MODE="INTERLEAVE"
mkdir -vp "$CYCBUFDIR"
# function
allocate_cycbufs () {
test -z "$3" && echo "error allocate_cycbufs missing NAME, SIZE or CYCBUFDIR" && return
test ! $2 -ge 1 && echo "error allocate_cycbufs min size 1 GB" &&
return
NAME="$1"; SIZE_GB="$2";
test -e "$CYCBUFDIR/$NAME.cyc" && echo "exists:
$CYCBUFDIR/$NAME.cyc" && return
echo "allocating cycbuf $NAME $SIZE_GB GB"
let VAL="$SIZE_GB * 1024 * 1024";
dd if=/dev/zero bs=${VAL} count=1024 of="$CYCBUFDIR/$NAME.cyc" ||
return
# 'pv' prints writespeed
#dd if=/dev/zero bs=${VAL} count=1024 | pv > "$CYCBUFDIR/$NAME.cyc"
|| return
echo "cycbuff:$NAME:$CYCBUFDIR/$NAME.cyc:$VAL" >> /etc/news/cycbuff.conf.new
#echo "cycbuff:$NAME:$CYCBUFDIR/$NAME.cyc:$VAL"
}
i=$STARTLOW
let max="$STARTLOW+$LOWBUFS"
while [ $i -lt $max ]; do
allocate_cycbufs "${PREFIX}LOW$i" "$LOWSIZE" "$CYCBUFDIR"
let i="i+1"
done
i=$STARTMID
let max="$STARTMID+$MIDBUFS"
while [ $i -lt $max ]; do
allocate_cycbufs "${PREFIX}MID$i" "$MIDSIZE" "$CYCBUFDIR"
let i="i+1"
done
i=$STARTBIG
let max="$STARTBIG+$BIGBUFS"
while [ $i -lt $max ]; do
allocate_cycbufs "${PREFIX}BIG$i" "$BIGSIZE" "$CYCBUFDIR"
let i="i+1"
done
i=$STARTHUG
let max="$STARTHUG+$HUGBUFS"
while [ $i -lt $max ]; do
allocate_cycbufs "${PREFIX}HUG$i" "$HUGSIZE" "$CYCBUFDIR"
let i="i+1"
done
i=$STARTMEG
let max="$STARTMEG+$MEGBUFS"
while [ $i -lt $max ]; do
allocate_cycbufs "${PREFIX}MEG$i" "$MEGSIZE" "$CYCBUFDIR"
let i="i+1"
done
chown -v news:news $CYCBUFDIR -R
chmod -v 660 $CYCBUFDIR/*.cyc
# write cycbuf configs
i=$STARTLOW
let max="$STARTLOW+$LOWBUFS"
echo -n "metacycbuff:${PREFIX}LOW:" >> /etc/news/cycbuff.conf.new
while [ $i -lt $max ]; do
echo -n "${PREFIX}LOW$i," >> /etc/news/cycbuff.conf.new
let i="i+1"
done
echo ":$MODE" >> /etc/news/cycbuff.conf.new
i=$STARTMID
let max="$STARTMID+$MIDBUFS"
echo -n "metacycbuff:${PREFIX}MID:" >> /etc/news/cycbuff.conf.new
while [ $i -lt $max ]; do
echo -n "${PREFIX}MID$i," >> /etc/news/cycbuff.conf.new
let i="i+1"
done
echo ":$MODE" >> /etc/news/cycbuff.conf.new
i=$STARTBIG
let max="$STARTBIG+$BIGBUFS"
echo -n "metacycbuff:${PREFIX}BIG:" >> /etc/news/cycbuff.conf.new
while [ $i -lt $max ]; do
echo -n "${PREFIX}BIG$i," >> /etc/news/cycbuff.conf.new
let i="i+1"
done
echo ":$MODE" >> /etc/news/cycbuff.conf.new
i=$STARTHUG
let max="$STARTHUG+$HUGBUFS"
echo -n "metacycbuff:${PREFIX}HUG:" >> /etc/news/cycbuff.conf.new
while [ $i -lt $HUGBUFS ]; do
echo -n "${PREFIX}HUG$i," >> /etc/news/cycbuff.conf.new
let i="i+1"
done
echo ":$MODE" >> /etc/news/cycbuff.conf.new
i=$STARTMEG
let max="$STARTMEG+$MEGBUFS"
echo -n "metacycbuff:${PREFIX}MEG:" >> /etc/news/cycbuff.conf.new
while [ $i -lt $MEGBUFS ]; do
echo -n "${PREFIX}MEG$i," >> /etc/news/cycbuff.conf.new
let i="i+1"
done
echo ":$MODE" >> /etc/news/cycbuff.conf.new
# remove bad commas!!
sed 's/,:/:/g' -i /etc/news/cycbuff.conf.new
# creates overview buffers
OVDIR=/tank0/overview/node02
OVDIR=/var/spool/news/overview
OVBUFS=20;
OVSIZE=25;
i=0
let VAL="$OVSIZE * 1024 * 1024"; i=0;
while [ $i -lt $OVBUFS ]; do
dd if=/dev/zero bs=${VAL} count=1024 | pv > "$OVDIR/OV${i}"
echo "${i}:${OVDIR}/OV${i}:${VAL}" >> /etc/news/buffindexed.conf.new
let i="i+1"
done
chown news:news /var/spool/news/ -R
### EOF inn2-cycbufs.sh
^^^
^^^
^^^
^^^
^^^
# cycbuff.conf
cycbuff:LOW1:/var/spool/news/cycbuf/LOW1.cyc:104857600 cycbuff:LOW2:/var/spool/news/cycbuf/LOW2.cyc:104857600 cycbuff:LOW3:/var/spool/news/cycbuf/LOW3.cyc:104857600 cycbuff:LOW4:/var/spool/news/cycbuf/LOW4.cyc:104857600 cycbuff:LOW5:/var/spool/news/cycbuf/LOW5.cyc:104857600 cycbuff:LOW6:/var/spool/news/cycbuf/LOW6.cyc:104857600 cycbuff:LOW7:/var/spool/news/cycbuf/LOW7.cyc:104857600 cycbuff:LOW8:/var/spool/news/cycbuf/LOW8.cyc:104857600 cycbuff:LOW9:/var/spool/news/cycbuf/LOW9.cyc:104857600 cycbuff:LOW10:/var/spool/news/cycbuf/LOW10.cyc:104857600 cycbuff:LOW11:/var/spool/news/cycbuf/LOW11.cyc:104857600 cycbuff:LOW12:/var/spool/news/cycbuf/LOW12.cyc:104857600 cycbuff:LOW13:/var/spool/news/cycbuf/LOW13.cyc:104857600 cycbuff:LOW14:/var/spool/news/cycbuf/LOW14.cyc:104857600 cycbuff:LOW15:/var/spool/news/cycbuf/LOW15.cyc:104857600 cycbuff:LOW16:/var/spool/news/cycbuf/LOW16.cyc:104857600 cycbuff:LOW17:/var/spool/news/cycbuf/LOW17.cyc:104857600 cycbuff:LOW18:/var/spool/news/cycbuf/LOW18.cyc:104857600 cycbuff:LOW19:/var/spool/news/cycbuf/LOW19.cyc:104857600 cycbuff:LOW20:/var/spool/news/cycbuf/LOW20.cyc:104857600 cycbuff:LOW21:/var/spool/news/cycbuf/LOW21.cyc:104857600 cycbuff:LOW22:/var/spool/news/cycbuf/LOW22.cyc:104857600 cycbuff:LOW23:/var/spool/news/cycbuf/LOW23.cyc:104857600 cycbuff:LOW24:/var/spool/news/cycbuf/LOW24.cyc:104857600 cycbuff:LOW25:/var/spool/news/cycbuf/LOW25.cyc:104857600 cycbuff:LOW26:/var/spool/news/cycbuf/LOW26.cyc:104857600 cycbuff:LOW27:/var/spool/news/cycbuf/LOW27.cyc:104857600 cycbuff:LOW28:/var/spool/news/cycbuf/LOW28.cyc:104857600 cycbuff:LOW29:/var/spool/news/cycbuf/LOW29.cyc:104857600 cycbuff:LOW30:/var/spool/news/cycbuf/LOW30.cyc:104857600 cycbuff:LOW31:/var/spool/news/cycbuf/LOW31.cyc:104857600 cycbuff:LOW32:/var/spool/news/cycbuf/LOW32.cyc:104857600 cycbuff:LOW33:/var/spool/news/cycbuf/LOW33.cyc:104857600 cycbuff:LOW34:/var/spool/news/cycbuf/LOW34.cyc:104857600 cycbuff:LOW35:/var/spool/news/cycbuf/LOW35.cyc:104857600 cycbuff:LOW36:/var/spool/news/cycbuf/LOW36.cyc:104857600 cycbuff:LOW37:/var/spool/news/cycbuf/LOW37.cyc:104857600 cycbuff:LOW38:/var/spool/news/cycbuf/LOW38.cyc:104857600 cycbuff:LOW39:/var/spool/news/cycbuf/LOW39.cyc:104857600 cycbuff:LOW40:/var/spool/news/cycbuf/LOW40.cyc:104857600 cycbuff:LOW41:/var/spool/news/cycbuf/LOW41.cyc:104857600 cycbuff:MID1:/var/spool/news/cycbuf/MID1.cyc:104857600 cycbuff:MID2:/var/spool/news/cycbuf/MID2.cyc:104857600 cycbuff:MID3:/var/spool/news/cycbuf/MID3.cyc:104857600 cycbuff:MID4:/var/spool/news/cycbuf/MID4.cyc:104857600 cycbuff:MID5:/var/spool/news/cycbuf/MID5.cyc:104857600 cycbuff:MID6:/var/spool/news/cycbuf/MID6.cyc:104857600 cycbuff:MID7:/var/spool/news/cycbuf/MID7.cyc:104857600 cycbuff:MID8:/var/spool/news/cycbuf/MID8.cyc:104857600 cycbuff:MID9:/var/spool/news/cycbuf/MID9.cyc:104857600 cycbuff:MID10:/var/spool/news/cycbuf/MID10.cyc:104857600 cycbuff:MID11:/var/spool/news/cycbuf/MID11.cyc:104857600 cycbuff:MID12:/var/spool/news/cycbuf/MID12.cyc:104857600 cycbuff:MID13:/var/spool/news/cycbuf/MID13.cyc:104857600 cycbuff:MID14:/var/spool/news/cycbuf/MID14.cyc:104857600 cycbuff:MID15:/var/spool/news/cycbuf/MID15.cyc:104857600 cycbuff:MID16:/var/spool/news/cycbuf/MID16.cyc:104857600 cycbuff:MID17:/var/spool/news/cycbuf/MID17.cyc:104857600 cycbuff:MID18:/var/spool/news/cycbuf/MID18.cyc:104857600 cycbuff:MID19:/var/spool/news/cycbuf/MID19.cyc:104857600 cycbuff:MID20:/var/spool/news/cycbuf/MID20.cyc:104857600 cycbuff:BIG1:/var/spool/news/cycbuf/BIG1.cyc:104857600 cycbuff:BIG2:/var/spool/news/cycbuf/BIG2.cyc:104857600 cycbuff:BIG3:/var/spool/news/cycbuf/BIG3.cyc:104857600 cycbuff:HUG1:/var/spool/news/cycbuf/HUG1.cyc:104857600 cycbuff:HUG2:/var/spool/news/cycbuf/HUG2.cyc:104857600 cycbuff:MEG1:/var/spool/news/cycbuf/MEG1.cyc:104857600
metacycbuff:LOW:LOW1,LOW2,LOW3,LOW4,LOW5,LOW6,LOW7,LOW8,LOW9,LOW10,LOW11,LOW12,LOW13,LOW14,LOW15,LOW16,LOW17,LOW18,LOW19,LOW20,LOW21,LOW22,LOW23,LOW24,LOW25,LOW26,LOW27,LOW28,LOW29,LOW30,LOW31,LOW32,LOW33,LOW34,LOW35,LOW36,LOW37,LOW38,LOW39,LOW40,LOW41:
SEQUENTIAL metacycbuff:MID:MID1,MID2,MID3,MID4,MID5,MID6,MID7,MID8,MID9,MID10,MID11,MID12,MID13,MID14,MID15,MID16,MID17,MID18,MID19,MID20:SEQUENTIAL
metacycbuff:BIG:BIG1,BIG2,BIG3:SEQUENTIAL
metacycbuff:HUG:HUG1,HUG2:SEQUENTIAL
metacycbuff:MEG:MEG1:SEQUENTIAL
# EOF cycbuff.conf
^^^
^^^
^^^
^^^
^^^
enjoy!
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)