Skip to content

Commit f89d213

Browse files
committed
add SANGFOROPER
1 parent 92219ab commit f89d213

4 files changed

Lines changed: 145 additions & 0 deletions

File tree

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
11
# my-python-code
2+
## 重启深信服(SANGFOROPER)
3+
> Python深信服重启
4+
5+
blog:[Python重启深信服设备](http://blog.51cto.com/kaliarch/2095178)
6+
27
## 翻译小工具(FANYI)
38
> Python实现翻译小工具
49

SANGFOROPER/Check_scripts.sh

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#!/bin/bash
2+
num=$(ps -ef |grep pdc.sh|wc -l)
3+
cmd="/usr/bin/nohup /bin/bash /sangfor/Shscripts/pdc/Ping_check.sh &"
4+
5+
if [ ${num} -lt 2 ];then
6+
${cmd}
7+
fi
8+

SANGFOROPER/Ping_check.sh

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#!/bin/bash
2+
IP=10.10.10.2
3+
dir="/sangfor/Shscripts/pdc/"
4+
if [ ! -d ${dir} ];then
5+
mkdir -p ${dir}
6+
fi
7+
echo 1 > ${dir}pdcping.lock
8+
while true
9+
do
10+
Time=`date +%F`
11+
TIME="${Time} 23:59"
12+
if [ "${data}" == "${TIME}" ];then
13+
mkdir ${dir}${Time} && mv ${dir}pdcping.log ${dir}${Time}-pingpdc.log
14+
mv ${dir}${Time}-pingpdc.log ${dir}${Time}
15+
fi
16+
find ${dir} -mtime +7 -type d -exec rm -rf {} \;
17+
18+
find ${dir} -mtime +7 -name "*-pingpdc.log" -exec rm -rf {} \;
19+
data=`date +%F' '%H:%M`
20+
data1=`date +%F' '%H:%M:%S`
21+
echo "------------${data1}---------------">>${dir}pingpdc.log
22+
ping -c 10 ${IP} >>${dir}pingpdc.log
23+
if [ $? -eq 1 ];then
24+
STAT=`cat ${dir}pdcping.lock`
25+
if [ ${STAT} -eq 1 ];then
26+
/usr/local/python34/bin/python3 /sangfor/Pysangfor/SangFor_check.py
27+
echo 0 > ${dir}pdcping.lock
28+
else
29+
continue
30+
fi
31+
else
32+
STAT=`cat ${dir}pdcping.lock`
33+
if [ ${STAT} -eq 0 ];then
34+
echo 1 > ${dir}pdcping.lock
35+
else
36+
continue
37+
fi
38+
fi
39+
40+
41+
done
42+

SANGFOROPER/SangFor_oper.py

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
#!/bin/env python3
2+
from pyvirtualdisplay import Display
3+
from selenium import webdriver
4+
import time
5+
import os
6+
import logging
7+
8+
class Glp_SangFor:
9+
def __init__(self,logger):
10+
self.logger = logger
11+
self.logger.info("--------------start log----------------")
12+
self.display = Display(visible=0, size=(800, 600))
13+
self.display.start()
14+
self.browser = webdriver.Firefox()
15+
self.logger.info("start browser successfuly")
16+
self.sangfor_url = "深信服url"
17+
self.username = '深信服用户名'
18+
self.password = '深信服密码'
19+
20+
def login(self):
21+
self.browser.get(self.sangfor_url)
22+
self.browser.implicitly_wait(5)
23+
self.browser.find_element_by_name('user').send_keys(self.username)
24+
self.browser.find_element_by_name('password').send_keys(self.password)
25+
self.browser.find_element_by_class_name('buttons').click()
26+
self.browser.implicitly_wait(5)
27+
self.logger.info("loggin sangfor successfuly")
28+
29+
def client_reboot(self):
30+
self.browser.find_element_by_id("ext-gen111").click()
31+
print(self.browser.find_element_by_id("ext-gen111").text)
32+
self.browser.implicitly_wait(15)
33+
time.sleep(60)
34+
self.logger.info("switch mainiframe start")
35+
try:
36+
print(self.browser.find_element_by_link_text("重启/重启服务/关机").text)
37+
self.browser.find_element_by_link_text("重启/重启服务/关机").click()
38+
self.browser.implicitly_wait(3)
39+
self.browser.switch_to_frame("mainiframe")
40+
self.browser.implicitly_wait(8)
41+
time.sleep(10)
42+
self.browser.find_element_by_xpath("//button[@id='ext-gen19']").click()
43+
print(self.browser.find_element_by_xpath("//button[@id='ext-gen19']").text)
44+
self.browser.implicitly_wait(10)
45+
#self.browser.find_element_by_xpath("//button[@id='ext-gen42']").click()
46+
print(self.browser.find_element_by_xpath("//button[@id='ext-gen42']").text)
47+
except Exception as e:
48+
self.logger.exception("reboot successful")
49+
return 1
50+
self.browser.close()
51+
self.logger.info("browser close successful")
52+
self.logger.info("--------------end log----------------")
53+
return 0
54+
55+
class Glp_Log:
56+
def __init__(self,filename):
57+
self.filename = filename
58+
def createDir(self):
59+
_LOGDIR = os.path.join(os.path.dirname(__file__), 'publiclog')
60+
print(_LOGDIR)
61+
_TIME = time.strftime('%Y-%m-%d', time.gmtime()) + '-'
62+
_LOGNAME = _TIME + self.filename
63+
print(_LOGNAME)
64+
LOGFILENAME = os.path.join(_LOGDIR, _LOGNAME)
65+
print(LOGFILENAME)
66+
if not os.path.exists(_LOGDIR):
67+
os.mkdir(_LOGDIR)
68+
return LOGFILENAME
69+
print(LOGFILENAME)
70+
71+
def createlogger(self,logfilename):
72+
logger= logging.getLogger()
73+
logger.setLevel(logging.INFO)
74+
handler = logging.FileHandler(logfilename)
75+
handler.setLevel(logging.INFO)
76+
formater = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
77+
handler.setFormatter(formater)
78+
logger.addHandler(handler)
79+
return logger
80+
81+
if __name__ == '__main__':
82+
os.system("pkill firefox")
83+
os.system("pkill Xvfb")
84+
glploger = Glp_Log('public-vpn.log')
85+
logfilename = glploger.createDir()
86+
logger = glploger.createlogger(logfilename)
87+
88+
sangfor_oper = Glp_SangFor(logger)
89+
sangfor_oper.login()
90+
sangfor_oper.client_reboot()

0 commit comments

Comments
 (0)