Instalace Gentoo web serveru
27.05.2009
Bez komentářů
Příspěvek obsahuje moje poznámky ke zprovoznění gentoo webserveru.
Instalace MySQL
cd /etc/init.d/ ./mysql start
Příspěvek obsahuje moje poznámky ke zprovoznění gentoo webserveru.
cd /etc/init.d/ ./mysql start
Sorry, this entry is only available in English
class MyFormatter(logging.Formatter): def __init__(self, fmt=None, datefmt=None, encoding='windows-1250'): logging.Formatter.__init__(self, fmt, datefmt) self.encoding = encoding def formatException(self, ei): r = logging.Formatter.formatException(self, ei) if type(r) in [types.StringType]: r = r.decode('windows-1250', 'replace') # Convert to unicode return r def format(self, record): t = logging.Formatter.format(self, record) if type(t) in [types.UnicodeType]: t = t.encode(self.encoding, 'replace') return t def prepareFileAndConsoleLogging(soubor, urovenSoubor=None, urovenKonzole=None): # http://docs.python.org/library/logging.html global logging, libLogger if urovenSoubor == None: urovenSoubor = logging.DEBUG if urovenKonzole == None: urovenKonzole = logging.INFO #logging.basicConfig(level=urovenSoubor) # Soubor fileH = logging.FileHandler(soubor, 'a') fileH.setLevel(urovenSoubor) formatterF = MyFormatter( fmt='%(asctime)s|%(levelname)-8s|%(name)s|%(message)s|%(filename)s|%(funcName)s|%(lineno)d', encoding='windows-1250') fileH.setFormatter(formatterF) logging.getLogger('').addHandler(fileH) logging.getLogger('').setLevel(urovenSoubor) # Konzole console = logging.StreamHandler() console.setLevel(urovenKonzole) formatter = MyFormatter( fmt='%(name)s: %(message)s', encoding='cp852') console.setFormatter(formatter) logging.getLogger('').addHandler(console) libLogger.info(u'UNICODE: Logování inicializováno (diakritika: ščřžýáíé)') libLogger.info('STRING: Logování inicializováno (diakritika: ščřžýáíé)') libLogger.debug(u'Debug')
Příklad přístupu do mBank pomocí modulu (knihovny) pro Python:
m = MBanka('781374', 'kladiVo274') print "Ucty:" for account in m.getAccountsList(): print "\t", account m.selectAccount('mKONTO') m.readTemplates() print u"Sablony:" for template in m.getTemplatesList(): print "[%s]" % template.name r = m.pay('TONDA', 1, 'Zaplacena 1Kc') print "Vysledek: %s" % r
Dotazy prosím do diskuze. API bude ke stažení cca do týdne.
Při psaní skriptíku na generování zátěže na HTTP se mi po pár minutách začala vracet chyba “Address already in use”. Tento problém je hezky popsán zde i s perfektními skripty na odzkoušení (bohužel bez řešení).
import socket for i in range(50000): s=socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect(('localhost',9000)) s.send("bla") s.close() if i %100==0: print i
import socket as s import sys serv=s.socket(s.AF_INET, s.SOCK_STREAM) serv.bind(('',9000)) serv.listen(5) while True: (c,l) = serv.accept() while True: data=c.recv(9000) if data: print data, else: break sys.stdout.flush() c.close()
Řešením je vytvoření a zvýšení MaxUserPort dle návodu zde a vytvoření a snížení TcpTimedWaitDelay zde.