Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
att
GitHub Repository: att/ast
Path: blob/master/src/lib/libcs/genshare.sh
1808 views
1
########################################################################
2
# #
3
# This software is part of the ast package #
4
# Copyright (c) 1990-2011 AT&T Intellectual Property #
5
# and is licensed under the #
6
# Eclipse Public License, Version 1.0 #
7
# by AT&T Intellectual Property #
8
# #
9
# A copy of the License is available at #
10
# http://www.eclipse.org/org/documents/epl-v10.html #
11
# (with md5 checksum b35adb5213ca9657e911e9befb180842) #
12
# #
13
# Information and Software Systems Research #
14
# AT&T Research #
15
# Florham Park NJ #
16
# #
17
# Glenn Fowler <[email protected]> #
18
# #
19
########################################################################
20
: generate list of file servers
21
#
22
# genshare [options]
23
#
24
# @(#)genshare (AT&T Research) 2002-10-02
25
#
26
27
dir=.
28
rsh=rsh
29
while :
30
do case $# in
31
0) break ;;
32
esac
33
case $1 in
34
-[dr]) case $# in
35
1) set -- '-?'
36
break
37
;;
38
esac
39
case $1 in
40
-d) dir=$2 ;;
41
-r) rsh=$2 ;;
42
esac
43
shift
44
;;
45
'-?') break
46
;;
47
[-+]*) echo "$0: $1: invalid option" >&2
48
set -- '-?'
49
break
50
;;
51
*) break
52
;;
53
esac
54
shift
55
done
56
case $1 in
57
?*) echo "Usage: $0 [-d share-dir] [-r rsh-path]" >&2; exit 1 ;;
58
esac
59
if test ! -d $dir
60
then echo "$0: $dir: invalid directory" >&2; exit 1
61
fi
62
s="`df 2>/dev/null | sed -e 's/^[^(]*(//' -e '/^[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]*:/!d' -e 's/:.*//' -e '/^.$/d' | sort -u`"
63
case $s in
64
"") s=`hostname 2>/dev/null || uname -n 2>/dev/null || cat /etc/whoami 2>/dev/null || echo local 2>/dev/null`
65
;;
66
*) p=`df $dir/. 2>/dev/null | sed -e 's/^[^(]*(//' -e '/^[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]*:/!d' -e 's/:.*//' -e '/^.$/d'`
67
case $p in
68
"") p=`hostname 2>/dev/null || uname -n 2>/dev/null || cat /etc/whoami 2>/dev/null || echo local 2>/dev/null` ;;
69
esac
70
t=$s
71
s=$p
72
for h in $t
73
do case $s in
74
*$h*) ;;
75
*) s="$s
76
$h" ;;
77
esac
78
done
79
t=$s
80
s=`(echo "$t"; for h in $t
81
do $rsh $h df '2>/dev/null' | sed -e 's/^[^(]*(//' -e '/^[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]*:/!d' -e 's/:.*//'
82
done) | sort | uniq -c | sort -bnr | sed -e 's/^[ ]*[0-9]*[ ]*//'`
83
;;
84
esac
85
echo '#'
86
echo '# local file servers'
87
echo '#'
88
echo "$s"
89
90