1
1
#! /bin/sh
2
2
3
- CURWDIR =" $( cd $( dirname $0 ) && pwd) "
3
+ PWD =" $( cd $( dirname $0 ) && pwd) "
4
4
TITLE=" 远程协助"
5
5
PROGRAM_NAME=" app-ssh-reverse"
6
6
CUSTOM_BIN=" /system/apps/tp/bin/custom"
7
- CUSTOM_CONFIG_FILE=" $CURWDIR /custom.conf"
8
7
9
8
APPS_CONFIG_DIR=" /data/conf"
10
9
LAUNCHER_CONFIG_DIR=" $APPS_CONFIG_DIR /launcher/conf.d"
@@ -13,58 +12,77 @@ LAUNCHER_CONFIG_FILE="$LAUNCHER_CONFIG_DIR/$PROGRAM_NAME.conf"
13
12
ICON=" ./res/icon.png"
14
13
PRESSED_ICON=" ./res/icon_pressed.png"
15
14
16
- PID_FILE=" $CURWDIR /$PROGRAM_NAME .pid"
17
- PKILL_BIN=" /usr/bin/pkill"
18
15
INSTALL_BIN=" /usr/bin/install"
19
16
REMOVE=" /bin/rm -f"
20
17
18
+ KEY_FILE=$PWD /ali-ssh-reverse-id_rsa
19
+ KNOWN_HOSTS=$PWD /known_hosts
20
+ SSH=$PWD /ssh
21
+
21
22
usage () {
22
23
echo " ERROR: action missing"
23
24
echo " syntax: $0 <start|stop|restart|status|config|install|uninstall>"
24
25
echo " example: $0 start"
25
26
}
26
27
27
- start () {
28
- echo " start function no implemented"
29
- # $CUSTOM_BIN "$CUSTOM_CONFIG_FILE" &
30
- # [ "$!""XXX" != "XXX" ] && echo "$!" > $PID_FILE
28
+ remote_exec ()
29
+ {
30
+ exec_result=
` $SSH -i $KEY_FILE -o UserKnownHostsFile=" $KNOWN_HOSTS " [email protected] " $1 " `
31
31
}
32
32
33
+ get_port ()
34
+ {
35
+ local netstat=" busy"
36
+ local portlist=1
37
+
38
+ while [ " $netstat " != " " -o " $portlist " != " 0" ]
39
+ do
40
+ # 可以考虑用/dev/random实现,且是1024以上即可
41
+ local RAN_NUM=` date +%s`
42
+ local t1=` expr $RAN_NUM % 50000`
43
+ port_result=` expr $t1 + 1030`
44
+
45
+ remote_exec " netstat -an | grep $port "
46
+ netstat=$exec_result
47
+ remote_exec " cat port.list | grep $port | wc -l"
48
+ portlist=$exec_result
49
+ done
50
+ }
51
+
52
+
33
53
run () {
34
- $CUSTOM_BIN " $CUSTOM_CONFIG_FILE " &
54
+ # 随机取得端口
55
+ get_port;
56
+ local port=$port_result
57
+
58
+ echo " 使用PORT:$port "
59
+ $SSH -i $KEY_FILE -o UserKnownHostsFile=" $KNOWN_HOSTS " \
60
+ -g -NfR
* :
$port :
* :22
[email protected]
61
+
62
+ messagebox 远程协助 " 远程协助已开启,服务序号$port 。
63
+ 请在结束协助后点击结束退出远程协助。" 1 结束 " killall ssh"
64
+
65
+ }
66
+
67
+ start () {
68
+ echo " not implemented"
35
69
}
36
70
37
71
stop () {
38
- echo " stop function not implemented"
39
- # if [ -f $PID_FILE ]; then
40
- # kill `cat "$PID_FILE"`
41
- # $REMOVE $PID_FILE
42
- # fi
72
+ echo " not implemented"
43
73
}
44
74
45
75
config () {
46
76
echo " {" > " $PROGRAM_NAME .conf"
47
77
echo " \" name\" : \" $TITLE \" ," >> " $PROGRAM_NAME .conf"
48
- echo " \" icon\" : \" $CURWDIR /$ICON \" ," >> " $PROGRAM_NAME .conf"
49
- echo " \" iconPressed\" : \" $CURWDIR /$PRESSED_ICON \" ," >> " $PROGRAM_NAME .conf"
50
- echo " \" exec\" : \" $CURWDIR /init run\" ," >> " $PROGRAM_NAME .conf"
78
+ echo " \" icon\" : \" $PWD /$ICON \" ," >> " $PROGRAM_NAME .conf"
79
+ echo " \" iconPressed\" : \" $PWD /$PRESSED_ICON \" ," >> " $PROGRAM_NAME .conf"
80
+ echo " \" exec\" : \" $PWD /init run\" ," >> " $PROGRAM_NAME .conf"
51
81
echo " \" msgNum\" : 4" >> " $PROGRAM_NAME .conf"
52
82
echo " }" >> " $PROGRAM_NAME .conf"
53
83
54
84
$INSTALL_BIN -d $LAUNCHER_CONFIG_DIR
55
85
$INSTALL_BIN " $PROGRAM_NAME .conf" " $LAUNCHER_CONFIG_FILE "
56
-
57
- echo " {" > " $CUSTOM_CONFIG_FILE "
58
- echo " \" title\" : \" $TITLE \" ," >> " $CUSTOM_CONFIG_FILE "
59
- echo " \" content\" : \" 点击开始,然后按照所提示文字即可远程ssh到路由器上\" ," >> " $CUSTOM_CONFIG_FILE "
60
- echo " \" button1\" : {" >> " $CUSTOM_CONFIG_FILE "
61
- echo " \" txt\" : \" 开始\" ," >> " $CUSTOM_CONFIG_FILE "
62
- echo " \" cmd\" : \" $CURWDIR /ssh-reverse.sh $CURWDIR /ali-ssh-reverse-id_rsa \" ," >> " $CUSTOM_CONFIG_FILE "
63
- echo " \" code\" : {" >> " $CUSTOM_CONFIG_FILE "
64
- echo " \" 0\" : \" 执行成功\" " >> " $CUSTOM_CONFIG_FILE "
65
- echo " }" >> " $CUSTOM_CONFIG_FILE "
66
- echo " } " >> " $CUSTOM_CONFIG_FILE "
67
- echo " } " >> " $CUSTOM_CONFIG_FILE "
68
86
}
69
87
70
88
uninstall () {
@@ -82,15 +100,15 @@ case "$1" in
82
100
start;;
83
101
" stop" )
84
102
stop;;
85
- " run" )
86
- run;;
87
103
" restart" )
88
104
start
89
105
stop;;
106
+ " run" )
107
+ run;;
90
108
" install" )
91
109
config;;
92
110
" uninstall" )
93
111
uninstall;;
94
112
* )
95
113
usage ;;
96
- esac
114
+ esac
0 commit comments