Hi %user%!
Я только начинаю учить python и хочу переписать свой bash скрипт на python.
Не могли бы вы мне помочь, а то я даже не знаю с какой стороны подойти к вопросу.
Код моего скрипта:
#/bin/bash
. "/etc/CFG_FULL.cfg"
#nmap --excludefile $pwd/db_ip_exclude.txt -sn 192.168.212.0/22 | egrep -v "Host|nmap" | awk '{print $5}' > $pwd/db_ip_test.txt
cd $pwd/port_up_down
#ip=192.168.213.50
while read ip
do
cat /dev/null > $pwd/port_up_down/tmp/tmp_$ip.log
#/home/user/test/port_up_down/port_status.sh $ip
cat /var/log/remote/switches.log | grep -w $ip | grep Port | awk '{ print $7 }' | sort -n | uniq >> $pwd/port_up_down/tmp/tmp_$ip.log
cat /var/log/remote/switches.log.1 | grep -w $ip | grep Port | awk '{ print $7 }' | sort -n | uniq >> $pwd/port_up_down/tmp/tmp_$ip.log
zcat /var/log/remote/switches.log.2.gz | grep " $ip " | grep Port | awk '{ print $7 }' | sort -n | uniq >> $pwd/port_up_down/tmp/tmp_$ip.log
cat $pwd/port_up_down/tmp/tmp_$ip.log | sort -n | uniq > $pwd/port_up_down/log/$ip.log
done < $pwd/db_ip_test.txt
Пока я могу только открыть файл :(
#!/usr/bin/env python
f1 = open("/var/log/remote/switches.log")
xString = f1.readlines()
nambers = len(xString)
xString = [xString.replace("\n","") for xString in xString]
for cntr in range(0,nambers):
print (xString[cntr])
f1.close()
Буду благодарен за любую помощь!!!
UPD 0.1
Данные из файлов которые я парсю есть mysql, у меня данные syslog дублируются в базу, может будет проще брать данные от туда?
Но мне надо чтоб брались данные только за 3 месяца.
Так как в bash не очень удобно работать с базой я не рассматривал такой вариант.
UPD 0.2
#!/usr/bin/env python
import MySQLdb
import string
select_sql = "SELECT `datetime`, `host`, `msg` FROM `logs` WHERE host = '{0}' and msg LIKE '{1}';"
db = MySQLdb.connect(host="127.0.0.1",user="root",passwd="121788",db="syslog")
cursor = db.cursor()
cursor.execute(select_sql.format('192.168.212.60','Port 22 link%'))
for k in cursor.fetchall():
print (k[2])
как мне теперь вывести только в столбец в этой строке
пробовал:
aa = k.split()
print (aa[2])
выводит:
Traceback (most recent call last):
File "./run_port.py", line 12, in <module>
aa = k.split()
AttributeError: 'tuple' object has no attribute 'split'
Вот так вот заработало:
for k in cursor.fetchall():
bb = str(k[2])
aa = bb.split()
print (aa[1])
UPD 0.3
Не получается реализовать сортировку и удаление дублей из масива.
Мне нужно по аналогии с sort -n | uniq