[OpenAFS] afsdf new release

Heinz-Ado Arnolds arnolds@MPA-Garching.MPG.DE
Wed, 10 May 2017 16:37:51 +0200


This is a cryptographically signed message in MIME format.

--------------ms070103020504060602060200
Content-Type: multipart/mixed;
 boundary="------------0A3E19E2311EFE55612ECBBD"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------0A3E19E2311EFE55612ECBBD
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Dear Steve,

thanks a lot for your tool. Small problem: if a server currently has no p=
artitions, you'll get a division by zero when calculating $pct. You'll fi=
nd a simple patch enclosed. (Formatting is done to keep the patch small. =
There should be an additional indentation to all lines inside the new if{=
} clause for sure.)

New output:

lnx-14        a         9        1        8    10.67%
              b         9        0        9     1.20%
              c         9        4        5    40.88%
              d         9        4        5    47.01%
   Subtotal            39        9       29    24.95%

lnx-16        -

lnx-17        -

lnx-18        a         9        0        9     0.85%


Kind regards,

Ado Arnolds

On 09.05.2017 19:23, Steve Simmons wrote:
> =E2=80=8BAbout 10 years back I posted a 'afsdf' command to openafs-info=
=2E Many improvements were made based on suggestions here, but I never go=
t round to re-posting it. In general, the command does a df-ish disk usag=
e report across an entire cell, with various permutations on roll-ups, di=
splay compaction, and so forth. Used in my favorite two modes:
>=20
> $ afsdf -t
> Server                Ptn       SizeMB         Used       Avail.  Pct F=
ull
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D  =3D=3D=3D=
  =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D  =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D  =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D  =3D=3D=3D=3D=3D=3D=3D=3D
> afsprs01.afs.storage   a     2,096,124    1,669,362      426,761    79.=
64%
> afsprs01.afs.storage   b     2,096,124    1,638,733      457,390    78.=
18%
> afsprs01.afs.storage   c     2,096,124    1,686,377      409,746    80.=
45%
> afsprs01.afs.storage   d     2,096,124    1,703,729      392,394    81.=
28%
> afsprs01.afs.storage   e     2,096,124    1,670,024      426,099    79.=
67%
> afsprs01.afs.storage   f     2,096,124    1,716,652      379,471    81.=
90%
> afsprs02.afs.storage   a     2,096,124    1,701,536      394,587    81.=
18%
> afsprs02.afs.storage   b     2,096,124    1,711,506      384,617    81.=
65%
> . . .
> afsprs10.afs.storage   e     2,096,124    1,385,650      710,473    66.=
11%
> afsprs10.afs.storage   f     2,096,124    1,355,564      740,559    64.=
67%
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D  =3D=3D=3D=
  =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D  =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D  =3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D  =3D=3D=3D=3D=3D=3D=3D=3D
>          Grand Total       125,767,440   97,068,722   28,698,717    77.=
18%
>=20
> $ afsdf -T -s -u GB
> Server       Ptn   SizeGB     Used   Avail.  Pct Full
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D  =3D=3D=3D  =3D=3D=3D=3D=3D=3D=3D  =3D=
=3D=3D=3D=3D=3D=3D  =3D=3D=3D=3D=3D=3D=3D  =3D=3D=3D=3D=3D=3D=3D=3D
> afsprs01      a     2,046    1,630      416    79.64%
>               b     2,046    1,600      446    78.18%
>               c     2,046    1,646      400    80.45%
>               d     2,046    1,663      383    81.28%
>               e     2,046    1,630      416    79.67%
>               f     2,046    1,676      370    81.90%
>    Subtotal        12,281    9,848    2,433    80.19%
>=20
> afsprs02      a     2,046    1,661      385    81.18%
>               b     2,046    1,671      375    81.65%
> . . .
> afsprs10      a     2,046    1,373      673    67.11%
>               b     2,046    1,355      691    66.24%
>               c     2,046    1,345      701    65.71%
>               d     2,046    1,377      669    67.29%
>               e     2,046    1,353      693    66.11%
>               f     2,046    1,323      723    64.67%
>    Subtotal        12,281    8,129    4,152    66.19%
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D  =3D=3D=3D  =3D=3D=3D=3D=3D=3D=3D  =3D=
=3D=3D=3D=3D=3D=3D  =3D=3D=3D=3D=3D=3D=3D  =3D=3D=3D=3D=3D=3D=3D=3D
> Grand Total       122,819   94,793   28,026    77.18%
>=20
>=20
> afsdf -h prints a quick help message, afsdf --usage shows you all the s=
witches.
>=20
> Enjoy,
>=20
> Steve
>=20

--------------0A3E19E2311EFE55612ECBBD
Content-Type: text/x-patch;
 name="afsdf.patch"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
 filename="afsdf.patch"

--- afsdf.orig	2017-05-10 16:10:01.000000001 +0200
+++ afsdf	2017-05-10 16:29:31.000000001 +0200
@@ -471,7 +471,7 @@
 	    print "\n" if ( $subtotal_done );
 	}
 	open( FSDATA, "vos partinfo -server $server $cellflag -noauth |" );
-	@fsdata =3D ( <FSDATA> );
+	if ( @fsdata =3D ( <FSDATA> ) ) {
 	foreach $line ( @fsdata ) {
 	    # All calculation is done in the native server units, KB.
 	    # We scale them as requested when printing.
@@ -508,6 +508,9 @@
 		    $pct, mk_flag( $pct ) );
 	    $subtotal_done =3D 1;
 	}
+    } else {
+	printf "%-${srv_width}.${srv_width}s   -\n", $servname;
+    }
     }
     if ( 0 =3D=3D $gtot_size ) {
 	$pct =3D 0;

--------------0A3E19E2311EFE55612ECBBD--

--------------ms070103020504060602060200
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature

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
3VlFsWzNUQIDAQABo4IB+jCCAfYwEgYDVR0TAQH/BAgwBgEB/wIBATAOBgNVHQ8BAf8EBAMC
AQYwEQYDVR0gBAowCDAGBgRVHSAAMB0GA1UdDgQWBBQC1h5uCau/WGWnCjxIM2HRzn3DWzAf
BgNVHSMEGDAWgBRJt8bP6D0ff+pEexMp9/EKcD7eZDAYBgNVHREEETAPgQ1tcGctY2FAbXBn
LmRlMIGIBgNVHR8EgYAwfjA9oDugOYY3aHR0cDovL2NkcDEucGNhLmRmbi5kZS9nbG9iYWwt
cm9vdC1jYS9wdWIvY3JsL2NhY3JsLmNybDA9oDugOYY3aHR0cDovL2NkcDIucGNhLmRmbi5k
ZS9nbG9iYWwtcm9vdC1jYS9wdWIvY3JsL2NhY3JsLmNybDCB1wYIKwYBBQUHAQEEgcowgccw
MwYIKwYBBQUHMAGGJ2h0dHA6Ly9vY3NwLnBjYS5kZm4uZGUvT0NTUC1TZXJ2ZXIvT0NTUDBH
BggrBgEFBQcwAoY7aHR0cDovL2NkcDEucGNhLmRmbi5kZS9nbG9iYWwtcm9vdC1jYS9wdWIv
Y2FjZXJ0L2NhY2VydC5jcnQwRwYIKwYBBQUHMAKGO2h0dHA6Ly9jZHAyLnBjYS5kZm4uZGUv
Z2xvYmFsLXJvb3QtY2EvcHViL2NhY2VydC9jYWNlcnQuY3J0MA0GCSqGSIb3DQEBCwUAA4IB
AQA/3HfC0/BkbK4gkTlZr/To7LPytLoZmoWde40HWbj4OP9UfV2AXVt8spuGSGFr2+2L3Y54
G11iD+bPyq94UmR+t3Rc8Ff/Fep+3uelynPe9vW0Hbk5wLPvmE8VFMtOaRZ2uOzb/QQm4kuR
E11CmTzCCQNNV8AO8l5BT/m0XZiUbBZ/MHim45zhNXZuuLV+rqXz9TfIVpBn7CMMjtjeO0kx
679P1T5R4SsWHS1kNO6mxNafyL0FspiEkHsCwY5ju9oFgeKHBgNn06w+98J9vV+GbEdR59Oc
Yujy0NOh0DsRka0vXhA9FEKB2M39RdGt6Ps2Ojp8jWnApneFa2BnUrQcMIIFwzCCBKugAwIB
AgIHGXqXLyH0NzANBgkqhkiG9w0BAQsFADBeMQswCQYDVQQGEwJERTEgMB4GA1UEChMXTWF4
LVBsYW5jay1HZXNlbGxzY2hhZnQxDzANBgNVBAMTBk1QRyBDQTEcMBoGCSqGSIb3DQEJARYN
bXBnLWNhQG1wZy5kZTAeFw0xNTA1MTkxMTA4MTVaFw0xODA1MTgxMTA4MTVaMIGbMQswCQYD
VQQGEwJERTEgMB4GA1UECgwXTWF4LVBsYW5jay1HZXNlbGxzY2hhZnQxLTArBgNVBAsMJE1h
eC1QbGFuY2stSW5zdGl0dXQgZnVlciBBc3Ryb3BoeXNpazEfMB0GA1UECwwWTmV0d29yayBB
ZG1pbmlzdHJhdGlvbjEaMBgGA1UEAwwRSGVpbnotQWRvIEFybm9sZHMwggEiMA0GCSqGSIb3
DQEBAQUAA4IBDwAwggEKAoIBAQDP1wEW17rLbDJrOFoZUSfX+wpV+ZA+CotCkrt+ukp2bt7u
1dFVudyqoXuw1ed9S87mKpHFQtVBuVzfE6zKQFP3DUiM/7Encewr+4L15vosQWOp8Kfuxe1g
O0NcCl0i0s++RDh5A8lEHeCTkseJYKIAD8LEsvD2ZRcxVMOG3mNyzslIlfDN/wKeInwyLsFE
+XsFE8GPHkI5U4UAQCGEEowISlKHrwEHD2o/URv+8TXUROF6J5X3dtPSp06R6YxOLXUKpL24
yzbHT0O0JZQsDIrR0FuNhyEDiXXoQKdq7wwsfmoUrabcUV+qY6rbaqfRlqOWpNh2uGqeBJ2v
gbVMwuoXAgMBAAGjggJGMIICQjBABgNVHSAEOTA3MBEGDysGAQQBga0hgiwBAQQDAzARBg8r
BgEEAYGtIYIsAgEEAwEwDwYNKwYBBAGBrSGCLAEBBDAJBgNVHRMEAjAAMAsGA1UdDwQEAwIF
4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwHQYDVR0OBBYEFPWbrhe9+fi0aw14
aB5IoWWJa1/wMB8GA1UdIwQYMBaAFALWHm4Jq79YZacKPEgzYdHOfcNbMEQGA1UdEQQ9MDuB
G2Fybm9sZHNAbXBhLWdhcmNoaW5nLm1wZy5kZYEcaGFybm9sZHNAbXBhLWdhcmNoaW5nLm1w
Zy5kZTB3BgNVHR8EcDBuMDWgM6Axhi9odHRwOi8vY2RwMS5wY2EuZGZuLmRlL21wZy1jYS9w
dWIvY3JsL2NhY3JsLmNybDA1oDOgMYYvaHR0cDovL2NkcDIucGNhLmRmbi5kZS9tcGctY2Ev
cHViL2NybC9jYWNybC5jcmwwgccGCCsGAQUFBwEBBIG6MIG3MDMGCCsGAQUFBzABhidodHRw
Oi8vb2NzcC5wY2EuZGZuLmRlL09DU1AtU2VydmVyL09DU1AwPwYIKwYBBQUHMAKGM2h0dHA6
Ly9jZHAxLnBjYS5kZm4uZGUvbXBnLWNhL3B1Yi9jYWNlcnQvY2FjZXJ0LmNydDA/BggrBgEF
BQcwAoYzaHR0cDovL2NkcDIucGNhLmRmbi5kZS9tcGctY2EvcHViL2NhY2VydC9jYWNlcnQu
Y3J0MA0GCSqGSIb3DQEBCwUAA4IBAQA/h+V2HjyJ5AxySN27pKJk+fMVWs47VwW0Y0p5E/OL
GpQxhWnvolo511NcZBSNuBLW0GuMAtC1o/BD9lXj4hl2xJARQBrytCVqHed79ukTO3hSMJuN
h1Or88Vfd3OGf0LNomanKul776w19HnYMR+ZxKXGnb9rLyq5fjYPbKgzFtpiXsyhcut9h5MM
E/JW0vgGGqjuLMeKXGIuoSkWka1fdLhY8gn7mC1l9VKLRzkjvUmo2af6Z8orL5C/yEjnIH5M
LXi6QvftzNA+6pLaSGN3zQ5eo0mDBwHMTokp4PnuN/pB7tkDsazbKCRYBu/ItOW12wKA7thl
+flUetKBZx8aMYIDZTCCA2ECAQEwaTBeMQswCQYDVQQGEwJERTEgMB4GA1UEChMXTWF4LVBs
YW5jay1HZXNlbGxzY2hhZnQxDzANBgNVBAMTBk1QRyBDQTEcMBoGCSqGSIb3DQEJARYNbXBn
LWNhQG1wZy5kZQIHGXqXLyH0NzANBglghkgBZQMEAgEFAKCCAc0wGAYJKoZIhvcNAQkDMQsG
CSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMTcwNTEwMTQzNzUxWjAvBgkqhkiG9w0BCQQx
IgQgt+tipt2yyNI2RjmKttUHi5vdjROjJN2q5xpMjrQQRb4wbAYJKoZIhvcNAQkPMV8wXTAL
BglghkgBZQMEASowCwYJYIZIAWUDBAECMAoGCCqGSIb3DQMHMA4GCCqGSIb3DQMCAgIAgDAN
BggqhkiG9w0DAgIBQDAHBgUrDgMCBzANBggqhkiG9w0DAgIBKDB4BgkrBgEEAYI3EAQxazBp
MF4xCzAJBgNVBAYTAkRFMSAwHgYDVQQKExdNYXgtUGxhbmNrLUdlc2VsbHNjaGFmdDEPMA0G
A1UEAxMGTVBHIENBMRwwGgYJKoZIhvcNAQkBFg1tcGctY2FAbXBnLmRlAgcZepcvIfQ3MHoG
CyqGSIb3DQEJEAILMWugaTBeMQswCQYDVQQGEwJERTEgMB4GA1UEChMXTWF4LVBsYW5jay1H
ZXNlbGxzY2hhZnQxDzANBgNVBAMTBk1QRyBDQTEcMBoGCSqGSIb3DQEJARYNbXBnLWNhQG1w
Zy5kZQIHGXqXLyH0NzANBgkqhkiG9w0BAQEFAASCAQCIqV7bNqoXd7OGNZeTm8cGLiF3X6zj
6K9CKkX/+xpPuJvVWPYlkBBjjs+vDfJQtvvsHN3CgORr3tH4NoFnirKfIfptYBJfrkBXMoqx
usuAOmN4AnQWicLOSXjPzs9nbJeW7FH11GEQr6hpZ27h61Qydg93dLvVAnkpOFangnFNZ97t
pXX2Qm/lS3DWqPcAmE5Z0xkDHrCEtdxekI8ycj7OGAZ0htAtsu4WGsaRIb1N+IPRpimaoySo
x2Z5OlvVGMpknmLsXqw6oqt5ZD5lGsHpo+/ZhDgIybXxvOtZYt97u5khwYbE+hj6EWg5A4D3
8fnxwilkv5ZhCqY9bToiK9czAAAAAAAA
--------------ms070103020504060602060200--