abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
dnes 17:28 | Bezpečnostní upozornění

Byly zveřejněny informace o bezpečnostní chybě CVE-2017-6074 v Linuxu zneužitelné k lokální eskalaci práv. Jde o chybu v podpoře DCCP (Datagram Congestion Control Protocol). Do linuxového jádra se dostala v říjnu 2005. V upstreamu byla opravena 17. února (commit). Bezpečnostní chyba byla nalezena pomocí nástroje syzkaller [Hacker News].

Ladislav Hagara | Komentářů: 0
dnes 15:00 | Zajímavý software

Společnost Valve vydala novou beta verzi SteamVR. Z novinek lze zdůraznit oficiální podporu Linuxu. Další informace o podpoře této platformy pro vývoj virtuální reality v Linuxu v diskusním fóru. Hlášení chyb na GitHubu.

Ladislav Hagara | Komentářů: 0
dnes 06:00 | Nová verze

Po necelém roce od vydání verze 0.67 byla vydána verze 0.68 populárního telnet a ssh klienta PuTTY. Podrobnosti v přehledu změn. Řešeny jsou také bezpečnostní chyby.

Ladislav Hagara | Komentářů: 0
včera 21:32 | Nasazení Linuxu

Canonical představuje nejnovější verzi chytré helmy DAQRI s Ubuntu pro rozšířenou realitu. K vidění bude příští týden v Barceloně na veletrhu Mobile World Congress 2017.

Ladislav Hagara | Komentářů: 0
včera 21:31 | Pozvánky

Pro zájemce o hlubší znalosti fungování operačních systémů připravila MFF UK nový předmět Pokročilé operační systémy, v rámci něhož se vystřídají přednášející nejen z řad pracovníků fakulty, ale dorazí také odborníci ze společností AVAST, Oracle, Red Hat a SUSE. Tento předmět volně navazuje na kurz Operační systémy ze zimního semestru, ale pokud máte praktické zkušenosti odjinud (například z přispívání do jádra Linuxu) a chcete si

… více »
Martin Děcký | Komentářů: 6
včera 21:30 | Pozvánky

Czech JBoss User Group Vás srdečně zve na setkání JBUG v Brně, které se koná ve středu 1. března 2017 v prostorách Fakulty Informatiky Masarykovy Univerzity v místnosti A318 od 18:00. Přednáší Tomáš Remeš a Matěj Novotný na téma CDI 2.0 - New and Noteworthy. Více informací na Facebooku a na Twitteru #jbugcz.

mjedlick | Komentářů: 0
20.2. 23:45 | Zajímavý software

Na blogu Qt bylo představeno Qt 3D Studio. Jedná se o produkt dosud známý pod názvem NVIDIA DRIVE™ Design Studio. NVIDIA jej věnovala Qt. Jedná se o několik set tisíc řádků zdrojového kódu. Qt 3D Studio bude stejně jako Qt k dispozici jak pod open source, tak pod komerční licencí. Ukázka práce s Qt 3D Studiem na YouTube.

Ladislav Hagara | Komentářů: 10
20.2. 17:50 | Komunita

Nadace The Document Foundation (TDF) zastřešující vývoj svobodného kancelářského balíku LibreOffice slaví 5 let od svého oficiálního vzniku. Nadace byla představena 28. září 2010. Formálně byla založena ale až 17. února 2012.

Ladislav Hagara | Komentářů: 0
20.2. 12:50 | Komunita

Mozilla.cz informuje, že dosud experimentální funkce Page Shot z programu Firefox Test Pilot (zprávička) se stane součástí Firefoxu. Page Shot je nástroj pro vytváření snímků webových stránek. Umí výběr oblasti, prvku stránky (např. odstavce), nebo uložení snímku celé stránky. Snímky lze ukládat na disk nebo nahrávat na server Mozilly. Nedávno bylo oznámeno, že se součástí Firefoxu stane Activity Stream.

Ladislav Hagara | Komentářů: 43
20.2. 04:10 | Nová verze

Po 10 týdnech vývoje od vydání Linuxu 4.9 (zprávička) oznámil Linus Torvalds, mj. již 20 let žijící v USA, vydání Linuxu 4.10 (LKML). Přehled nových vlastností a vylepšení například na Kernel Newbies a v Jaderných novinách (1, 2 a 3). Kódové jméno Linuxu 4.10 je Fearless Coyote.

Ladislav Hagara | Komentářů: 29
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (13%)
 (2%)
 (71%)
 (4%)
 (10%)
Celkem 684 hlasů
 Komentářů: 66, poslední dnes 18:57
Rozcestník

Dotaz: Python, Zjistovani novych souboru v adresari

30.3.2010 17:24 Ondrej Liska
Python, Zjistovani novych souboru v adresari
Přečteno: 384×
Dobry den,

programuji v pythonu programek ktery by mel reagovat na vznik noveho souboru ve sepcifikovanem adrresari.

Zatim to delam tak, ze kazdou vterinu prohlizi obsah zadane slozky a pokud se tam objevi nejaky novy soubor tak porovnam soucasny timestamp a timestamp data modifikace souboru a pokud je soubor novejsi, vypisu ho.

Toto reseni vsak neni idealni. Je prosim nejaka inteligentnejsi reseni?

Odpovědi

30.3.2010 18:19 Sten
Rozbalit Rozbalit vše Re: Python, Zjistovani novych souboru v adresari
Řešení se jmenuje pyinotify
30.3.2010 18:33 Ondrej Liska
Rozbalit Rozbalit vše Re: Python, Zjistovani novych souboru v adresari
Mohl by mi prosim nekdo napsat jak pyinotify pouzit na tento konkretni problem? Nejak se v tom nemuzu vyznat a ten pyinotify zdrojak ma asi 2000 radku.
30.3.2010 18:50 chrono
Rozbalit Rozbalit vše Re: Python, Zjistovani novych souboru v adresari
Dokumentáciu si pozeral? (napr. príklad a konkrétne súbor tutorial_notifier.py)
30.3.2010 18:58 Ondrej Liska
Rozbalit Rozbalit vše Re: Python, Zjistovani novych souboru v adresari
jj, presne na ten jsem se dival, ale z neho mi nebylo jasne, jak potom nazev nove vytvoreneho souboru predam zpet do volajici metody urcite tridy. Jakym zpusobem je toto mozne?
30.3.2010 19:26 chrono
Rozbalit Rozbalit vše Re: Python, Zjistovani novych souboru v adresari
Musíš ten názov predať späť? Nestačí, aby si v tej triede HandleEvents zavolal funkciu, ktorá ten nový súbor nejako spracuje?
30.3.2010 19:36 Ondrej Liska
Rozbalit Rozbalit vše Re: Python, Zjistovani novych souboru v adresari
No potreboval bych ten nazev predat metode tridy, od niz mam jiz vytvorenou instanci. Takze pokud bych tu metodu volal primo z HandleEvents, tak bych tam zas potreboval nejak dostat odkaz na instanci te tridy.
30.3.2010 19:52 chrono
Rozbalit Rozbalit vše Re: Python, Zjistovani novych souboru v adresari
Kombinácia príkladov tutorial_notifier.py a daemon.py:
import pyinotify
import functools
import sys

wm = pyinotify.WatchManager()  # Watch Manager
mask = pyinotify.IN_CREATE  # watched events

class Trieda(object):
    def zobraz(self, pathname):
        print pathname

def on_loop(notifier, trieda):
    trieda.zobraz(notifier.pathname)

on_loop_func = functools.partial(on_loop, trieda=Trieda())
notifier = pyinotify.Notifier(wm, on_loop_func)
wdd = wm.add_watch('/tmp', mask, rec=True)

notifier.loop()
30.3.2010 20:15 Ondrej Liska
Rozbalit Rozbalit vše Re: Python, Zjistovani novych souboru v adresari
No ja to tam takto:
class mojeTrida:
    # moje trida, ktera ma na starosti danou akci nad soubory
    ...
    def monitorMode(dir)
        # Az po zavolani teto metody vim, ze uzivatel chce pouzit monitorovaci rezim
        # Tady nekde by melo byt to cekani na nove tvoreny soubor
        # Jakmile zjistim, ze mam novy soubor, vezmu jeho jmeno a zavolam metodu
        # __zpracujSoubor s parametrem nazev noveho souboru
        if mameNovySobor:
            self.__zpracujSoubor(file)


    def __zpracujSoubor(file)
        # zakladni metoda tridy, ktera provadi danou akci nad souborem

# ========= main =========

# Na zacatku programu pouze zalovam metodu na monitorovani slozky
inst = mojeTrida()
inst.monitorMode("/home/user/test")
30.3.2010 20:17 Ondrej Liska
Rozbalit Rozbalit vše Re: Python, Zjistovani novych souboru v adresari
Takze otazka zni, jak zakomponovat to Vase reseni do toho co jsem vyse uvedl?
30.3.2010 20:34 chrono
Rozbalit Rozbalit vše Re: Python, Zjistovani novych souboru v adresari
Môžeš vyskúšať napr. niečo takéto:
import pyinotify

class mojeTrida:
    def monitorMode(self, dir):
        wm = pyinotify.WatchManager()
        notifier = pyinotify.Notifier(wm, self.__process_event)
        wdd = wm.add_watch(dir, pyinotify.IN_CREATE, rec=True)
        notifier.loop()

    def __process_event(self, notifier):
        self.__zpracujSoubor(notifier.pathname)

    def __zpracujSoubor(self, file):
        print file

inst = mojeTrida()
inst.monitorMode("/tmp")
30.3.2010 21:23 Ondrej Liska
Rozbalit Rozbalit vše Re: Python, Zjistovani novych souboru v adresari
Ano, funguje to, dekuji. Jde nejak udelat i to, aby si pyinotify vsimal jen souboru specifikovanych nejakym filtrem? Videl jsem v prikladech ze je umi pomoci filtru vyloucit (exclude) tak podporuje i neco jako include?
30.3.2010 22:29 chrono
Rozbalit Rozbalit vše Re: Python, Zjistovani novych souboru v adresari
Také niečo to nepodporuje. Problém je, že (okrem iného) by to muselo testovať, či je ten objekt adresár a v takom prípade sa to nebude filtrovať (inak by sa kompletne zablokovalo kontrolovanie tých udalostí).

Asi najjednoduchšie bude pridať tú kontrolu do tej funkcie __process_event (urobil som to podobne, ako je to urobené v ExcludeFilter):
import pyinotify
import re

class mojeTrida:
    def monitorMode(self, dir):
        wm = pyinotify.WatchManager()
        notifier = pyinotify.Notifier(wm)
        incl_lst = ['.*/apache[0-9]+\.log', '.*~']
        self._lregex = []
        for regex in incl_lst:
            self._lregex.append(re.compile(regex, re.UNICODE))
        wdd = wm.add_watch(dir, pyinotify.IN_CREATE, rec=True, proc_fun=self.__process_event)
        notifier.loop()

    def __process_event(self, event):
        path = event.pathname
        for regex in self._lregex:
            if regex.match(path) is not None:
                self.__zpracujSoubor(path)
                break

    def __zpracujSoubor(self, file):
        print file

inst = mojeTrida()
inst.monitorMode("/tmp")
(možno by bolo lepšie, keby sa tie vzory predávali ako parameter funkcie monitorMode)
31.3.2010 00:42 Ondrej Liska
Rozbalit Rozbalit vše Re: Python, Zjistovani novych souboru v adresari
Dobry napad, dekuji.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.