On Aug 22, 2013, at 10:39 AM, Christof Hanke <[email protected]> wrote:

> Hi,
> Am 22.08.2013, 16:33 Uhr, schrieb Gémes Géza <[email protected]>:
> 
>> Sorry for this slightly off topic question, but what is the recommended way 
>> to find out the version of the openafs installation.
>> I ask this because I wrote different installation scripts (which take into 
>> account if the installation is 32 or 64 bit), (using wpkg to deploy them), 
>> but the problem is always the same: Is the installed version the newest, or 
>> it needs to be upgraded?
> 
> not sure if it is recommended,
> but executing "rxdebug localhost 7001 -v"
> should give you what you need.

At one point we did semi-annual audits of all AFS clients hitting our hosts. 
Another fellow here wrote some scripts to help with it; I'll check with him to 
see what state they're in and if they're releasable. I did one myself but it 
was a one-off; as I recall the hard part was writing the funky regex/filter 
that read logfiles and removed everything that didn't look like an IP address. 

The audit process involved taking the last few months of the fileserver logs 
from each server (FileLog) and filtering out anything that doesn't look like an 
IP address; then running them through 'sort | uniq -c > clientlist'. That gave 
us a file with a frequency use of each address, eg,
     1 10.0.0.1
  2341 141.211.168.44
   784 141.213.104.192

I wrote a tiny little bash script 'getversions' that generated the version 
numbers on stdout and the failed probes on stderr. The result files are in a 
form that lets you feed them back into the script as you'll see below. Be 
patient when you do this sort of run; for every host that doesn't respond 
expect a 30-second delay. Note also that this isn't perfect - NAT boxes and 
changing addresses across wireless connections will fool you. But for our 
purpose, it's good enough.

Edited sample run and rerun, including data and script. Addresses changed to 
protect the guilty:

  scs$ more getversions
  ::::::::::::::
  getversions
  ::::::::::::::
  #!/bin/bash
  while read COUNT ADDR DUMMY ; do
      ARRAY=($(echo $(rxdebug $ADDR 7001 -v 2>&1)))
      if [[ "AFS" == "${ARRAY[4]}" ]] ; then
          echo $COUNT $ADDR ${ARRAY[6]} ${ARRAY[7]} ${ARRAY[8]} ${ARRAY[9]}
      else
          echo $COUNT $ADDR "'${ARRAY[*]}'" >&2
      fi
  done
  scs$ ./getversions < clientlist > clients.identified 2> clients.unidentified
  scs$ more client*
  ::::::::::::::
  clientlist
  ::::::::::::::
  1 192.168.1.141
  2 192.168.2.142
  3 192.168.3.143
  ::::::::::::::
  clients.identified
  ::::::::::::::
  1 141.211.1.141 OpenAFS 1.4.11 built 2009-08-18
  3 141.211.3.143 OpenAFS 1.4.15 built 2013-07-31
  ::::::::::::::
  clients.unidentified
  ::::::::::::::
  2 192.168.2.142 'Trying 192.168.2.142 (port 7001): get version call failed 
with
  code -1, errno 0'
  scs$ ./getversions < clients.unidentified >> clients.identified
  2 192.168.2.142 'Trying 192.168.2.142 (port 7001): get version call failed 
with code -1, errno 0'
  scs$ 


Enjoy,

Steve_______________________________________________
OpenAFS-info mailing list
[email protected]
https://lists.openafs.org/mailman/listinfo/openafs-info

Reply via email to