mdserver-web/plugins/bbr/index.py

110 lines
2.3 KiB
Python
Raw Normal View History

2019-03-28 13:02:58 -04:00
# coding: utf-8
import time
import random
import os
import json
import re
import sys
sys.path.append(os.getcwd() + "/class/core")
2020-07-10 03:57:25 -04:00
import mw
2019-03-28 13:02:58 -04:00
2019-03-29 23:43:31 -04:00
app_debug = False
2020-07-10 03:57:25 -04:00
if mw.isAppleSystem():
2019-03-29 23:43:31 -04:00
app_debug = True
2019-03-29 01:56:30 -04:00
def getPluginName():
return 'bbr'
def getPluginDir():
2020-07-10 03:57:25 -04:00
return mw.getPluginDir() + '/' + getPluginName()
2019-03-29 01:56:30 -04:00
def getServerDir():
2020-07-10 03:57:25 -04:00
return mw.getServerDir() + '/' + getPluginName()
2019-03-29 01:56:30 -04:00
def getInitDFile():
if app_debug:
return '/tmp/' + getPluginName()
return '/etc/init.d/' + getPluginName()
2019-03-29 23:33:09 -04:00
2019-03-29 01:56:30 -04:00
def getArgs():
args = sys.argv[2:]
tmp = {}
args_len = len(args)
if args_len == 1:
t = args[0].strip('{').strip('}')
t = t.split(':')
tmp[t[0]] = t[1]
elif args_len > 1:
for i in range(len(args)):
t = args[i].split(':')
tmp[t[0]] = t[1]
return tmp
2019-03-29 23:33:09 -04:00
2019-03-28 13:02:58 -04:00
def status():
2019-03-29 23:43:31 -04:00
if not app_debug:
2020-07-10 03:57:25 -04:00
if mw.isAppleSystem():
2019-03-29 23:43:31 -04:00
return "stop"
2019-03-29 23:33:09 -04:00
2020-07-10 03:57:25 -04:00
data = mw.execShell('sudo sysctl -n net.ipv4.tcp_congestion_control')
2019-03-29 23:34:16 -04:00
r = data[0].strip()
if r == 'bbr':
return 'start'
return 'stop'
2019-03-28 13:02:58 -04:00
2019-03-29 23:43:31 -04:00
def start():
if not app_debug:
2020-07-10 03:57:25 -04:00
if mw.isAppleSystem():
2019-03-29 23:43:31 -04:00
return "Apple Computer does not support"
2020-07-10 03:57:25 -04:00
mw.execShell('echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf')
2019-03-29 23:43:31 -04:00
cmd = 'echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf'
2020-07-10 03:57:25 -04:00
mw.execShell(cmd)
mw.execShell('sysctl -p')
2019-03-30 00:01:19 -04:00
return '执行成功!重启系统生效'
2019-03-29 23:43:31 -04:00
def stop():
if not app_debug:
2020-07-10 03:57:25 -04:00
if mw.isAppleSystem():
2019-03-29 23:43:31 -04:00
return "Apple Computer does not support"
2019-03-29 23:58:34 -04:00
cmd1 = "sed -i '/net\.core\.default_qdisc/d' /etc/sysctl.conf"
2020-07-10 03:57:25 -04:00
mw.execShell(cmd1)
2019-03-29 23:58:34 -04:00
cmd2 = "sed -i '/net\.ipv4\.tcp_congestion_control/d' /etc/sysctl.conf"
2020-07-10 03:57:25 -04:00
mw.execShell(cmd2)
mw.execShell("sysctl -p")
2019-03-30 00:01:19 -04:00
return '执行成功!重启系统生效'
2019-03-29 23:43:31 -04:00
def restart():
return '无效'
def reload():
return '无效'
2019-03-28 13:02:58 -04:00
if __name__ == "__main__":
func = sys.argv[1]
if func == 'status':
2021-05-01 02:17:42 -04:00
print(status())
2019-03-29 23:43:31 -04:00
elif func == 'start':
2021-05-01 02:17:42 -04:00
print(start())
2019-03-29 23:43:31 -04:00
elif func == 'stop':
2021-05-01 02:17:42 -04:00
print(stop())
2019-03-29 23:43:31 -04:00
elif func == 'restart':
2021-05-01 02:17:42 -04:00
print(restart())
2019-03-29 23:43:31 -04:00
elif func == 'reload':
2021-05-01 02:17:42 -04:00
print(reload())