-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathrsync_server
More file actions
145 lines (111 loc) · 3.82 KB
/
rsync_server
File metadata and controls
145 lines (111 loc) · 3.82 KB
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
#!/bin/bash
COLOR_RED="\033[0;31m"
COLOR_RED_LIGHT="\033[1;31m"
COLOR_GREEN="\033[0;32m"
COLOR_GREEN_LIGHT="\033[1;32m"
COLOR_ORANGE="\033[0;33m"
COLOR_YELLOW="\033[1;33m"
COLOR_BLUE="\033[0;34m"
COLOR_BLUE_LIGHT="\033[1;34m"
COLOR_PURPLE="\033[0;35m"
COLOR_PURPLE_LIGHT="\033[1;35m"
COLOR_CYAN="\033[0;36m"
COLOR_CYAN_LIGHT="\033[1;36m"
COLOR_GRAY="\033[1;30m"
COLOR_GRAY_LIGHT="\033[0;37m"
COLOR_BLACK="\033[0;30m"
COLOR_WHITE="\033[1;37m"
COLOR_END="\033[0m"
SRC=$(echo ${PWD} | cut -d "/" -f 4)
ARGSCOUNT=$#
PORT=''
SERVER=''
SERVER_LETTER=''
NICKNAME=''
PATH_BASED_ON_NICKNAME=''
HELP=''
DOWNLOAD=''
UPLOAD=''
FILENAME=''
OPTARG=''
OPTIND=''
print_help() {
printf "${COLOR_CYAN}* Help module *${COLOR_END}
${COLOR_YELLOW}Pass options:${COLOR_END}
d - specify download username
f - filename
l - server letter
u - specify upload username
${COLOR_GREEN_LIGHT}or -h to print help (this)${COLOR_END}
"
}
while getopts 'd:f:hl:u:' flag; do
case "${flag}" in
d) DOWNLOAD=${OPTARG} ;;
f) FILENAME=${OPTARG} ;;
h) print_help ;;
l) SERVER_LETTER=${OPTARG} ;;
u) UPLOAD=${OPTARG} ;;
*) print_help
return 0 ;;
esac
done
re='^\s?[a-zA-Z0-9]+'
! [[ -n $DOWNLOAD ]]; DOWNLOAD_TEST=$?
! [[ -n $UPLOAD ]]; UPLOAD_TEST=$?
! [[ $DOWNLOAD =~ $re ]]; REGEX_DOWNLOAD_TEST=$?
! [[ $UPLOAD =~ $re ]]; REGEX_UPLOAD_TEST=$?
if [[ $DOWNLOAD_TEST -ne $UPLOAD_TEST ]] && [[ $REGEX_DOWNLOAD_TEST -ne $REGEX_UPLOAD_TEST ]] && [[ -n $FILENAME ]] && [[ $FILENAME =~ $re ]] && [[ -z $HELP ]]; then
NICKNAME="$DOWNLOAD$UPLOAD"
elif [[ $ARGSCOUNT == 0 ]]; then
if [[ "$SRC" == "robot.onyxcherry.pl" || "$SRC" == "arduino.onyxcherry.pl" ]]; then
PORT='10333'
SERVER='srv04'
elif [[ "$SRC" == "onyxcherry.pl" ]]; then
PORT='10261'
SERVER='srv03'
else
echo -e "${COLOR_RED}Invalid (sub)domain${COLOR_END}"
return 0;
fi
rsync -avh --progress --delete-excluded -e "ssh -p ${PORT} -i /root/.ssh/root@${SERVER}" /home/tomasz/${SRC}/public root@${SERVER}.mikr.us:/var/www/html/${SRC}/
else
echo -e "${COLOR_RED}Pass filename${COLOR_END}"
return 0;
fi
if [[ "$NICKNAME" == "tomek" ]]; then
PORT='10261'
SERVER='srv03'
PATH_BASED_ON_NICKNAME='/home/tomek/'
elif [[ "$NICKNAME" == "cherry" ]]; then
PORT='10333'
SERVER='srv04'
PATH_BASED_ON_NICKNAME='/home/cherry/'
elif [[ "$NICKNAME" == "root" ]]; then
PATH_BASED_ON_NICKNAME='/root/'
if [[ "$SERVER_LETTER" == "a" ]]; then
PORT='10261'
SERVER='srv03'
elif [[ "$SERVER_LETTER" == "b" ]]; then
PORT='10333'
SERVER='srv04'
else
echo -e "${COLOR_RED}Invalid server letter${COLOR_END}"
return 0;
fi
else
echo -e "${COLOR_RED}Invalid nickname${COLOR_END}"
return 0;
fi
if [[ -n "$DOWNLOAD" ]] && [[ -z "$UPLOAD" ]]; then
echo -e "Pobieram z $COLOR_GREEN_LIGHT${DOWNLOAD}$COLOR_END$COLOR_RED_LIGHT@$COLOR_END$COLOR_ORANGE${SERVER}.mikr.us$COLOR_END$COLOR_RED_LIGHT:$COLOR_END$COLOR_BLUE_LIGHT${PATH_BASED_ON_NICKNAME}${FILENAME}$COLOR_END"
rsync -avh --progress -e "ssh -p ${PORT} -i ${HOME}/.ssh/${DOWNLOAD}@${SERVER}" ${DOWNLOAD}@${SERVER}.mikr.us:${PATH_BASED_ON_NICKNAME}${FILENAME} ${PATH_BASED_ON_NICKNAME}
elif [[ -n "$UPLOAD" ]] && [[ -z "$DOWNLOAD" ]]; then
echo -e "Wysyłam do $COLOR_GREEN_LIGHT${UPLOAD}$COLOR_END$COLOR_RED_LIGHT@$COLOR_END$COLOR_ORANGE${SERVER}.mikr.us$COLOR_END$COLOR_RED_LIGHT:$COLOR_END$COLOR_BLUE_LIGHT${PATH_BASED_ON_NICKNAME}${FILENAME}$COLOR_END"
rsync -avh --progress -e "ssh -p ${PORT} -i ${HOME}/.ssh/${NICKNAME}@${SERVER}" ${PATH_BASED_ON_NICKNAME}${FILENAME} ${NICKNAME}@${SERVER}.mikr.us:${PATH_BASED_ON_NICKNAME}${FILENAME}
elif [[ -n "$UPLOAD" ]] && [[ -n "$DOWNLOAD" ]]; then
echo -e "${COLOR_ORANGE}Not, bro, not at one time...${COLOR_END}"
else
echo -e "${COLOR_RED}Something went wrong${COLOR_END}"
return 0;
fi