-
Notifications
You must be signed in to change notification settings - Fork 23
Expand file tree
/
Copy pathopencdn
More file actions
102 lines (87 loc) · 2.12 KB
/
opencdn
File metadata and controls
102 lines (87 loc) · 2.12 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
#!/bin/bash
#description: opencdn
#chkconfig: 2345 20 81
EXEC="opencdn"
EXEC_INFO="send_info"
PID_FILE="/var/run/$EXEC.pid"
OPENCDN_LOG_PATH="/var/log/opencdn"
OPENCDN_EXEC_PATH="/usr/local/opencdn/sbin"
OPENCDN_CONF_FILE="/usr/local/opencdn/conf/opencdn.conf"
. /etc/rc.d/init.d/functions
[ -x ${OPENCDN_EXEC_PATH}/$EXEC_INFO ] || echo "ERROR: $EXEC_INFO not found"
[ -f "$PID_FILE" ] || touch $PID_FILE
function change_console_ip()
{
new_console_ip=`cat ${OPENCDN_CONF_FILE} | grep "Console_IP" | awk -F = '{print $2}'`
[ ! -z "${new_console_ip}" ] || return 1
#change console IP of rsync
rsync_old_ip=`cat /etc/rsyncd.conf | grep "hosts allow" | awk -F = '{print $2}'`
if [ "${rsync_old_ip}" != " $new_console_ip" ]
then
sed "s/$rsync_old_ip/ $new_console_ip/g" -i /etc/rsyncd.conf
fi
#change console IP of syslog
syslog_old_ip=`cat /etc/syslog-ng/syslog-ng.conf | grep "udp(" | head -1 | awk -F \" '{print $2}'`
if [ "${syslog_old_ip}" != "$new_console_ip" ]
then
sed "s/$syslog_old_ip/$new_console_ip/g" -i /etc/syslog-ng/syslog-ng.conf
fi
}
stop()
{
echo "Stoping $EXEC ..."
ps aux | grep "$EXEC_INFO" | kill -9 `awk '{print $2}'` >/dev/null 2>&1
kill -9 `ps aux | grep 'rsync' | awk '{print $2}'` > /dev/null 2>&1
service syslog-ng stop
echo "" > $PID_FILE
usleep 100
echo "Shutting down $EXEC: [ OK ]"
}
start()
{
if [ "`cat $PID_FILE`" == "running" ];then
echo "$EXEC is running"
exit 1
fi
change_console_ip
echo "Starting $EXEC ..."
rm -f /var/run/rsyncd.pid
/usr/bin/rsync --daemon
service syslog-ng start
nohup /bin/bash ${OPENCDN_EXEC_PATH}/send_info >> ${OPENCDN_LOG_PATH}/send_info.log 2>&1 &
echo "running" > $PID_FILE
usleep 100
echo "Starting $EXEC: [ OK ]"
}
restart()
{
stop
start
}
status()
{
if [ "`cat $PID_FILE`" == "running" ]
then
echo "$EXEC is running"
else
echo "$EXEC is not running"
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
status)
status
;;
*)
echo "Usage: service $EXEC {start|stop|restart|status}"
exit 1
esac
exit $?