-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsquid-controller.py
More file actions
executable file
·113 lines (90 loc) · 2.68 KB
/
squid-controller.py
File metadata and controls
executable file
·113 lines (90 loc) · 2.68 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
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import sys
import os
SQUID_PATH="/usr/share/squidGuard/db/"
#SQUID_PATH = "../squidGuard/db/"
BLANCA = SQUID_PATH + "/lista-blanca/"
NEGRA = SQUID_PATH + "/lista-negra/"
DEBUG = True
ERROR = 0
def debug(txt):
if DEBUG:
print >> sys.stderr, "DEBUG: " , txt
def exe(cmd, _exit = False):
ret = os.system(cmd)
if ret != 0:
ERROR += 1
if _exit:
sys.exit(1)
def restart_squid():
if ERROR > 0:
print "Ocurrieron errores no se reinicia Squid"
sys.exit(1)
exe("squidGuard -d -c /etc/squid3/squidGuard.conf -C all", True)
exe("squidGuard -d -c /etc/squid3/squidGuard.conf -u", True)
exe("chown -R proxy:proxy %s" % SQUID_PATH)
exe("squid3 -k reconfigure || /etc/init.d/squid3 restart", True)
if ERROR == 0:
print "proxy reiniciado"
else:
print "\n\n\nUPSSSSS !!! \nocurrieron errores"
def file_exists(_file):
if not os.path.isfile(_file):
print "El archivo %s no existe" % _file
sys.exit(1)
else:
print "Usando archivo %s" % _file
def append_line(_file, line):
f = open(_file, 'r')
data = f.readlines()
f.close()
for l in data:
if l.replace('\n','') == line:
print("no añadiendo línea '%s' (ya estaba)" %line )
return
f = open(_file, 'w')
for l in data:
f.write(l)
f.write(line + "\n")
print("añadiendo línea '%s'" %line )
f.close()
def delete_line(_file, line):
f = open(_file, 'r')
data = f.readlines()
f.close()
newdata = []
for i in range(len(data)):
l = data[i]
if l.replace('\n','') == line:
print( "linea '%s' encontrada y borrada" %line )
else:
newdata.append(l)
f = open(_file, 'w')
for l in newdata:
f.write(l)
f.close()
if sys.argv[1] == "--restart-squid":
restart_squid()
sys.exit(0)
if len(sys.argv) < 4:
print "No se han pasado suficientes opciones"
sys.exit(0)
if sys.argv[1] == "--add-blanca":
file_exists( BLANCA +"/" + sys.argv[2])
append_line( BLANCA +"/" + sys.argv[2] , sys.argv[3] )
restart_squid()
elif sys.argv[1] == "--add-negra":
file_exists( NEGRA +"/" + sys.argv[2])
append_line( NEGRA +"/" + sys.argv[2] , sys.argv[3] )
restart_squid()
elif sys.argv[1] == "--delete-blanca":
file_exists( BLANCA +"/" + sys.argv[2])
delete_line( BLANCA +"/" + sys.argv[2] , sys.argv[3] )
restart_squid()
elif sys.argv[1] == "--delete-negra":
file_exists( NEGRA +"/" + sys.argv[2])
delete_line( NEGRA +"/" + sys.argv[2] , sys.argv[3] )
restart_squid()
else:
print "parametros incorrectos"