O que você precisa
- Servidor Ubuntu instalado (pessoalmente na minha implementação é a versão 13.04)
- Apache2 instalado
- Instalado configurado e já coletando estatísticas do squid (no meu caso é 2.7)
Vamos estipular preliminarmente as condições:
- O usuário é identificado por seu endereço IP
- Cada usuário só pode ver suas próprias estatísticas
- As estatísticas são exibidas por meio da interface WEB
Começar
Precisa se acalmar
O primeiro passo é fazer o download do LightSquid
wget http://downloads.sourceforge.net/project/lightsquid/lightsquid/1.8/lightsquid-1.8.tgz
Descompacte-o. Eu preferi descompactar para root / var, na verdade, você também pode em / www (se precisar de gráficos, etc.)
tar -zxf lightsquid-1.8.tgz / var / lightsquid
Definimos recursivamente 755 direitos para o usuário e grupo de dados www no diretório e seu conteúdo
chmod -R 755 / var / lightsquid
chown -R www-data: www-data / var / lightsquid
Tornamos os scripts do programa executáveis:
chmod + x * .cgi
chmod + x * .pl
Se você realmente precisa de gráficos, você precisa instalar o pacote libgd-gd2-perl
sudo apt-get install libgd-gd2-perl
Agora você precisa ajustar a configuração do LightSquid
nano /var/lightsquid/lightsquid.cfg
Editando caminhos na seção GLOBAL VARIABLES
#caminho para arquivos `cfg` adicionais
$ cfgpath =" / var / lightsquid ";
#caminho para a pasta `tpl`
$ tplpath =" / var / lightsquid / tpl ";
#caminho para a pasta `lang`
$ langpath =" / var / lightsquid / lang ";
#caminho para a pasta `report`
$ reportpath =" / var / lightsquid / report ";
#path to access.log
$ logpath = "/ var / log / squid";
#caminho para a pasta `ip2name`
$ ip2namepath =" / var / lightsquid / ip2name ";
Na seção VARIÁVEIS DA WEB, defina o idioma de interface desejado. Neste caso, russo.
$ lang = "ru";
Bem, todo o lightsquid deve estar pronto para ir. Se você tiver logs do squid, poderá analisá-los para que possa vê-los posteriormente no relatório:
/ 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.
O próprio processo
Porque LightSquid com a ajuda de scripts cgi gera arquivos html marcados, então os entrega ao servidor, o servidor ao usuário, e o usuário, por sua vez, vê TODAS as estatísticas de TODOS os usuários - isso não é bom. Portanto, existe uma tarefa, "interceptar" a saída, fazer seus próprios arquivos html com preferência e cortesias e dar o arquivo processado ao usuário.
Primeiro script PHP
Crie um arquivo:
nano /var/www/index.php
Teremos o primeiro script em PHP: esta será a página inicial que mostrará ao usuário a primeira página "processada" do ligsquid. Nós inserimos os dados:
<?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"
?>
O princípio é o seguinte. Recebemos quaisquer parâmetros através do PHP, neste caso o ano, mês, dia, na página inicial esses parâmetros estão vazios, mas se você mudar para outro mês ou ano, eles serão preenchidos imediatamente.
A seguir, nós mesmos descobriremos o IP do host que solicitou esta página. Precisamos desse ip para formar dados SOMENTE nele e, em geral, para navegar de alguma forma entre os arquivos que criamos, pois vincularemos o nome do arquivo ao seu endereço IP.
Em seguida, formamos uma string. Que inicia o próximo script (descrito abaixo) e transfere parâmetros de IP, ano, mês, dia para ele.
Chamamos esse script de execução.
Mostramos a página html. Observe que o nome da página é formado a partir do endereço IP do host e do prefixo "log_file.html"
Segundo script de shell
Este script implementará o lançamento do script lightsquid cgi e gravará o resultado da execução (script cgi) em um arquivo separado. E então inicializa o lançamento de outro script com a transferência de parâmetros para ele (sobre os quais a seguir).
Crie um arquivo
nano /var/lightsquid/my_scr/index.sh
Tornando-o executável
chmod + x index.sh
Uma nota importante, como o script deve ser executado sob os direitos do usuário www-data. Em seguida, você deve adicionar a seguinte linha ao arquivo / etc / sudoers no bloco de especificação de privilégio de usuário #:
www-data ALL = (ALL) NOPASSWD: /var/lightsquid/my_scr/index.sh
Em seguida, gravamos os próprios dados no arquivo
#!/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:
Pegue os parâmetros IP, ano, dia, mês
na variável escreve a string «log_file»
Form um pedido e escreve em uma variável
Execute o script cgi que é fornecido parâmetros, o resultado do script é salvo em um arquivo chamado host IP + «log_file.html»
Chama outro script, passamos parâmetros para ele.
Terceiro script Python
Porque a página gerada contém muitos links desnecessários e incorretos (por exemplo, refere-se a cgi que não podemos interceptar), e assim por diante, este arquivo precisa ser corrigido. substitua todos os links pelos nossos e exclua algumas linhas.
Crie um arquivo:
nano /var/lightsquid/my_scr/index.py
Tornamos o arquivo executável.
chmod + x index.sh
Nós gravamos os seguintes dados nele:
#!/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
Em geral, indentação (quatro espaços) é muito importante em Python para quem não sabe :)
Deixe-me explicar um pouco o script.
Obtemos o endereço IP do usuário que solicitou as estatísticas (este endereço IP é transmitido aqui a partir do script anterior).
Em seguida, abra o arquivo gerado pelo script lightsquid cgi, descubra
quantas linhas ele contém,
fazemos um loop, neste loop verificamos cada linha para ver se estão de acordo com nossos requisitos. Ou seja, ele muda os caminhos dos links de cgi para php, também não preciso que os usuários não vejam os grupos, então deixo esta coluna geralmente vazia ().
Bem, é isso, nós escrevemos de volta o arquivo já processado.
E então, descobri uma maneira de como tudo deveria ser feito. Mas são necessários 27 scripts para funcionar totalmente. Claro, era possível amontoar tudo em um script e, em geral, seriam apenas 3, mas não compliquei minha vida. A seguir gostaria de dar o resto dos scripts, mas com uma breve análise deles e sem etapas desnecessárias para criá-los (já que ações semelhantes foram descritas acima).
O resto dos saltos
Tudo relacionado a 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
Tudo relacionado a 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 necessário esclarecer este roteiro.
O script obtém o IP do usuário que solicitou os dados.
Porque o arquivo que gera cgi é do mesmo tipo, decidi vincular a busca pela linha que eu precisava à cor da linha, são dois deles
"cornsilk"
e
"beige"
. Se houver uma linha onde há essa cor, então movemos três linhas para baixo, há um endereço IP. Comparamos um ou o errado e, se não for o certo, simplesmente apagamos todas as 16 linhas. (Isso é exatamente quanto a descrição de uma linha no relatório leva).
Tudo relacionado a 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
Nesse script, quase igual ao descrito acima, só que a diferença é esta, são recebidos parâmetros diferentes (ano e mês), pois o número de linhas que formam os dados é diferente. dependendo do parâmetro recebido,
month = sys.argv[2]
escolhemos a ação.
Tudo relacionado a 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 # , ;)
Aqui é um pouco mais complicado, também diferentes parâmetros são passados para o script e, dependendo dos parâmetros aceitos pelo script, ele forma uma solicitação para o 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
Tudo relacionado a 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
Tudo relacionado a 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
Tudo relacionado a 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
Resultado
Bem, isso é tudo, espero que ninguém esteja cansado da quantidade de scripts. Espero que este artigo ajude alguém a resolver o mesmo problema, e talvez ele o melhore.