abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 18:00 | IT novinky

    DuckDuckGo AI Chat umožňuje "pokecat si" s GPT-3.5 Turbo od OpenAI nebo Claude 1.2 Instant od Anthropic. Bez vytváření účtu. Všechny chaty jsou soukromé. DuckDuckGo je neukládá ani nepoužívá k trénování modelů umělé inteligence.

    Ladislav Hagara | Komentářů: 0
    dnes 14:22 | IT novinky

    VASA-1, výzkumný projekt Microsoftu. Na vstupu stačí jediná fotka a zvukový záznam. Na výstupu je dokonalá mluvící nebo zpívající hlava. Prý si technologii nechá jenom pro sebe. Žádné demo, API nebo placená služba. Zatím.

    Ladislav Hagara | Komentářů: 2
    dnes 04:44 | Nová verze

    Nová čísla časopisů od nakladatelství Raspberry Pi: MagPi 140 (pdf) a HackSpace 77 (pdf).

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

    ESPHome, tj. open source systém umožňující nastavovat zařízení s čipy ESP (i dalšími) pomocí konfiguračních souborů a připojit je do domácí automatizace, například do Home Assistantu, byl vydán ve verzi 2024.4.0.

    Ladislav Hagara | Komentářů: 0
    včera 22:11 | IT novinky Ladislav Hagara | Komentářů: 0
    včera 20:55 | Nová verze

    Neziskové průmyslové konsorcium Khronos Group vydalo verzi 1.1 specifikace OpenXR (Wikipedie), tj. standardu specifikujícího přístup k platformám a zařízením pro XR, tj. platformám a zařízením pro AR (rozšířenou realitu) a VR (virtuální realitu). Do základu se z rozšíření dostalo XR_EXT_local_floor. Společnost Collabora implementuje novou verzi specifikace do platformy Monado, tj. open source implementace OpenXR.

    Ladislav Hagara | Komentářů: 2
    včera 17:22 | Nová verze

    Byla vydána nová verze 0.38.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 4.4 nebo novější a také libplacebo 6.338.2 nebo novější.

    Ladislav Hagara | Komentářů: 13
    včera 17:11 | Nová verze

    ClamAV (Wikipedie), tj. multiplatformní antivirový engine s otevřeným zdrojovým kódem pro detekci trojských koní, virů, malwaru a dalších škodlivých hrozeb, byl vydán ve verzích 1.3.1, 1.2.3 a 1.0.6. Ve verzi 1.3.1 je mimo jiné řešena bezpečnostní chyba CVE-2024-20380.

    Ladislav Hagara | Komentářů: 2
    včera 12:11 | IT novinky

    Digitální a informační agentura (DIA) oznámila (PDF, X a Facebook), že mobilní aplikace Portál občana je ode dneška oficiálně venku.

    Ladislav Hagara | Komentářů: 10
    včera 05:11 | Komunita

    #HACKUJBRNO 2024, byly zveřejněny výsledky a výstupy hackathonu města Brna nad otevřenými městskými daty, který se konal 13. a 14. dubna 2024.

    Ladislav Hagara | Komentářů: 2
    KDE Plasma 6
     (68%)
     (10%)
     (2%)
     (20%)
    Celkem 564 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Jak si udržovat historii /etc v gitu

    7.7.2007 13:15 | Přečteno: 1796× | Software | Výběrový blog

    V dnešní době již nebývá nedostatek diskového prostoru a nebývá tedy potřeba šetřit každý bajt. Jedním ze způsobů, jak "plýtvat" úložným prostorem je zaznamenávat si, jak se některé soubory měnily v čase. Když si pak člověk omylem smaže, přepíše, nebo změní špatným směrem některé z nich, má možnost se vrátit v čase zpátky.

    Pokusím se ukázat nezbytné minimum z používání gitu ke správě například historie svého /etc. Git je v repozitářích většiny běžných distribucí a tak by neměl být problém jej z nich nainstalovat. Tento zápisek se vztahuje k verzi 1.5.1.6, ale snad by měl být relativně nadčasový.

    Skáčeme po hlavě

    Git pracuje s jednotlivými repozitáři, jejichž data bývají často umístěny v adresáři .git v nejvyšším adresáři daného repozitáře. Tento adresář si vytvoříme jednoduše tak, že se přesuneme do daného adresáře a napíšeme

    #git init
    Initialized empty Git repository in .git/
    

    Tímto máme inicializovaný repozitář, ale ještě do něj nepatří žádné soubory. To snadno napravíme tak, že nejdříve řekneme, že budeme chtít přidat vše v tomto adresáři

    #git add -- .
    
    A poté commitneme (zapíšeme do repozitáře) avizované změny (pomocí git add)
    #git commit
    

    Tento příkaz nám spustí náš oblíbený editor z proměnné prostředí EDITOR a bude po nás chtít, abychom v něm napsaly popis udělaných změn. Tento popis změn slouží čistě pro naši orientaci a tudíž je na každém z nás, co si napíše, datum zapsání, rozdíly, přidané/odebrané soubory lze samozřejmě vyčíst odjinud, takže by mělo jít o jakésy shrnutí, k čemu to bylo.

    Rutina

    Zatím máme repozitář, ve kterém máme uložený výchozí stav. Nicméně by asi bylo dobré také zaznamenávat jednotlivé změny. Pro vypsání změn oproti uloženému stavu slouží příkaz git-status, jehož výpis je velmi samopopisující se.

    Pakliže chceme provedené změny zaznamenat do repozitáře, nejdříve musíme gitu říct, jaké změny budeme chtít sledovat, v případě /etc budeme pravděpodobně chtít sledovat všechny soubory a tudíž zavoláme

    #git add -- .
    

    čímž řekneme, že budeme chtít zapsat stav všech souborů v daném adresáři (včetně doposud nesledovaných). Poté zavoláme

    #git commit -a
    

    Tímto příkazem sice částečně překrýváme funkci git add -- ., aneb připravení zapsání změn již sledovaných souborů, nicméně git add -- . navíc připraví zapsání vytvoření zatím nesledovaných souborů, a parametr -a u commitu zase navíc oproti add zaznamená v repozitáři případné smazání sledovaných souborů. Pakliže jsme líní a nechceme pokaždé lézt do editoru pro zapsání commit message, můžeme ji specifikovat parametrem -m při commitu, např. pokud bychom chtěli mít v cronu naplánováno jednou za čas automaticky zapsat změny v /etc, můžeme použít sekvenci příkazů

    cd /etc && git add -- . && git commit -a -m "cron automated commit"
    

    A dál?

    Zatím jsme tedy schopni zaznamenávat historii změn, a jak se jí procházet? Nejméně náročné je asi použít nějaké klikátko stylu qgit, či git-gui, které bývá přibaleno v balíku přímo s gitem. Jelikož mne přestává bavit psát, milovníky příkazové řádky budu muset odkázat na zkoumání dokumentace

    Bezpečnost

    Nesmíme ovšem zapomenout, že v /etc je několik souborů, které by neměl přečíst nikdo, krom roota a tudíž doporučuji k danému git repozitáři zakázat přístup kohokoliv jiného, než vlastníka (roota)

    #chmod 700 /etc/.git
    
           

    Hodnocení: 100 %

            špatnédobré        

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

    Komentáře

    Vložit další komentář

    7.7.2007 13:23 KS | skóre: 10 | blog: blg | Horní polní u západní dolní
    Rozbalit Rozbalit vše Re: Jak si udržovat historii /etc v gitu
    Díky za článek, fakt dobrý. O verzování konfiguráků jsem párkrát uvažoval. Mohlo by se to dostat do distribucí jako běžná věc.
    Pochybnost, nejistota - základ poznání
    7.7.2007 15:46 Georgo10 | skóre: 14 | blog: Deset hříchů | Olomouc
    Rozbalit Rozbalit vše Re: Jak si udržovat historii /etc v gitu
    Taktéž děkuji -- O nějaké záloze /etc jsem vždycky uvažoval, ale nápad použít verzovací systém, mi hlavou nebleskl :-) Určitě vyzkouším, ještě jednou díky :-)
    -- Georgo
    Josef Kufner avatar 7.7.2007 16:21 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Jak si udržovat historii /etc v gitu
    To by nemuselo být špatné... ale jsem moc líný, takže by to chtělo napojit na apt, aby se to ukládalo samo. Nejlépe vždy před a po nějaké instalaci/upgrade/čemkoliv.
    Hello world ! Segmentation fault (core dumped)
    7.7.2007 19:37 Petr "Glubo" Sýkora | skóre: 21 | blog: Glubnik
    Rozbalit Rozbalit vše Re: Jak si udržovat historii /etc v gitu
    Naprosto souhlasím, sám přemýšlím, jak nejlépe to napojit na portage, zatím to řeším cronem daily (uvedený kombo příkaz je copy&paste z mého cronu), což mi přijde jako dostatečné, nikoliv však ideální řešení. Dokonce se git chová tak, že pokud není nic ke commitnutí, ignoruje commit a tudíž nevzniká tisíce zbytečných commitů, což mne mile překvapilo :-)
    „O mrtvých jen v dobrém." „Pojďme se bavit o Stalinovi."
    David Watzke avatar 7.7.2007 18:43 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Jak si udržovat historii /etc v gitu
    Mně se /etc zálohuje každej den ráno na server a docela to stačí... :-)
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    Josef Kufner avatar 7.7.2007 19:29 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Jak si udržovat historii /etc v gitu
    Ono tady jde spíš o tu historii a možnost kouknout se, co se vlastne kdy změnilo. V tom mají nástroje na správu verzí precejen nějaké ty výhody oproti hromádce adresářů... ;-)
    Hello world ! Segmentation fault (core dumped)
    7.7.2007 19:36 Petr "Glubo" Sýkora | skóre: 21 | blog: Glubnik
    Rozbalit Rozbalit vše Re: Jak si udržovat historii /etc v gitu
    No já si zase mohu jedním příkazem vypsat histrorii změn v jednom souboru/adresáři pomocí git-whatchanged -p soubor, což mi vypíše kdy se ten soubor měnil a diffy jednotlivých změn.
    „O mrtvých jen v dobrém." „Pojďme se bavit o Stalinovi."
    8.7.2007 14:21 disorder | blog: weblog
    Rozbalit Rozbalit vše Re: Jak si udržovat historii /etc v gitu
    a komu venujes ten /etc/shadow kazde rano?
    8.7.2007 14:38 Käyttäjä 11133 | skóre: 58 | blog: Ajattelee menneisyyttä
    Rozbalit Rozbalit vše Re: Jak si udržovat historii /etc v gitu
    A není to jedno, jaká je šance že ty hashe rozlousknou? Moc velká asi ne. :-) Teda pokud nemá lehce uhodnutelná hesla. Nebo útočník pár s390 ve sklepě :)
    8.7.2007 15:01 disorder | blog: weblog
    Rozbalit Rozbalit vše Re: Jak si udržovat historii /etc v gitu
    radsej poloz otazku, aka sanca bude zajtra/o tyzden/etc...
    8.7.2007 15:22 Käyttäjä 11133 | skóre: 58 | blog: Ajattelee menneisyyttä
    Rozbalit Rozbalit vše Re: Jak si udržovat historii /etc v gitu
    No správný paranoik mění hesla každý týden :-)
    8.7.2007 15:57 disorder | blog: weblog
    Rozbalit Rozbalit vše Re: Jak si udržovat historii /etc v gitu
    a to je nejaka prekazka tomu, ze ti to niekto zajtra moze rozlusknut za 30 sekund?
    David Watzke avatar 8.7.2007 20:51 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Jak si udržovat historii /etc v gitu
    Teda pokud nemá lehce uhodnutelná hesla
    nbusr123
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    David Watzke avatar 8.7.2007 20:49 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Jak si udržovat historii /etc v gitu
    Je to u Zdendy na serveru (klenot.cz) a adresář backup má přístupový práva 700. Můžu být v klidu :-)
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    8.7.2007 21:39 disorder | blog: weblog
    Rozbalit Rozbalit vše Re: Jak si udržovat historii /etc v gitu
    no bodaj by si tomu nedal 700, to uz by bol naprosty vysmech bezpecnosti :D

    v kazdom pripade by si z toho mohol mazat hashe, to nie je problem...
    Josef Kufner avatar 8.7.2007 21:53 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Jak si udržovat historii /etc v gitu
    A nebo to během přenosu na server šifrovat.
    Hello world ! Segmentation fault (core dumped)
    8.7.2007 22:41 disorder | blog: weblog
    Rozbalit Rozbalit vše Re: Jak si udržovat historii /etc v gitu
    ja by som to v plaintexte neukladal ani na vlastny server...
    onion avatar 7.7.2007 21:55 onion | skóre: 8 | blog: onion | Praha
    Rozbalit Rozbalit vše Re: Jak si udržovat historii /etc v gitu
    Jeste doplnim, ze prikazem

    git-config color.diff auto

    bude vystup z git-whatchanged (a vsech ostatnich diffu) pekne barevny. Chvilku mi trvalo nez jsem na to prisel, takze tim treba nekomu ulehcim praci :D
    8.7.2007 16:41 User682 | skóre: 38 | blog: aqarium | Praha
    Rozbalit Rozbalit vše Re: Jak si udržovat historii /etc v gitu
    zdravim,

    git nejaky mesic pouzivam. Skvely nastroj. Ale par veci jsem nerozlousknul.

    Nepouzivate nahodou nekdo git na vice projektu, ktere maji zcasti stejny zaklad ?

    Neco delam asi spatne nebo nechapu filosifii uzivani gitu. Nebo je to mozna mimo moznosti gitu.

    Dam priklad:

    testuji ruzne kernely a pripadne hledam zmeny a chyby. Dovedu si vyexportovat aktualni zdrojaky, najit zmeny, udelat nejaky bisect, pripadne si zmergovat zmeny.

    Ale zda se mi trochu neefektivni mit specielne na kernel 2 ruzna uloziste.

    Mam:

    - linus-uv kernel

    - mm-kernel

    - thinkpad-acpi

    A ted jak si usporadat uloziste (repositare) ?

    Mit vse v jednom reposiraci nebo mit 3 repositare ?

    Jak na to ? A jak se pripadne prepinat mezi repositari a vyexportovat si konkretni zdrojaky k danemu datu ?

    Tato vec mi vcelku brani dostat se dale.

    Jak by jste toto resili? Predem diky.

    Pavel Kysilka
    michich avatar 8.7.2007 18:31 michich | skóre: 51 | blog: ohrivane_parky
    Rozbalit Rozbalit vše Re: Jak si udržovat historii /etc v gitu

    Nevím, jestli to má cenu dělat i s -mm kernely, protože Andrew Morton je udržuje pomocí quiltu a git strom je až sekundární reprezentace. Já je tahám zvlášť pomocí ketchupu.

    Ale s tím thinkpad-acpi jsem si to teď zkusil. Vlezu do adresáře, kde mám Linusův strom a pár svých místních větví. Řeknu gitu, že budu chtít sledovat další vzdálený repozitář:

    git-remote add ibm-acpi \
    git://repo.or.cz/linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git
    

    Stáhnu si ho k sobě:

    git-fetch ibm-acpi
    

    Podívám se, jaké větve tam mají:

    git-branch -r
    

    Budu chtít pracovat s větví devel, tak si udělám místní větev, která jí bude odpovídat (a git-pull mi ji bude umět aktualizovat):

    git-branch --track ibm-acpi ibm-acpi/devel
    

    Přepínám se pomocí git-checkout.

    Nevím, jestli je to ideální způsob. Jestli to někdo děláte jinak a lépe, tak by mě to zajímalo.

    8.7.2007 23:03 User682 | skóre: 38 | blog: aqarium | Praha
    Rozbalit Rozbalit vše Re: Jak si udržovat historii /etc v gitu
    Co se tyce mm-kernelu, tak bych rad redukoval primerene traffic a nerad bych tahal cele tarbally. Vcelku je pro me mm-kernel dulezity - hodne chyb se najde drive nez v linus-kernelu.

    Nicmene podle Vaseho navodu pujde tahat primo z git:// zdroje mm-kernel.

    Kazdopadne diky, s timto se pohnu hodne dale. Kdybych prisel na neco zajimaveho nebo vylepseneho, tak dam vedet.

    Pavel Kysilka
    michich avatar 8.7.2007 23:12 michich | skóre: 51 | blog: ohrivane_parky
    Rozbalit Rozbalit vše Re: Jak si udržovat historii /etc v gitu
    Ten ketchup, co na -mm používám, je docela chytrý. Netahá pokaždé znovu celé tarbally. Když už má nějakou předchozí verzi staženou, tak tahá diffy. Ve Fedoře i v Debianu se balíček jmenuje ketchup.
    9.7.2007 09:54 Jiří Lisický | skóre: 31 | blog: JIL_blog | Olomouc
    Rozbalit Rozbalit vše Re: Jak si udržovat historii /etc v gitu
    Na jednoduché verzování konfiguráků používám systém rcs. Řekl bych, že balíček bude součástí téměř všech distribucí.
    Petr Tomášek avatar 9.7.2007 22:15 Petr Tomášek | skóre: 39 | blog: Vejšplechty
    Rozbalit Rozbalit vše Re: Jak si udržovat historii /etc v gitu
    Na tohle mi prijde jako idealni svn. Git ma podle me smysl az ve chvili, kdy je potreba predavat changesety z jednoho repositare do druheho...
    multicult.fm | monokultura je zlo | welcome refugees!
    9.7.2007 22:19 Petr "Glubo" Sýkora | skóre: 21 | blog: Glubnik
    Rozbalit Rozbalit vše Re: Jak si udržovat historii /etc v gitu
    Asi jsem zaslepen buhví čím, ale v čem je svn lepší na tento úkol, než git? Zrovna u takto "nenáročného" úkolu mi přijde, že by svn mělo být srovnatelně vhodné.
    „O mrtvých jen v dobrém." „Pojďme se bavit o Stalinovi."
    Josef Kufner avatar 10.7.2007 00:50 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Jak si udržovat historii /etc v gitu
    Mno, spíš naopak. Git je vhodnější, protože není potřeba vytvářet repositář.
    Hello world ! Segmentation fault (core dumped)
    10.7.2007 08:32 Jiří (BoodOk) Kadeřávek | skóre: 19 | blog: BoodOk | Brno
    Rozbalit Rozbalit vše Re: Jak si udržovat historii /etc v gitu
    Jeno pro upřesnění. Jedná se totiž stejně jako u např. Bazaar o tzv. decentralizovaný/distribuovaný systém správy verzí, narozdíl od centralizovaného systému jakými je např. SVN, CVS a další.

    http://en.wikipedia.org/wiki/Revision_control
    http://en.wikipedia.org/wiki/Git_(software)
    http://en.wikipedia.org/wiki/Bazaar_(software)
    http://en.wikipedia.org/wiki/Subversion_(software)
    Věda má v sobě určitou zpupnost, že čím dokonalejší techniku vyvineme, čím více se dozvíme, tím lepší budou naše životy.
    Josef Kufner avatar 10.7.2007 12:10 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Jak si udržovat historii /etc v gitu
    Ono ani nejde o to, že by byl decentralizovaný -- to jen souvisí s tím, že součástí pracovního adresáře je i kompletní repositář. Klíčovou vlastností gitu je to, že necpe do každého adresáře bordel jako to dělá svn a cvs. Protě bude jen /etc/.git a to je všecko. Ony adresáře .svn by dělaly problémy při změnách adresářů balíčkovacím systémem -- adresář není prázdný a tak ho nelze smazat...
    Hello world ! Segmentation fault (core dumped)
    11.7.2007 10:42 Jiří (BoodOk) Kadeřávek | skóre: 19 | blog: BoodOk | Brno
    Rozbalit Rozbalit vše Re: Jak si udržovat historii /etc v gitu
    Takhle máš repository spolu s projektem. A naučit se pracovat a ovládat systém správy verzí není úplně triviální záležitost, tudíž rozhodně s ohledem na portabilitu u menších projektů (rozuměj 1-5 lidí) preferuji decentralizovaný model. Případné merge nejsou navíc v takové skupině až tak složité.
    Věda má v sobě určitou zpupnost, že čím dokonalejší techniku vyvineme, čím více se dozvíme, tím lepší budou naše životy.

    Založit nové vláknoNahoru

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