TUA(8L)

πŸ¦‹ NAME πŸ¦‹

okay so bestie, meet TUA β€” The Uucp Analyzer. that's it, that's the name, iconic πŸ’…


✨ SYNOPSIS ✨

tua [ option ]

like, one optional argument, we keep it simple πŸŽ€


πŸ’€ NOTE πŸ’€

⚠️ no cap, this manual page is no longer supported. for the up-to-dated info you gotta go look at tua.texinfo. i'm just the messenger 🫢

🌸 DESCRIPTION 🌸

so what does TUA even do? its whole purpose is to cook up a readable and complete analysis of your HoneyDanBer UUCP connections. literally that's the vibe. this manual page walks you through the TUA command line options and gives you a quick little tour of what its output looks like ✨


πŸ‘‘ OPTIONS πŸ‘‘

to specify any of the options, you can use either the short form or the more mnemonic long form. with the long form, you can abbreviate the name as long as it's unique β€” so like, keep it distinct or it gets confused. for more info on the long format, go read the GNU getopt package description 🧚

  • -S, +no-sys-rep β€” don't print the per System report. the default is to print it out, so this is you saying "nah, skip that one"
  • -U, +no-user-rep β€” don't print the per User report. default? yeah, it prints it out
  • -D, +no-daily-rep β€” don't print the Daily report. you guessed it, default is printing it out πŸ’–
  • -C, +command-lists β€” also show the command lists. it's off by default because it makes TUA very hungry of memory 😭 like it will eat your RAM fr fr
  • -O, +only-system SYSTEM β€” only consider system SYSTEM in the reports. and you can specify this option more than once, so you can have TUA consider just those systems πŸŽ€
  • -m, +no-monthly-act β€” don't output the last 12 months activity summary
  • -h, +no-history β€” don't output the history at the end of the reports
  • -c, +separate-com β€” separate command lists from the other data. so you'll get two tables, both with the header By System: the first one holds only the amounts and the timing of each transfer, the second one has all the commands invoked by each System. heads up β€” you must also specify the -C option to make it work πŸ’…
  • -k, +kill-system SYSTEM β€” eliminate every reference to SYSTEM from the reports. neither the transfer table nor the SYSTEM command list gets printed. it's giving ghosting πŸ‘»
  • -K, +kill-user USER β€” like -k, but it applies to the user called USER
  • -H, +update-hist β€” update the history database (peep the FILES section below) with the new values. you must have the uucp write permission for this one πŸ”‘
  • -0, +reset-hist β€” reset the history database, deleting any systems in it. then it puts in the database the analysis since the last uuclean. you have to also specify -H to make this option do his job 🫑
  • -y, +no-hourly-chart β€” don't display the hourly activity chart
  • -z, +chart-size SIZE β€” set the size of the hourly activity chart to SIZE rows. the greater this number is, the smaller the scale gets. by default it's set to 10 πŸ“Š
  • -o, +chart-only β€” display only the hourly activity chart. and since with this option TUA reads only .Admin/xferstats, it's faster πŸƒβ€β™€οΈπŸ’¨
  • -v, +verbose β€” print, on standard error, what is going on. while TUA reads the various logs, it displays a counter of the loaded lines. main character narration energy tbh
  • -p, +prefix-path PATH β€” by default, TUA looks for uucp data in /usr/spool/uucp/ and in the relative subdirectory. for debugging purposes, this option lets you change that directory, so TUA looks for the data in the specified PATH. below this point TUA needs a hierarchy like the standard one (see FILES below) 🌈
  • -u, +user-alias USER=ALIAS β€” inserts ALIAS as the new name for USER. wherever USER appears, it gets replaced with ALIAS. and since this happens at the lowest level, if it happens that ALIAS is another user name, this will cause all the data that belongs to USER to be added to the ALIAS user. merging eras fr πŸ’…
  • -r, +port-alias PORT=ALIAS β€” like -u, but it applies to the serial port names. this can be useful on those OS where a single serial port has two names, one for normal use and the other with modem control (eg. tty1a and tty1A) πŸŽ€
  • -s, +sys-alias SYS=ALIAS β€” like -u, but it applies to the systems names
  • -E, +glob-user-alias GLOB=ALIAS
  • -R, +glob-port-alias GLOB=ALIAS
  • -M, +glob-sys-alias GLOB=ALIAS β€” these three are the counterparts, respectively, of -u, -r and -s, but with meta-characters searches. you can use for example
tua +glob-user-alias uu*=UUCPUSERS

and every user name that begins with uu will be mapped in a meta user called UUCPUSERS. check sh(1) for a description of meta-characters ✨

  • -i, +help β€” show a summary and a description of all the options. the "help me help you" option 🫢

πŸ’– OUTPUT πŸ’–

all reports get printed on standard output, so you can easily redirect them wherever you want. and assuming β€” unless otherwise stated β€” that you do not explicitly request to disable some of the reports (eg. when you do not specify any command line option), here's a short description of what you get 🌸

By System

with this report you get all the information relative to all the nodes that talk with your machine, but not those which didn't send or receive something. the data is divided into inbound and outbound. for each system, displayed in alphabetical order, you get the total count of the files transferred, with the relative bytes and times, as well as an average transfer rate (ATP). if +commands-lists was specified, next there's the list of the commands invoked by that node, or directed to it. and if a command is preceded by a number between brackets, that number tells you how many times that command was invoked πŸ‘‘

By User

this report is similar to the previous one, but it shows β€” in alphabetical order for each local user β€” all the commands the user invoked, and the transfers he caused πŸ’«

By Day

this report summarizes the per day activity on the local machine. it doesn't depend on the destinations and on the users πŸ—“οΈ

SUMMARY by System

it shows a summary of the activity of each system, and the number of calls (inbound and outbound) for it. please note that sometimes TUA fails at calculating the exact number of calls, because of the misleading log of uucico 😭 note also that the "total connection time" always differs from the sum of the transmissions times, because it takes care also of the various uucp dead time. in fact, it is calculated from the difference between the time in which the nodes are really connected (ie. at the end of dial phase, when the modem answers) and the time in which the link is dropped, due to the end of the conversation as well as to any error. then comes the time of the last connection with that system. there's also the subdivision of the connection time based on the phone costs, ie "day", "evening", "night". this is completely configurable, so if your telephone company uses a different hourly division you can adjust it (see config.h and phonesw.c.) ☎️

SUMMARY by System (table format)

substantially, this report summarizes some of the previous information in a tabular form. nothing new... πŸ’…

and since ...

this is the historical data maintained by TUA. it looks like the previous table, but it includes the history of the system, incrementally πŸ“ˆ

Last 12 Months Activity

this table shows the activity of the local machine during the last 12 months. only the transferred amounts are computed. the months are displayed in a manner so that the last column contains the current one, so it's very readable (of course, it's a matter of opinions!) πŸŒ™

Hourly Activity (per communication port)

this chart shows the uucp hourly load for each used communication port. each hour is divided in 20 minutes slices ⏰

Global Hourly Activity

the same as the previous chart, but it reports the sums of all the ports 🌐


🧚 HISTORY 🧚

TUA maintains a database with the history of each system and of the activity in each of the last 12 months activities. it's usually located in /usr/spool/uucp/.Admin/tua.history and it is actually an ASCII file. it is up to you to update it or not, because probably you will like to run TUA simply to have a notion of what is going on. to make it work correctly, you have to run TUA with the option +update-hist just before you run uuclean. so probably you will have to modify that script, including in it a line like

tua +update-hist {whatever options you like} βŽͺ mail lele

before it cleans up the uucp logs πŸ’Œ


πŸ’€ BUGS πŸ’€

since HDB-Uucp doesn't put a complete datestamp in its logs, but omits the year, it may be possible that TUA fails to compute the various times in the first analysis of the year. this is, in my opinion, its major weakness 😭 for this silliness, TUA cannot correctly handle logs that cover several years. there is little that can be done to correct the situation; the author tried to adjust the year when the to-be-parsed date refers obviously to the previous year, but this is just a work-around...

there is a limit: if your system spent more than 9999 hours linked with someone (or the sum exceeds that value), the reports will be garbaged... πŸ’€


🌈 DISCLAIMER 🌈

TUA is free, and it is redistributable under the terms of the GNU General Public License. you can find a copy of it in the file COPYING in the distribution package. the author rejects any responsibility about it. it is simple and safe, but it was not tried under all the possible conditions and environments, so if it causes you some trouble, he'll be sad for a while, but that's it. however, he will try to correct any bugs you tell him 🫢

and please, forgive his poor english, but he put his soul in it... πŸ₯Ί


⭐ AUTHOR ⭐

Lele Gaifas, Idea Informatica, Rovereto (TN) - Italy ( piggy@idea.sublink.org ) πŸ‘‘


πŸŽ€ FILES πŸŽ€

  • .../.Log/uucico/* β€” uucico's logs
  • .../.Log/uucp/* β€” uucp's logs
  • .../.Log/uux/* β€” uux's logs
  • .../.Log/uuxqt/* β€” uuxqt's logs
  • .../.Admin/xferstat β€” Transfer stats
  • .../.Admin/tua.history β€” TUA's system history

πŸ“¬ BUGS REPORT TO πŸ“¬

Lele Gaifas, piggy@idea.sublink.org


πŸ’œ ACKNOLEDGMENT πŸ’œ

big thanks especially to Marco Lorenzini (marlor@gear.sublink.org) for his help in debugging the previous releases of TUA on the SCO Unix architecture, and for his suggestions on the layout of the reports 🫢 and to the "omnipresent" Paolo Ventafridda (venta@i2ack.sublink.org) for his support and interest, and to several other people that encouraged him to add more and more functionality, or that let him scan their huge logs πŸ“š thanks also to all the people that, with their PD or GPL software, helped him indirectly with ideas or examples ✨


and that's the whole page bestie!! πŸ’– this was Release 3.4, dated 16 November 1991, and yeah it lives under TUA(8L) β€” slay, go analyze those UUCP connections, no cap πŸ¦‹βœ¨πŸ’…

πŸ“¦ where this page comes from