Que necesitas
- Servidor Ubuntu instalado (personalmente en mi implementación es la versión 13.04)
- Apache2 instalado
- Instalado configurado y ya recolectando estadísticas de calamar (en mi caso es 2.7)
Estipularemos preliminarmente las condiciones:
- El usuario es identificado por su dirección IP
- Cada usuario solo puede ver sus propias estadísticas
- Las estadísticas se muestran a través de la interfaz WEB
Comenzar
Necesita lighsquid él mismo
El primer paso es descargar LightSquid
wget http://downloads.sourceforge.net/project/lightsquid/lightsquid/1.8/lightsquid-1.8.tgz
Descomprímelo. Preferí descomprimir en la raíz / var, de hecho, también puedes en / www (si necesitas gráficos, etc.)
alquitrán -zxf lightsquid-1.8.tgz / var / lightsquid
Establecemos recursivamente 755 derechos para el usuario y grupo www-data en el directorio y su contenido
chmod -R 755 / var / lightsquid
chown -R www-data: www-data / var / lightsquid
Hacemos que los scripts del programa sean ejecutables:
chmod + x * .cgi
chmod + x * .pl
Si realmente necesita gráficos, debe instalar el paquete libgd-gd2-perl
sudo apt-get install libgd-gd2-perl
Ahora necesitas modificar la configuración de LightSquid.
nano /var/lightsquid/lightsquid.cfg
Editar rutas en la sección VARIABLES GLOBALES
# ruta a archivos `cfg` adicionales
$ cfgpath =" / var / lightsquid ";
# ruta a la carpeta `tpl`
$ tplpath =" / var / lightsquid / tpl ";
# ruta a la carpeta `lang`
$ langpath =" / var / lightsquid / lang ";
# ruta a la carpeta `report`
$ reportpath =" / var / lightsquid / report ";
#ruta de acceso.log
$ logpath = "/ var / log / squid";
# ruta a la carpeta `ip2name`
$ ip2namepath =" / var / lightsquid / ip2name ";
En la sección VARIABLES WEB, configure el idioma de interfaz deseado. En este caso, ruso.
$ lang = "ru";
Bueno, todo el calamar de luz debería estar listo para funcionar. Si tiene registros de calamar, puede analizarlos para poder verlos más tarde en el informe:
/ var / lightsquid # ./lightparser.pl access.log.59 && ./lightparser.pl access.log.58 && ./lightparser.pl access.log.57 && ./lightparser.pl access.log.56 &&. /lightparser.pl access.log.55 && ./lightparser.pl access.log.54 && ./lightparser.pl access.log.53 ... etc.
El proceso en sí
Porque LightSquid con la ayuda de scripts cgi genera archivos etiquetados html, luego los entrega al servidor, el servidor al usuario y el usuario, a su vez, ve TODAS las estadísticas de TODOS los usuarios - esto no es bueno. Por lo tanto, hay una tarea, "interceptar" la salida, hacer sus propios archivos html con preferencia y cortesanas y entregar el archivo procesado al usuario.
Primer script PHP
Crea un archivo:
nano /var/www/index.php
Tendremos el primer script en PHP: esta será la página de inicio que mostrará al usuario la primera página "procesada" de ligsquid. Ingresamos los datos:
<?php
$year = " {$_GET['year']}";
$month = " {$_GET['month']}";
$day = " {$_GET['day']}";
$ip_host = "{$_SERVER['REMOTE_ADDR']}";
$str = "sudo /var/lightsquid/my_scr/index.sh ".$ip_host.$year.$month.$day;
echo exec($str);
include "/var/lightsquid/my_tmp/".$ip_host."log_file.html"
?>
El principio es el siguiente. Recibimos cualquier parámetro a través de PHP, en este caso el año, mes, día, en la página de inicio estos parámetros están vacíos, pero si cambia a otro mes o año, se completarán inmediatamente.
A continuación, nosotros mismos averiguaremos la IP del host que solicitó esta página. Necesitamos esta IP para formar datos SOLAMENTE en ella, y en general para navegar de alguna manera entre los archivos que creamos, porque vincularemos el nombre del archivo a su dirección IP.
A continuación, formamos una cadena. Que lanza el siguiente script (descrito a continuación) y le transfiere los parámetros de IP, año, mes, día.
Llamamos a este script para ejecución.
Mostramos la página html. Tenga en cuenta que el nombre de la página se forma a partir de la dirección IP del host y el prefijo "log_file.html"
Segundo script de shell
Este script implementará el lanzamiento del script cgi de lightsquid y escribirá el resultado de la ejecución (script cgi) en un archivo separado. Y luego inicializa el lanzamiento de otro script con la transferencia de parámetros (sobre lo cual a continuación).
Crea un archivo
nano /var/lightsquid/my_scr/index.sh
Haciéndolo ejecutable
chmod + x index.sh
Una nota importante, como el script debe ejecutarse bajo los derechos del usuario de www-data. Luego, debe agregar la siguiente línea al archivo / etc / sudoers en el bloque de especificación de privilegios de usuario #:
www-data TODOS = (TODOS) NOPASSWD: /var/lightsquid/my_scr/index.sh
A continuación, escribimos los datos en el archivo.
#!/bin/sh
$1 #ip
$2 #
$3 #
$4 #
str="log_file"
param="year="$2"&month="$3"&day="$4
LOG_FILE=/var/lightsquid/my_tmp/$1$str.html
{
export REQUEST_METHOD=GET
export QUERY_STRING=$param
/var/lightsquid/index.cgi
}> $LOG_FILE 2>&1
/var/lightsquid/my_scr/index.py $1
Razyasnyu:
Obtener los parámetros de IP, año, día, mes
en la variable escribe la cadena «log_file»
Formular una solicitud y escribirla en una variable
Ejecutar el script cgi que se suministran los parámetros, el resultado del script se guarda en un archivo llamado host IP + «log_file.html»
Llamamos a otro script, le pasamos parámetros.
Tercer script de Python
Porque la página generada contiene muchos enlaces innecesarios e incorrectos (por ejemplo, se refiere a cgi que no podemos interceptar), y así sucesivamente, este archivo debe corregirse. reemplace todos los enlaces con los nuestros y elimine un par de líneas.
Crea un archivo:
nano /var/lightsquid/my_scr/index.py
Hacemos que el archivo sea ejecutable.
chmod + x index.sh
Escribimos los siguientes datos en él:
#!/usr/bin/env python
#coding: utf-8
import sys # sys
ip_host = sys.argv[1] # IP
# lightsquid
seach_ip = ip_host
path_file = '/var/lightsquid/my_tmp/'+ ip_host + 'log_file.html' #
count_line = sum(1 for l in open(path_file, 'r')) #
#len(open(path_file, 'r').readlines()) #
file = open(path_file, 'r') #
lines = file.readlines() #
file.close() #
i = 0
for i in range(count_line): # 0
if "day_detail.cgi" in lines[i]: # cgi
lines[i] = lines[i].replace('day_detail.cgi','day_detail.php') # ,
if "group_detail.cgi" in lines[i]: #
lines[i] = " <code><TD> </TD></code>" #
if "index.cgi" in lines[i]:
lines[i] = lines[i].replace('index.cgi','index.php')
if "month_detail.cgi" in lines[i]:
lines[i] = lines[i].replace('month_detail.cgi','month_detail.php')
if "graph.cgi" in lines[i]:
lines[i] = " "
if "topsites.cgi" in lines[i]:
lines[i] = lines[i].replace('topsites.cgi','topsites.php')
file = open('/var/lightsquid/my_tmp/' + ip_host + 'log_file.html','w')
file.writelines(lines)
file.close
En general, la sangría (cuatro espacios) es muy importante en Python para aquellos que no saben :)
Permítanme explicar un poco el script.
Obtenemos la dirección IP del usuario que solicitó las estadísticas (esta dirección IP se transmite aquí desde el script anterior).
A continuación, abrimos el archivo generado por el script lightsquid cgi, averigua
cuántas líneas contiene
, hacemos un bucle, en este bucle verificamos que cada línea cumpla con nuestros requisitos. Es decir, cambia las rutas de los enlaces de cgi a php, además, no necesitaba que los usuarios no vieran los grupos, por lo que generalmente hago que esta columna esté vacía ().
Bueno, eso es todo, volvemos a escribir el archivo ya procesado.
Y así, descubrí una forma de cómo debería hacerse todo. Pero se necesitan 27 scripts para funcionar completamente. Por supuesto, era posible meter todo en un solo guión y, en general, habría resultado solo 3, pero no me compliqué la vida. A continuación me gustaría dar el resto de los scripts, pero con un breve análisis de los mismos y sin pasos innecesarios para crearlos (ya que acciones similares se describieron anteriormente).
El resto de los saltos
Todo lo relacionado con bigfiles
bigfiles.php
<?php
$year = " {$_GET['year']}";
$month = " {$_GET['month']}";
$day = " {$_GET['day']}";
$ip_host = "{$_SERVER['REMOTE_ADDR']}";
$str = "sudo /var/lightsquid/my_scr/my_bigfiles.sh ".$ip_host.$year.$month.$day;
echo exec($str);
include "/var/lightsquid/my_tmp/".$ip_host."log_file.html"
?>
my_bigfiles.sh
#!/bin/sh
$1 #ip
$2 #
$3 #
$4 #
str="log_file"
param="year="$2"&month="$3"&day="$4"&user="$1
LOG_FILE=/var/lightsquid/my_tmp/$1$str.html
{
export REQUEST_METHOD=GET
export QUERY_STRING=$param
/var/lightsquid/bigfiles.cgi
}> $LOG_FILE 2>&1
/var/lightsquid/my_scr/my_bigfiles.py $1
my_bigfiles.py
#!/usr/bin/env python
#coding: utf-8
import sys # sys
ip_host = sys.argv[1] # IP
seach_ip = ip_host
path_file = '/var/lightsquid/my_tmp/'+ ip_host + 'log_file.html' #
count_line = sum(1 for l in open(path_file, 'r')) #
#len(open(path_file, 'r').readlines()) #
file = open(path_file, 'r') #
lines = file.readlines() #
file.close() #
i = 0
for i in range(count_line): # 0
if "index.cgi" in lines[i]:
lines[i] = lines[i].replace('index.cgi','index.php')
if "user_detail.cgi" in lines[i]:
lines[i] = lines[i].replace('user_detail.cgi','user_detail.php')
file = open('/var/lightsquid/my_tmp/' + ip_host + 'log_file.html','w')
file.writelines(lines)
file.close
Todo lo relacionado con day_detail
bigfiles.php
<?php
$year = " {$_GET['year']}";
$month = " {$_GET['month']}";
$day = " {$_GET['day']}";
$ip_host = "{$_SERVER['REMOTE_ADDR']}";
$str = "sudo /var/lightsquid/my_scr/my_day_detail.sh ".$ip_host.$year.$month.$day;
echo exec($str);
include "/var/lightsquid/my_tmp/".$ip_host."log_file.html"
?>
!/bin/sh
$1 #ip
$2 #
$3 #
$4 #
str="log_file" #
param="year="$2"&month="$3"&day="$4 #
LOG_FILE=/var/lightsquid/my_tmp/$1$str.html #
{
export REQUEST_METHOD=GET
export QUERY_STRING=$param
/var/lightsquid/day_detail.cgi
}> $LOG_FILE 2>&1
/var/lightsquid/my_scr/my_day_detail.py $1 # , ;)
#!/usr/bin/env python
#coding: utf-8
import sys # sys
ip_host = sys.argv[1] # IP
# lightsquid
# ip
seach_ip = ip_host
path_file = '/var/lightsquid/my_tmp/'+ ip_host + 'log_file.html' #
count_line = sum(1 for l in open(path_file, 'r')) #
#len(open(path_file, 'r').readlines()) #
file = open(path_file, 'r') #
lines = file.readlines() #
file.close() #
for i in range(count_line): # 0
if "tr bgcolor=" + "\42" + "cornsilk" + "\42" in lines[i] or "tr bgcolor=" + "\42" + "beige" + "\42" in lines[i]: # 1 2 ,
if seach_ip in lines[i+3]: continue # ip ,
else:
lines[i] = " "
lines[i+1] = " "
lines[i+2] = " "
lines[i+3] = " "
lines[i+4] = " "
lines[i+5] = " "
lines[i+6] = " "
lines[i+7] = " "
lines[i+8] = " "
lines[i+9] = " "
lines[i+10] = " "
lines[i+11] = " "
lines[i+12] = " "
lines[i+13] = " "
lines[i+14] = " "
lines[i+15] = " "
lines[i+16] = " "
if "user_time.cgi" in lines[i]:
lines[i] = lines[i].replace('user_time.cgi','user_time.php')
if "index.cgi" in lines[i]:
lines[i] = lines[i].replace('index.cgi','index.php')
if "user_detail.cgi" in lines[i]:
lines[i] = lines[i].replace('user_detail.cgi','user_detail.php')
if "topsites.cgi" in lines[i]:
lines[i] = " "
if "bigfiles.cgi" in lines[i]:
lines[i] = " "
if "group_detail.cgi" in lines[i]: #
lines[i] = " <TD> </TD>" #
if "get.cgi" in lines[i]:
lines[i] = lines[i].replace('get.cgi?png=datetime','datetime.png')
file = open('/var/lightsquid/my_tmp/' + ip_host + 'log_file.html','w')
file.writelines(lines)
file.close
Considero necesario aclarar este guión.
El script obtiene la IP del usuario que solicitó los datos.
Porque el archivo que genera cgi es del mismo tipo, decidí vincular la búsqueda de la línea que necesitaba al color de la línea, hay dos
"cornsilk"
y
"beige"
. Si hay una línea de este tipo donde hay este color, entonces movemos tres líneas hacia abajo, hay una dirección IP. Comparamos uno o el incorrecto, y si no es el indicado, simplemente borramos las 16 líneas. (Esto es exactamente lo que toma la descripción de una línea en el informe).
Todo lo relacionado con month_detail
month_detail.php
<?php
$year = " {$_GET['year']}";
$month = " {$_GET['month']}";
$mode = " {$_GET['mode']}";
$ip_host = "{$_SERVER['REMOTE_ADDR']}";
$str = "sudo /var/lightsquid/my_scr/my_month_detail.sh ".$ip_host.$year.$month.$mode;
echo exec($str);
include "/var/lightsquid/my_tmp/".$ip_host."log_file.html"
?>
my_month_detail.sh
!/bin/sh
$1 #ip
$2 #
$3 #
$4 #
str="log_file" #
param="year="$2"&month="$3"&mode="$4 #
LOG_FILE=/var/lightsquid/my_tmp/$1$str.html #
{
export REQUEST_METHOD=GET
export QUERY_STRING=$param
/var/lightsquid/month_detail.cgi
}> $LOG_FILE 2>&1
/var/lightsquid/my_scr/my_month_detail.py $1 $3 # , ;)
my_month_detail.py
#!/usr/bin/env python
#coding: utf-8
import sys # sys
ip_host = sys.argv[1] # IP
month = sys.argv[2]
# lightsquid
# ip
seach_ip = ip_host
path_file = '/var/lightsquid/my_tmp/'+ ip_host + 'log_file.html' #
count_line = sum(1 for l in open(path_file, 'r')) #
#len(open(path_file, 'r').readlines()) #
file = open(path_file, 'r') #
lines = file.readlines() #
file.close() #
for i in range(count_line): # 0
if "tr bgcolor=" + "\42" + "cornsilk" + "\42" in lines[i] or "tr bgcolor=" + "\42" + "beige" + "\42" in lines[i]: # 1 2 ,
if seach_ip in lines[i+3]: continue # ip ,
else:
if month == "all": # . , , ,
lines[i] = " "
lines[i+1] = " "
lines[i+2] = " "
lines[i+3] = " "
lines[i+4] = " "
lines[i+5] = " "
lines[i+6] = " "
lines[i+7] = " "
lines[i+8] = " "
lines[i+9] = " "
lines[i+10] = " "
lines[i+11] = " "
lines[i+12] = " "
lines[i+13] = " "
lines[i+14] = " "
else:
lines[i] = " "
lines[i+1] = " "
lines[i+2] = " "
lines[i+3] = " "
lines[i+4] = " "
lines[i+5] = " "
lines[i+6] = " "
lines[i+7] = " "
lines[i+8] = " "
lines[i+9] = " "
lines[i+10] = " "
lines[i+11] = " "
lines[i+12] = " "
lines[i+13] = " "
lines[i+14] = " "
lines[i+15] = " "
for i in range(count_line): # 0
if lines[i]<> " ":
if "index.cgi" in lines[i]:
lines[i] = lines[i].replace('index.cgi','index.php')
if "user_time.cgi" in lines[i]:
lines[i] = lines[i].replace('user_time.cgi','user_time.php')
if "graph.cgi" in lines[i]:
lines[i] = '<TD></TD>'
if "user_month.cgi" in lines[i]:
lines[i] = lines[i].replace('user_month.cgi','user_month.php')
if "user_detail.cgi" in lines[i]:
lines[i] = lines[i].replace('user_detail.cgi','user_detail.php')
if "get.cgi" in lines[i]:
lines[i] = lines[i].replace('get.cgi?png=datetime','datetime.png')
if "get.cgi" in lines[i]:
lines[i] = lines[i].replace('get.cgi?png=graph','graph.png')
file = open('/var/lightsquid/my_tmp/' + ip_host + 'log_file.html','w')
file.writelines(lines)
file.close
En este script, casi lo mismo que se describió anteriormente, solo que la diferencia es esta, se reciben diferentes parámetros (año y mes), por lo tanto, el número de líneas que forman los datos es diferente. dependiendo del parámetro recibido,
month = sys.argv[2]
elegimos la acción.
Todo lo relacionado con los topsites
topsites.php
<?php
$year = " {$_GET['year']}";
$month = " {$_GET['month']}";
$day = " {$_GET['day']}";
$mode = " {$_GET['mode']}";
$order = " {$_GET['order']}";
$ip_host = "{$_SERVER['REMOTE_ADDR']}";
$str = "sudo /var/lightsquid/my_scr/my_topsites.sh ".$ip_host.$year.$month.$mode.$order;
echo exec($str);
include "/var/lightsquid/my_tmp/".$ip_host."log_file.html"
?>
my_topsites.sh
#!/bin/sh
$1 #ip
$2 #
$3 #
$4 #\
$5 #\
$6 #
str="log_file" #
if [ $5 = "hits" -o $4 = "size" ]
then
param="year="$2"&month="$3"&day=&mode="$4"&order="$5
else
param="year="$2"&month="$3"&mode="$4 #
fi
LOG_FILE=/var/lightsquid/my_tmp/$1$str.html #
{
export REQUEST_METHOD=GET
export QUERY_STRING=$param
/var/lightsquid/topsites.cgi
}> $LOG_FILE 2>&1
/var/lightsquid/my_scr/my_topsites.py $1 # , ;)
Aquí es un poco más complicado, también se pasan diferentes parámetros al script, y dependiendo de los parámetros aceptados por el script, forma una solicitud al script cgi.
my_topsites.py
!/usr/bin/env python
#coding: utf-8
import sys # sys
ip_host = sys.argv[1] # IP
seach_ip = ip_host
path_file = '/var/lightsquid/my_tmp/'+ ip_host + 'log_file.html' #
count_line = sum(1 for l in open(path_file, 'r')) #
#len(open(path_file, 'r').readlines()) #
file = open(path_file, 'r') #
lines = file.readlines() #
file.close() #
i = 0
for i in range(count_line): # 0
if "whousesite.cgi" in lines[i]: #
lines[i] = " <TD> </TD>" #
if "index.cgi" in lines[i]:
lines[i] = lines[i].replace('index.cgi','index.php')
if "topsites.cgi" in lines[i]:
lines[i] = lines[i].replace('topsites.cgi','topsites.php')
file = open('/var/lightsquid/my_tmp/' + ip_host + 'log_file.html','w')
file.writelines(lines)
file.close
Todo lo relacionado con user_detail
user_detail.php
<?php
$year = " {$_GET['year']}";
$month = " {$_GET['month']}";
$day = " {$_GET['day']}";
$mode = " {$_GET['mode']}";
$ip_host = "{$_SERVER['REMOTE_ADDR']}";
$str = "sudo /var/lightsquid/my_scr/my_user_detail.sh ".$ip_host.$year.$month.$day.$mode;
echo exec($str);
include "/var/lightsquid/my_tmp/".$ip_host."log_file.html"
?>
user_detail.sh
#!/bin/sh
$1 #ip
$2 #
$3 #
$4 #\
str="log_file" #
if [ $4 = "month" -o $4 = "year" ]
then
param="year="$2"&month="$3"&user="$1"&mode="$4 #
else
param="year="$2"&month="$3"&day="$4"&user="$1
fi
LOG_FILE=/var/lightsquid/my_tmp/$1$str.html #
{
export REQUEST_METHOD=GET
export QUERY_STRING=$param
/var/lightsquid/user_detail.cgi
}> $LOG_FILE 2>&1
/var/lightsquid/my_scr/my_user_detail.py $1 # , ;)
user_detail.py
#!/usr/bin/env python
#coding: utf-8
import sys # sys
ip_host = sys.argv[1] # IP
seach_ip = ip_host
path_file = '/var/lightsquid/my_tmp/'+ ip_host + 'log_file.html' #
count_line = sum(1 for l in open(path_file, 'r')) #
#len(open(path_file, 'r').readlines()) #
file = open(path_file, 'r') #
lines = file.readlines() #
file.close() #
i = 0
for i in range(count_line): # 0
if "index.cgi" in lines[i]:
lines[i] = lines[i].replace('index.cgi','index.php')
if "user_time.cgi" in lines[i]:
lines[i] = lines[i].replace('user_time.cgi','user_time.php')
if "bigfiles.cgi" in lines[i]:
lines[i] = lines[i].replace('bigfiles.cgi','bigfiles.php')
if "get.cgi" in lines[i]:
lines[i] = lines[i].replace('get.cgi?png=datetime','datetime.png')
file = open('/var/lightsquid/my_tmp/' + ip_host + 'log_file.html','w')
file.writelines(lines)
file.close
Todo lo relacionado con user_month
user_month.php
<?php
$year = " {$_GET['year']}";
$month = " {$_GET['month']}";
$ip_host = "{$_SERVER['REMOTE_ADDR']}";
$str = "sudo /var/lightsquid/my_scr/my_user_month.sh ".$ip_host.$year.$month;
echo exec($str);
include "/var/lightsquid/my_tmp/".$ip_host."log_file.html"
?>
user_month.sh
#!/bin/sh
$1 #ip
$2 #
$3 #
str="log_file"
param="year="$2"&month="$3"&user="$1
LOG_FILE=/var/lightsquid/my_tmp/$1$str.html
{
export REQUEST_METHOD=GET
export QUERY_STRING=$param
/var/lightsquid/user_month.cgi
}> $LOG_FILE 2>&1
/var/lightsquid/my_scr/my_user_month.py $1
user_month.py
#!/usr/bin/env python
#coding: utf-8
import sys # sys
ip_host = sys.argv[1] # IP
# lightsquid
# ip
seach_ip = ip_host
path_file = '/var/lightsquid/my_tmp/'+ ip_host + 'log_file.html' #
count_line = sum(1 for l in open(path_file, 'r')) #
#len(open(path_file, 'r').readlines()) #
file = open(path_file, 'r') #
lines = file.readlines() #
file.close() #
i = 0
for i in range(count_line): # 0
if "user_detail.cgi" in lines[i]: # cgi
lines[i] = lines[i].replace('user_detail.cgi','user_detail.php') # ,
if "index.cgi" in lines[i]:
lines[i] = lines[i].replace('index.cgi','index.php')
if "graph.cgi" in lines[i]:
lines[i] = lines[i].replace('graph.cgi','graph.php')
file = open('/var/lightsquid/my_tmp/' + ip_host + 'log_file.html','w')
file.writelines(lines)
file.close
Todo lo relacionado con user_time
user_time.php
<?php
$year = " {$_GET['year']}";
$month = " {$_GET['month']}";
$day = " {$_GET['day']}";
$mode = " {$_GET['mode']}";
$ip_host = "{$_SERVER['REMOTE_ADDR']}";
$str = "sudo /var/lightsquid/my_scr/my_user_time.sh ".$ip_host.$year.$month.$mode;
echo exec($str);
include "/var/lightsquid/my_tmp/".$ip_host."log_file.html"
?>
user_time.sh
#!/bin/sh
$1 #ip
$2 #
$3 #
$4 #\
str="log_file" #
if [ $4 = "month" -o $4 = "year" ]
then
param="year="$2"&month="$3"&user="$1"&mode="$4 #
else
param="year="$2"&month="$3"&day="$4"&user="$1
fi
LOG_FILE=/var/lightsquid/my_tmp/$1$str.html #
{
export REQUEST_METHOD=GET
export QUERY_STRING=$param
/var/lightsquid/user_time.cgi
}> $LOG_FILE 2>&1
/var/lightsquid/my_scr/my_user_time.py $1 # , ;)
user_time.py
#!/usr/bin/env python
#coding: utf-8
import sys # sys
ip_host = sys.argv[1] # IP
# lightsquid
# ip
seach_ip = ip_host
path_file = '/var/lightsquid/my_tmp/'+ ip_host + 'log_file.html' #
count_line = sum(1 for l in open(path_file, 'r')) #
#len(open(path_file, 'r').readlines()) #
file = open(path_file, 'r') #
lines = file.readlines() #
file.close() #
i = 0
for i in range(count_line): # 0
if "index.cgi" in lines[i]:
lines[i] = lines[i].replace('index.cgi','index.php')
file = open('/var/lightsquid/my_tmp/' + ip_host + 'log_file.html','w')
file.writelines(lines)
file.close
Salir
Bueno, eso es todo, espero que nadie se canse de la cantidad de guiones. Espero que este artículo ayude a alguien a resolver el mismo problema y tal vez lo mejore.