Diese Seite erklärt die notwendigen Schritte, um von einem vorhandenen Newsserver mittels Checkgroups eine Kopie der vorhandenen Gruppen zu erstellen.
* actsync bzw. actsynd * Für `de.*`: die Checkgroups einspielen. Dazu bietet sich folgendes an:
su news cd /tmp wget http://www.dana.de/mod/checkgroups.txt /usr/lib/news/docheckgroups < /tmp/checkgroups.txt > /tmp/new.sh bash /tmp/new.sh
Pfade anpassen ist natürlich selbstverständlich. Wer, wie ich, die Ausführung für '''wget''' aus Sicherheitsgründen nur für '''root''' freigegeben hat, muss das Holen der checkgroups.txt Datei vor das su news legen.
'''Anmerkung:''' In einem öffentlichen Verzeichnis wie /tmp Dateien mit vorhersagbaren Namen anzulegen, ist ein Sicherheitsproblem.
Variante 1
Eine andere Version als Skript die zum Beispiel durch cron ausgeführt werden könnte:
#!/bin/bash cd /tmp wget http://www.dana.de/mod/checkgroups.txt echo "/usr/lib/news/bin/ctlinnd throttle maintenance" > /tmp/new.sh /usr/lib/news/bin/docheckgroups < /tmp/checkgroups.txt >> /tmp/new.sh rm /tmp/checkgroups.txt bash /tmp/new.sh rm /tmp/new.sh /usr/lib/news/bin/ctlinnd go maintenance
Variante 2
Dieser Variante kommt mit allen Hierarchien der Kategorie
"Reine Gruppenliste" und "Posting der Gruppenliste" zurecht
(siehe ["Checkgrouplinks"]). Die Kopfzeilen werden automatisch
abgeschnitten, falls vorhanden.
Aufgerufen wird das Skript mit einer Liste von URLs oder
Dateinamen, diese werden der Reihe nach abgearbeitet.
Beginnt ein Kommandozeilenargument mit "http:" wird es mit
'''wget''' heruntergeladen, ansonsten als Datei eingelesen.
#!/bin/bash CHECK=/usr/lib/news/bin/docheckgroups CTLINND=/usr/lib/news/bin/ctlinnd echo "$CTLINND throttle checkgroups" for i in "$@"; do if [ "${i#http://}" = "$i" ]; then cat "$i" else wget -q -O- "$i" fi | awk 'FNR==1&&/^[A-Za-z]+[: ]/{f=-1} /^[[:space:]]*$/{f++} {if(!f)print$0}' done | $CHECK | sed '/^exit\>/d' echo "$CTLINND go checkgroups"Angenommen, das Skript wird mit dem Dateinamen '''check''' abgespeichert, dann wird es in etwa so ausgeführt:
sh check http://www.usenet.dk/dk-admin/newsgroups http://www.usenet.at/checkgroups/checkgroups-latest | shOder auch so:
wget http://www.usenet.dk/dk-admin/newsgroups wget http://www.usenet.at/checkgroups/checkgroups-latest sh check newsgroups checkgroups-latest | sh
Wenn man das abschließende "''' | sh'''" durch "''' | less'''" ersetzt,
kann man sich die resultierenden Aktionen vorher einmal ganz unverbindlich ansehen.