snget,v0.3.8(8)

πŸ’… snget β€” the manual page, but make it slay πŸ’…

okay bestie, gather round, because this is snget and sngetd, version snget,v0.3.8, from the System Manager's Manual (section 8, the sysadmin girlies 🫢). she's giving serious main character energy and honestly? obsessed.


✨ NAME ✨

<pink>snget</pink>, <hotpink>sngetd</hotpink> β€” fetch news from upstream sites and store them locally. no cap, that's the whole vibe. πŸ¦‹


🌸 SYNOPSIS 🌸

snget [options] [news.group...]
sngetd [options]
options: [-d] [-h Bps] [-p nparallel] [-c depth] [-m max]

πŸ’– DESCRIPTION πŸ’–

so <pink>snget</pink> goes out and fetches articles for the *news.group*s you put on the command line β€” or, if you don't name any, it does it for all non-local newsgroups β€” pulling from their respective upstream feeds and tucking them away all cozy in the news spool /var/spool/sn. and if a newsgroup couldn't be fetched for? not the end of the world, it may be attempted again. we try again, we always try again. πŸ’ͺ

<hotpink>sngetd</hotpink> does literally the same thing, except β€” plot twist β€” it reads newsgroup names from /var/spool/sn/.fifo and does not exit. ever. it just keeps going, iconic behaviour honestly. but heads up: <hotpink>sngetd</hotpink> does not fork into the background, so she's right there with you, front and center. no hiding. πŸ‘‘

also, real talk: <pink>snget</pink> does not guarantee to fetch the groups in the order you specified on the command line. so don't come for her about the ordering, she didn't promise that. and both <pink>snget</pink> and <hotpink>sngetd</hotpink> write errors and status messages to descriptor 2. yes, stderr. she's chatty but she knows where to put it. 😭

both of them are basically scheduling wrappers that call /usr/sbin/SNHELLO, snfetch, and snstore. and here's the gatekeeping part: you must own /var/spool/sn or be root in order to run <pink>snget</pink> and <hotpink>sngetd</hotpink>. no owning, no running. that's the rule. πŸšͺ


✨ OPTIONS ✨

  • -d β€” turns on verbosity, and you can stack it multiple times for extra yapping. this option is also propagated down to snfetch and snstore, so everyone gets to hear it. πŸ—£οΈ
  • -p nparallel β€” attempts to fetch for nparallel newsgroups at once. default is 4, maximum is 8. multitasking queen. ✨
  • -h Bps β€” throttles the sum of bandwidth used by all snfetches down to Bps bytes per second. use this so <pink>snget</pink> or <hotpink>sngetd</hotpink> doesn't hog the entire network like some kind of bandwidth goblin. by default there is no throttling β€” she goes full send. πŸƒβ€β™€οΈπŸ’¨
  • -c depth β€” depth gets passed to snfetch as the depth of the command pipeline. that's it, that's the tea. 🍡
  • -m max β€” the very first time contacting the news server, retrieve no more than max articles per newsgroup; default is 200. this option is useful only if there are unprimed newsgroups and has no effect otherwise. the .max file in each newsgroup directory still applies (peep snfetch(8)). πŸŽ€
  • -t timeout β€” bestie, this option is not documented because it is ignored and will disappear in a future release. see .timeout in FILES below. don't get attached, she's leaving. πŸ’€

πŸ¦‹ FILES πŸ¦‹

Server Directories

these are the directories /var/spool/sn/.outgoing/server.name:port, which are symlinked from /var/spool/sn/news.group/.outgoing. and if the latter isn't a (symlink to a) directory? then <pink>snget</pink> won't fetch for news.group. simple as that, no notes. πŸ”—

/var/spool/sn/.outgoing/server.name:port/.timeout

if this file exists and contains a number, that number is taken to be the timeout in seconds in all dealings with server.name:port. default is 120 seconds. ⏰

/var/spool/sn/.outgoing/server.name:port/.SNHELLO

if this program file exists, it is invoked instead of the default (usually /usr/sbin/SNHELLO) when an NNTP connection is first made to server.name:port, in order to read the greeting and upload posted articles. if server.name:port requires a username and password, you'd copy the default here and edit that information in. customize her. πŸ’…

/var/spool/sn/news.group/{.serial,.max}

<pink>snget</pink> and <hotpink>sngetd</hotpink> read these files on behalf of snfetch. teamwork makes the dream work. 🀝


🌈 SIGNALS 🌈

other signals have default behaviour. that's it, that's the baseline.

  • SIGUSR1 β€” if -h Bps was specified, Bps is halved. else it is ignored. πŸ“‰
  • SIGUSR2 β€” if -h Bps was specified, Bps is doubled. else it is ignored. πŸ“ˆ

πŸ’œ ENVIRONMENT VARIABLES πŸ’œ

also peep /usr/sbin/SNHELLO for the list of environment variables exported by <pink>snget</pink>/<hotpink>sngetd</hotpink>. she's got receipts. 🧾

  • SNROOT β€” if this is set and is not empty, the value is used in place of /var/spool/sn, the default news spool directory. relocate your whole situation. 🏑
  • PATH β€” used to find SNHELLO (if this server does not have a .SNHELLO), snfetch, and snstore. and if PATH does not contain /usr/sbin as one of it's components, /usr/sbin is appended to it. she'll find her friends one way or another. πŸ”

⭐ SEE ALSO ⭐

snfetch(8), snstore(8), /usr/sbin/SNHELLO


no cap: everything above is exactly what the page says. the vibe is mine, the facts are hers. πŸ™ˆ

N.B. this whole page was written by Harold Tay, and it's <rainbow>snget,v0.3.8</rainbow> β€” that's the version and the whole source of it, right there in the footer, slay. πŸ’– bye bestie, go fetch some news πŸŽ€

πŸ“¦ where this page comes from