-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmountjac
executable file
·69 lines (63 loc) · 1.43 KB
/
mountjac
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/bin/sh
myname=`basename "$0"`
usage() {
echo "Usage: $myname" >&2
exit 2
}
user=`id -un`
jethost=lingen-vsf-pub-2.jet.uk
masthost=mastpcs3.mastdev.l
main() {
test $# -eq 0 || usage
case "$myname" in
mountjac)
do_mount "/jachome/$user" "$HOME/jachome"
;;
mountsol)
do_mount "/solhome/$user" "$HOME/solhome"
;;
mountmeta)
do_mount "/home/codas/meta" "$HOME/meta"
;;
mountmast)
do_mount "/devhome/chah" "$HOME/mast" "$masthost"
;;
mountpcs)
do_mount "/net/mastpcs3/work/chah/pcs" "$HOME/pcs" "$masthost"
;;
mountchain1)
do_mount /home/chain1 /home/chain1
do_mount /common/chain1 /common/chain1
;;
*)
echo "$myname: Unknown invocation name" >$2
exit 2
;;
esac
}
#host=heimdall001.jet.uk
do_mount() {
src=$1; dest=$2; host=${3-$jethost}
mounted=`mount -t fuse.sshfs | fgrep " on $dest " | cut -d' ' -f1`
if [ -n "$mounted" ]; then
# Yes, but... underlying connection may have failed
err=`ls -d "$dest" 2>&1 >/dev/null`
case "$err" in
*"Transport endpoint is not connected"*)
fusermount -u "$dest"
;;
"")
echo "$myname: $mounted already mounted on $dest" >&2
exit 1
;;
*)
echo "$err" >&2
exit 1
esac
fi
# "ServerAliveInterval=15" may avoid "Transport endpoint disconnected"
sshfs "$host:$src" "$dest" -o reconnect -o ServerAliveInterval=15 || exit $?
}
# To unmount:
# fusermount -u "$dest"
main "$@"