.serial file does not update when suck aborts
Support <[email protected]>
| Newsgroups | gmane.network.sn |
|---|---|
| Message-ID | <[email protected]> |
Nobody else complains about this, but I think
1) Everyone should see what I have to go through to avoid getting a bunch
(from 50 to 2500 per day) of "oops" messages when I run 'grep -c oops fetch'.
2) How I handle multiple newsfeeds.
I think fixing the .serial problem is a trivial programming task but it
remains not fixed. Please straighten me out if updating the .serial file
after each successfully downloaded article is other than trivial.
I do not mean for this to cause flame war / anger / hurt. I mean for this
to illustrate the lengths I must take because I cannot program.
Here's the script:
#!/bin/sh
# resurrect.sn v4.1. Modified 12 Dec 02 to update .serial during suck of
a.b.w.linux
# from every newsfeed. This occurs as the first (only for Teranews) sucked
# newsgroup. When that suck either finishes or fails, then we fall through into
# a suck of all the newsgroups, not updating a.b.w.l's .serial file.
# Run by cron every 20 minutes for user sn
# sn feeds duron.EXAMPLE.net and sql-server.MYDOMAIN.com
# news.iswest.com = 0 This has a 4.5Gb monthly limit.
# news.skypipeline.com = 1
# news.usenetserver.com = 2
# news.teranews.com = 3, now free.teranews.com This has a 50Mb daily limit.
# news.100proofnews.com = 4
# Is snget running? If so, do not interrupt it.
if ( ps xac | grep -q snget ); then
exit 0
else
# Otherwise, it died and I want it restarted
# Rebuild
/usr/lib/news/rebuild.sh 2>/dev/null
while [ -e /var/spool/news/.noservice ]; do
sleep 3
done
# Rotate (select the next server)
srv=`cat /var/spool/news/alt.binaries.warez.linux/server`
case "$srv" in
*0)
# Case 0: the prior server was 100Proofnews. Set up for Iswest.
cd /var/log/news
cat 100ProofNews >>fetch
gzip -c 100ProofNews >>100ProofNews.gz
echo -n "" >100ProofNews
cd /var/spool/news/alt.binaries.warez.linux
echo 1 >server
echo Iswest >servername
name=`cat servername`
cp .serial .serial.100
cp .serial.iswest .serial
rm .outgoing 2>/dev/null
ln -s ../.outgoing/news.iswest.com:119 .outgoing
cd ../alt.binaries.cd.image.linux
cp .serial .serial.100
cp .serial.iswest .serial
rm .outgoing
ln -s ../.outgoing/news.iswest.com:119 .outgoing
cd ../alt.binaries.cracks
cp .serial .serial.100
cp .serial.iswest .serial
rm .outgoing
ln -s ../.outgoing/news.iswest.com:119 .outgoing
cd ../alt.binaries.cracks.phrozen-crew
cp .serial .serial.100
cp .serial.iswest .serial
rm .outgoing
ln -s ../.outgoing/news.iswest.com:119 .outgoing
cd ../alt.binaries.warez.ibm-pc.dos
cp .serial .serial.100
cp .serial.iswest .serial
rm .outgoing
ln -s ../.outgoing/news.iswest.com:119 .outgoing
cd ../alt.linux.slakware
cp .serial .serial.100
cp .serial.iswest .serial
rm .outgoing
ln -s ../.outgoing/news.iswest.com:119 .outgoing
cd ../alt.os.linux.slackware
cp .serial .serial.100
cp .serial.iswest .serial
rm .outgoing
ln -s ../.outgoing/news.iswest.com:119 .outgoing
cd ../comp.os.linux.announce
cp .serial .serial.100
cp .serial.iswest .serial
rm .outgoing
ln -s ../.outgoing/news.iswest.com:119 .outgoing
cd ../comp.os.linux.hardware
cp .serial .serial.100
cp .serial.iswest .serial
rm .outgoing
ln -s ../.outgoing/news.iswest.com:119 .outgoing
cd ../comp.os.linux.networking
cp .serial .serial.100
cp .serial.iswest .serial
rm .outgoing
ln -s ../.outgoing/news.iswest.com:119 .outgoing
cd ../comp.os.linux.security
cp .serial .serial.100
cp .serial.iswest .serial
rm .outgoing
ln -s ../.outgoing/news.iswest.com:119 .outgoing
cd ../comp.os.msdos.desqview
cp .serial .serial.100
cp .serial.iswest .serial
rm .outgoing
ln -s ../.outgoing/news.iswest.com:119 .outgoing
echo -n "server Iswest = $srv " >>/var/log/news/fetch
echo -n "server Iswest = $srv " >>/var/log/news/$name
date >>/var/log/news/fetch
date >>/var/log/news/$name
# exit 0
# Just a.b.w.l to prevent resucking; note backgrounding:
# /usr/lib/news/snget -dd alt.binaries.warez.linux 2>>/var/log/news/fetch &
/usr/lib/news/snget -dd alt.binaries.warez.linux 2>>/var/log/news/$name &
sleep 120 # Make sure there are messages to get.
while ( ps xac | grep -q snget ); do # While snget is running,
PRV=`cat /var/spool/news/alt.binaries.warez.linux/.serial` # get the
recorded article number,
# CUR=`tail -n2 /var/log/news/fetch | awk
'/snfetch:alt.binaries.warez.linux:<- 220 / {print $3}'` # get the current
article number,
CUR=`tail -n2 /var/log/news/$name | awk
'/snfetch:alt.binaries.warez.linux:<- 220 / {print $3}'` # get the current
article number,
if [[ -n "$CUR" ]]; then # make sure that what we got really _is_ a number,
if [[ "$CUR" -gt "$PRV" ]]; then # and if this is a new article, then
echo $CUR >/var/spool/news/alt.binaries.warez.linux/.serial # save the
FUCKING new serial number, goddamnit!
fi
fi
sleep 30 # Wait for another article to arrive.
done # snget has stopped.
;;
*1)
# Case 1: the prior server was Iswest. Next SkyPipeline.
cd /var/log/news
cat Iswest >>fetch
gzip -c Iswest >>Iswest.gz
echo -n "" >Iswest
cd /var/spool/news/alt.binaries.warez.linux
echo 2 >server
echo Skypipeline >servername
name=`cat servername`
cp .serial .serial.iswest
cp .serial.skypipeline .serial
rm .outgoing 2>/dev/null
ln -s ../.outgoing/news.skypipeline.com:119 .outgoing
cd ../alt.binaries.cd.image.linux
cp .serial .serial.iswest
cp .serial.skypipeline .serial
rm .outgoing
ln -s ../.outgoing/news.skypipeline.com:119 .outgoing
cd ../alt.binaries.cracks
cp .serial .serial.iswest
cp .serial.skypipeline .serial
rm .outgoing
ln -s ../.outgoing/news.skypipeline.com:119 .outgoing
cd ../alt.binaries.cracks.phrozen-crew
cp .serial .serial.iswest
cp .serial.skypipeline .serial
rm .outgoing
ln -s ../.outgoing/news.skypipeline.com:119 .outgoing
cd ../alt.binaries.warez.ibm-pc.dos
cp .serial .serial.iswest
cp .serial.skypipeline .serial
rm .outgoing
ln -s ../.outgoing/news.skypipeline.com:119 .outgoing
cd ../alt.linux.slakware
cp .serial .serial.iswest
cp .serial.skypipeline .serial
rm .outgoing
ln -s ../.outgoing/news.skypipeline.com:119 .outgoing
cd ../alt.os.linux.slackware
cp .serial .serial.iswest
cp .serial.skypipeline .serial
rm .outgoing
ln -s ../.outgoing/news.skypipeline.com:119 .outgoing
cd ../comp.os.linux.announce
cp .serial .serial.iswest
cp .serial.skypipeline .serial
rm .outgoing
ln -s ../.outgoing/news.skypipeline.com:119 .outgoing
cd ../comp.os.linux.hardware
cp .serial .serial.iswest
cp .serial.skypipeline .serial
rm .outgoing
ln -s ../.outgoing/news.skypipeline.com:119 .outgoing
cd ../comp.os.linux.networking
cp .serial .serial.iswest
cp .serial.skypipeline .serial
rm .outgoing
ln -s ../.outgoing/news.skypipeline.com:119 .outgoing
cd ../comp.os.linux.security
cp .serial .serial.iswest
cp .serial.skypipeline .serial
rm .outgoing
ln -s ../.outgoing/news.skypipeline.com:119 .outgoing
cd ../comp.os.msdos.desqview
cp .serial .serial.iswest
cp .serial.skypipeline .serial
rm .outgoing
ln -s ../.outgoing/news.skypipeline.com:119 .outgoing
echo -n "server Skypipeline = $srv " >>/var/log/news/fetch
echo -n "server Skypipeline = $srv " >>/var/log/news/$name
date >>/var/log/news/fetch
date >>/var/log/news/$name
# exit 0
# Just a.b.w.l to prevent resucking; note backgrounding:
# /usr/lib/news/snget -dd alt.binaries.warez.linux 2>>/var/log/news/fetch &
/usr/lib/news/snget -dd alt.binaries.warez.linux 2>>/var/log/news/$name &
sleep 120 # Make sure there are messages to get.
while ( ps xac | grep -q snget ); do # While snget is running,
PRV=`cat /var/spool/news/alt.binaries.warez.linux/.serial` # get the
recorded article number,
# CUR=`tail -n2 /var/log/news/fetch | awk
'/snfetch:alt.binaries.warez.linux:<- 220 / {print $3}'` # get the current
article number,
CUR=`tail -n2 /var/log/news/$name | awk
'/snfetch:alt.binaries.warez.linux:<- 220 / {print $3}'` # get the current
article number,
if [[ -n "$CUR" ]]; then # make sure that what we got really _is_ a number,
if [[ "$CUR" -gt "$PRV" ]]; then # and if this is a new article, then
echo $CUR >/var/spool/news/alt.binaries.warez.linux/.serial # save the
FUCKING new serial number, goddamnit!
fi
fi
sleep 30 # Wait for another article to arrive.
done # snget has stopped.
;;
*2)
# Case 2: the prior server was SkyPipeline. Next UseNetServer.
cd /var/log/news
cat Skypipeline >>fetch
gzip -c Skypipeline >>Skypipeline.gz
echo -n "" >Skypipeline
cd /var/spool/news/alt.binaries.warez.linux
echo 3 >server
echo UseNetServer >servername
name=`cat servername`
cp .serial .serial.skypipeline
cp .serial.UNS .serial
rm .outgoing 2>/dev/null
ln -s ../.outgoing/news.usenetserver.com:119 .outgoing
cd ../alt.binaries.cd.image.linux
cp .serial .serial.skypipeline
cp .serial.UNS .serial
rm .outgoing
ln -s ../.outgoing/news.usenetserver.com:119 .outgoing
cd ../alt.binaries.cracks
cp .serial .serial.skypipeline
cp .serial.UNS .serial
rm .outgoing
ln -s ../.outgoing/news.usenetserver.com:119 .outgoing
cd ../alt.binaries.cracks.phrozen-crew
cp .serial .serial.skypipeline
cp .serial.UNS .serial
rm .outgoing
ln -s ../.outgoing/news.usenetserver.com:119 .outgoing
cd ../alt.binaries.warez.ibm-pc.dos
cp .serial .serial.skypipeline
cp .serial.UNS .serial
rm .outgoing
ln -s ../.outgoing/news.usenetserver.com:119 .outgoing
cd ../alt.linux.slakware
cp .serial .serial.skypipeline
cp .serial.UNS .serial
rm .outgoing
ln -s ../.outgoing/news.usenetserver.com:119 .outgoing
cd ../alt.os.linux.slackware
cp .serial .serial.skypipeline
cp .serial.UNS .serial
rm .outgoing
ln -s ../.outgoing/news.usenetserver.com:119 .outgoing
cd ../comp.os.linux.announce
cp .serial .serial.skypipeline
cp .serial.UNS .serial
rm .outgoing
ln -s ../.outgoing/news.usenetserver.com:119 .outgoing
cd ../comp.os.linux.hardware
cp .serial .serial.skypipeline
cp .serial.UNS .serial
rm .outgoing
ln -s ../.outgoing/news.usenetserver.com:119 .outgoing
cd ../comp.os.linux.networking
cp .serial .serial.skypipeline
cp .serial.UNS .serial
rm .outgoing
ln -s ../.outgoing/news.usenetserver.com:119 .outgoing
cd ../comp.os.linux.security
cp .serial .serial.skypipeline
cp .serial.UNS .serial
rm .outgoing
ln -s ../.outgoing/news.usenetserver.com:119 .outgoing
cd ../comp.os.msdos.desqview
cp .serial .serial.skypipeline
cp .serial.UNS .serial
rm .outgoing
ln -s ../.outgoing/news.usenetserver.com:119 .outgoing
echo -n "server Usenetserver = $srv " >>/var/log/news/fetch
echo -n "server Usenetserver = $srv " >>/var/log/news/$name
date >>/var/log/news/fetch
date >>/var/log/news/$name
# exit 0
# Just a.b.w.l to prevent resucking; note backgrounding:
# /usr/lib/news/snget -dd alt.binaries.warez.linux 2>>/var/log/news/fetch &
/usr/lib/news/snget -dd alt.binaries.warez.linux 2>>/var/log/news/$name &
sleep 120 # Make sure there are messages to get.
while ( ps xac | grep -q snget ); do # While snget is running,
PRV=`cat /var/spool/news/alt.binaries.warez.linux/.serial` # get the
recorded article number,
# CUR=`tail -n2 /var/log/news/fetch | awk
'/snfetch:alt.binaries.warez.linux:<- 220 / {print $3}'` # get the current
article number,
CUR=`tail -n2 /var/log/news/$name | awk
'/snfetch:alt.binaries.warez.linux:<- 220 / {print $3}'` # get the current
article number,
if [[ -n "$CUR" ]]; then # make sure that what we got really _is_ a number,
if [[ "$CUR" -gt "$PRV" ]]; then # and if this is a new article, then
echo $CUR >/var/spool/news/alt.binaries.warez.linux/.serial # save the
FUCKING new serial number, goddamnit!
fi
fi
sleep 30 # Wait for another article to arrive.
done # snget has stopped.
;;
*3)
# Case 3: the prior server was UseNetServer. Next Teranews.
cd /var/log/news
cat UseNetServer >>fetch
gzip -c UseNetServer >>UseNetServer.gz
echo -n "" >UseNetServer
cd /var/spool/news/alt.binaries.warez.linux
echo 4 >server
echo Teranews >servername
name=`cat servername`
# Switch users. Valid=nnnnnnnnnnnnnn/pppppp nnnnnnnn/pppp nnnnnn/pppppppp:
# Changed PW for pppppppp 7/24; now pppppppp/pppppp :
me=`cat /var/spool/news/.outgoing/free.teranews.com:119/username`
case "$me" in
*nnnnnnnnnnnnnn)
echo -n "nnnnnn"
>/var/spool/news/.outgoing/free.teranews.com:119/username
echo -n "pppppppp"
>/var/spool/news/.outgoing/free.teranews.com:119/password
;;
nnnnnn)
echo -n "nnnnnnnn"
>/var/spool/news/.outgoing/free.teranews.com:119/username
echo -n "pppppp"
>/var/spool/news/.outgoing/free.teranews.com:119/password
;;
nnnnnnnn)
echo -n "nnnnnnnnnnnnnn"
>/var/spool/news/.outgoing/free.teranews.com:119/username
echo -n "pppppp"
>/var/spool/news/.outgoing/free.teranews.com:119/password
;;
*)
echo -n " Oops! " >>/var/log/news/fetch
;;
esac
cp .serial .serial.UNS
cp .serial.teranews .serial
rm .outgoing 2>/dev/null
ln -s ../.outgoing/free.teranews.com:119 .outgoing
cd ../alt.binaries.cd.image.linux
cp .serial .serial.UNS
cp .serial.teranews .serial
rm .outgoing
ln -s ../.outgoing/free.teranews.com:119 .outgoing
cd ../alt.binaries.cracks
cp .serial .serial.UNS
cp .serial.teranews .serial
rm .outgoing
ln -s ../.outgoing/free.teranews.com:119 .outgoing
cd ../alt.binaries.cracks.phrozen-crew
cp .serial .serial.UNS
cp .serial.teranews .serial
rm .outgoing
ln -s ../.outgoing/free.teranews.com:119 .outgoing
cd ../alt.binaries.warez.ibm-pc.dos
cp .serial .serial.UNS
cp .serial.teranews .serial
rm .outgoing
ln -s ../.outgoing/free.teranews.com:119 .outgoing
cd ../alt.linux.slakware
cp .serial .serial.UNS
cp .serial.teranews .serial
rm .outgoing
ln -s ../.outgoing/free.teranews.com:119 .outgoing
cd ../alt.os.linux.slackware
cp .serial .serial.UNS
cp .serial.teranews .serial
rm .outgoing
ln -s ../.outgoing/free.teranews.com:119 .outgoing
cd ../comp.os.linux.announce
cp .serial .serial.UNS
cp .serial.teranews .serial
rm .outgoing
ln -s ../.outgoing/free.teranews.com:119 .outgoing
cd ../comp.os.linux.hardware
cp .serial .serial.UNS
cp .serial.teranews .serial
rm .outgoing
ln -s ../.outgoing/free.teranews.com:119 .outgoing
cd ../comp.os.linux.networking
cp .serial .serial.UNS
cp .serial.teranews .serial
rm .outgoing
ln -s ../.outgoing/free.teranews.com:119 .outgoing
cd ../comp.os.linux.security
cp .serial .serial.UNS
cp .serial.teranews .serial
rm .outgoing
ln -s ../.outgoing/free.teranews.com:119 .outgoing
cd ../comp.os.msdos.desqview
cp .serial .serial.UNS
cp .serial.teranews .serial
rm .outgoing
ln -s ../.outgoing/free.teranews.com:119 .outgoing
echo -n "server Teranews = $srv " >>/var/log/news/fetch
echo -n "server Teranews = $srv " >>/var/log/news/$name
cat /var/spool/news/.outgoing/free.teranews.com:119/username
>>/var/log/news/fetch
cat /var/spool/news/.outgoing/free.teranews.com:119/username
>>/var/log/news/$name
echo -n " " >>/var/log/news/fetch
echo -n " " >>/var/log/news/$name
date >>/var/log/news/fetch
date >>/var/log/news/$name
# exit 0
# Just this NG to work around the 50Mb limit, note backgrounding:
# /usr/lib/news/snget -dd alt.binaries.warez.linux 2>>/var/log/news/fetch &
/usr/lib/news/snget -dd alt.binaries.warez.linux 2>>/var/log/news/$name &
sleep 120 # Make sure there are messages to get.
while ( ps xac | grep -q snget ); do # While snget is running,
PRV=`cat /var/spool/news/alt.binaries.warez.linux/.serial` # get the
recorded article number,
# CUR=`tail -n2 /var/log/news/fetch | awk
'/snfetch:alt.binaries.warez.linux:<- 220 / {print $3}'` # get the current
article number,
CUR=`tail -n2 /var/log/news/$name | awk
'/snfetch:alt.binaries.warez.linux:<- 220 / {print $3}'` # get the current
article number,
if [[ -n "$CUR" ]]; then # make sure that what we got really _is_ a number,
if [[ "$CUR" -gt "$PRV" ]]; then # and if this is a new article, then
echo $CUR >/var/spool/news/alt.binaries.warez.linux/.serial # save the
FUCKING new serial number, goddamnit!
fi
fi
sleep 30 # Wait for another article to arrive.
done # snget has stopped.
exit 0
;;
*4)
# Case 4: the prior server was Teranews. Next 100ProofNews.
cd /var/log/news
cat Teranews >>fetch
gzip -c Teranews >>Teranews.gz
echo -n "" >Teranews
cd /var/spool/news/alt.binaries.warez.linux
echo 0 >server
echo 100ProofNews >servername
name=`cat servername`
cp .serial .serial.teranews
cp .serial.100 .serial
rm .outgoing 2>/dev/null
ln -s ../.outgoing/news.100proofnews.com:119 .outgoing
cd ../alt.binaries.cd.image.linux
cp .serial .serial.teranews
cp .serial.100 .serial
rm .outgoing
ln -s ../.outgoing/news.100proofnews.com:119 .outgoing
cd ../alt.binaries.cracks
cp .serial .serial.teranews
cp .serial.100 .serial
rm .outgoing
ln -s ../.outgoing/news.100proofnews.com:119 .outgoing
cd ../alt.binaries.cracks.phrozen-crew
cp .serial .serial.teranews
cp .serial.100 .serial
rm .outgoing
ln -s ../.outgoing/news.100proofnews.com:119 .outgoing
cd ../alt.binaries.warez.ibm-pc.dos
cp .serial .serial.teranews
cp .serial.100 .serial
rm .outgoing
ln -s ../.outgoing/news.100proofnews.com:119 .outgoing
cd ../alt.linux.slakware
cp .serial .serial.teranws
cp .serial.100 .serial
rm .outgoing
ln -s ../.outgoing/news.100proofnews.com:119 .outgoing
cd ../alt.os.linux.slackware
cp .serial .serial.teranws
cp .serial.100 .serial
rm .outgoing
ln -s ../.outgoing/news.100proofnews.com:119 .outgoing
cd ../comp.os.linux.announce
cp .serial .serial.teranews
cp .serial.100 .serial
rm .outgoing
ln -s ../.outgoing/news.100proofnews.com:119 .outgoing
cd ../comp.os.linux.hardware
cp .serial .serial.teranews
cp .serial.100 .serial
rm .outgoing
ln -s ../.outgoing/news.100proofnews.com:119 .outgoing
cd ../comp.os.linux.networking
cp .serial .serial.teranews
cp .serial.100 .serial
rm .outgoing
ln -s ../.outgoing/news.100proofnews.com:119 .outgoing
cd ../comp.os.linux.security
cp .serial .serial.teranews
cp .serial.100 .serial
rm .outgoing
ln -s ../.outgoing/news.100proofnews.com:119 .outgoing
cd ../comp.os.msdos.desqview
cp .serial .serial.teranews
cp .serial.100 .serial
rm .outgoing
ln -s ../.outgoing/news.100proofnews.com:119 .outgoing
echo -n "server 100ProofNews = $srv " >>/var/log/news/fetch
echo -n "server 100ProofNews = $srv " >>/var/log/news/$name
date >>/var/log/news/fetch
date >>/var/log/news/$name
# exit 0
# Just a.b.w.l to prevent resucking; note backgrounding:
# /usr/lib/news/snget -dd alt.binaries.warez.linux 2>>/var/log/news/fetch &
/usr/lib/news/snget -dd alt.binaries.warez.linux 2>>/var/log/news/$name &
sleep 120 # Make sure there are messages to get.
while ( ps xac | grep -q snget ); do # While snget is running,
PRV=`cat /var/spool/news/alt.binaries.warez.linux/.serial` # get the
recorded article number,
# CUR=`tail -n2 /var/log/news/fetch | awk
'/snfetch:alt.binaries.warez.linux:<- 220 / {print $3}'` # get the current
article number,
CUR=`tail -n2 /var/log/news/$name | awk
'/snfetch:alt.binaries.warez.linux:<- 220 / {print $3}'` # get the current
article number,
if [[ -n "$CUR" ]]; then # make sure that what we got really _is_ a number,
if [[ "$CUR" -gt "$PRV" ]]; then # and if this is a new article, then
echo $CUR >/var/spool/news/alt.binaries.warez.linux/.serial # save the
FUCKING new serial number, goddamnit!
fi
fi
sleep 30 # Wait for another article to arrive.
done # snget has stopped.
;;
*)
echo "Server is not in the range of 0 through 4!"
exit 1
;;
esac
# Suck
#/usr/lib/news/snget -dd 2>>/var/log/news/fetch &
/usr/lib/news/snget -dd 2>>/var/log/news/$name &
fi
# Done.
John CharterHouse Support www.chsoft.com [email protected]
Q: Because it reverses the logical flow of conversation.
A: Why is top posting frowned upon?
WBTH/WGTFTH is TradeMarked by John. It means
"What Bad Thing Happens or What Good Thing Fails To Happen", exactly? When?