Commit b0bb909d1be47d11956cdf707f5e59f256daef8f
1 parent
049e4404
Changed method to determine whether host provided is reachable so it works on Li…
…nux as well (Fixes #1) Added a more verbose usage/help when invoking the script without parameters (and support -h parameter)
Showing
1 changed file
with
18 additions
and
10 deletions
copy_crashplan_id
1 | 1 | #!/bin/bash -e |
2 | 2 | # |
3 | -# copy_crashplan_id shell scripts to copy the connection key from a remote | |
3 | +# copy_crashplan_id - shell scripts to copy the connection key from a remote | |
4 | 4 | # (e.g. headless) Crashplan instance and setup the local |
5 | 5 | # machine's Crashplan client to connect to it using port |
6 | 6 | # forwarding over an open SSH connection. See also https://support.code42.com/CrashPlan/4/Configuring/Using_CrashPlan_On_A_Headless_Computer |
7 | 7 | # |
8 | -# Version 1.0, latest version at: https://gitlab.lindenaar.net/scripts/crashplan | |
8 | +# Version 1.1, latest version at: https://gitlab.lindenaar.net/scripts/crashplan | |
9 | 9 | # |
10 | 10 | # Copyright (c) 2016 Frederik Lindenaar |
11 | 11 | # |
... | ... | @@ -24,7 +24,7 @@ |
24 | 24 | HOST= # name of machine runnig crashplan |
25 | 25 | USER= # userid to use to login to machine |
26 | 26 | # Leave blank for current user |
27 | -SRC_SYSTEM=Linux # either Linux, Darwin, osx or detect | |
27 | +SRC_SYSTEM=Linux # either Linux, Darwin, osx or detect | |
28 | 28 | # Autodetects if blank (ssh conn, slow!) |
29 | 29 | |
30 | 30 | |
... | ... | @@ -56,13 +56,22 @@ file_location() { |
56 | 56 | esac |
57 | 57 | } |
58 | 58 | |
59 | +myname=`basename "$0" .sh` | |
59 | 60 | |
60 | 61 | # determine the connection parameters based on command line and configuration |
61 | -if [ $# -gt 2 -o $# -eq 0 -a -z "$HOST" ]; then | |
62 | - echo "usage: $0 [user@]hostname [linux|osx|detect]" | |
63 | - if [ -n "$HOST" ]; then | |
64 | - echo " or just $0 to copy from $HOST" | |
65 | - fi | |
62 | +if [ $# -gt 2 -o "$1" == "-h" -o "$1" == "--help" -o $# -eq 0 -a -z "$HOST" ]; then | |
63 | + cat<<EOH | |
64 | + | |
65 | +usage: $myname [user@]hostname [linux|osx|detect]${HOST:+" | |
66 | + or just $myname to copy from $HOST"} | |
67 | + | |
68 | +Copy the connection key from a remote (e.g. headless) Crashplan instance and | |
69 | +setup the Crashplan client on local machine to connect to it using SSH port | |
70 | +forwarding (enable with ssh -L $PORT:$ADDR:4243 <name of Crashplan server>) | |
71 | + | |
72 | +See also https://support.code42.com/CrashPlan/4/Configuring/Using_CrashPlan_On_A_Headless_Computer | |
73 | + | |
74 | +EOH | |
66 | 75 | exit 2 |
67 | 76 | elif [ $# -gt 0 ]; then |
68 | 77 | conn=$1 |
... | ... | @@ -73,7 +82,7 @@ else |
73 | 82 | fi |
74 | 83 | |
75 | 84 | # ensure the host is reachable |
76 | -if ping -o $HOST > /dev/null 2>&1; then | |
85 | +if ping -c 1 $HOST > /dev/null 2>&1; then | |
77 | 86 | echo "copying Crashplan connect key from $HOST" |
78 | 87 | else |
79 | 88 | die "unable to reach host $HOST" |
... | ... | @@ -101,7 +110,6 @@ src=`file_location source "$SRC_SYSTEM"` |
101 | 110 | dst=`file_location destination "$os"` |
102 | 111 | |
103 | 112 | # use script name to generate a temp file name, ensure the temp file is removed |
104 | -myname=`basename "$0" .sh` | |
105 | 113 | tmpfile=`mktemp -t "$myname"` |
106 | 114 | trap 'rm -f "$tmpfile"' 0 |
107 | 115 | |
... | ... |