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í
×
    včera 18:11 | IT novinky

    Dnes a zítra probíhá vývojářská konference Google I/O 2025. Sledovat lze na YouTube a na síti 𝕏 (#GoogleIO).

    Ladislav Hagara | Komentářů: 0
    včera 15:22 | Komunita

    V Bostonu probíhá konference Red Hat Summit 2025. Vybrané přednášky lze sledovat na YouTube. Dění lze sledovat na síti 𝕏 (#RHSummit).

    Ladislav Hagara | Komentářů: 0
    včera 15:00 | Nová verze

    Společnost Red Hat oficiálně oznámila vydání Red Hat Enterprise Linuxu 10. Vedle nových vlastností přináší také aktualizaci ovladačů a předběžné ukázky budoucích technologií. Podrobnosti v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 1
    včera 12:22 | Pozvánky

    Tuto sobotu 24. května se koná historicky první komunitní den projektu Home Assistant. Zváni jsou všichni příznivci, nadšenci a uživatelé tohoto projektu. Pro účast je potřebná registrace. Odkazy na akce v Praze a v Bratislavě.

    jose17 | Komentářů: 0
    včera 04:44 | IT novinky

    Troy Hunt představil Have I Been Pwned 2.0, tj. nový vylepšený web služby, kde si uživatelé mohou zkontrolovat, zda se jejich hesla a osobní údaje neobjevili v únicích dat a případně se nechat na další úniky upozorňovat.

    Ladislav Hagara | Komentářů: 13
    19.5. 23:22 | Zajímavý software

    Microsoft představil open source textový editor Edit bežící v terminálu. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.

    Ladislav Hagara | Komentářů: 7
    19.5. 22:22 | Zajímavý software

    V Seattlu a také online probíhá konference Microsoft Build 2025. Microsoft představuje své novinky. Windows Subsystem for Linux je nově open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.

    Ladislav Hagara | Komentářů: 0
    19.5. 13:11 | Zajímavý článek

    Z příspěvku Turris Sentinel – co přinesl rok 2024 na blogu CZ.NIC: "Za poslední rok (únor 2024 – únor 2025) jsme zachytili 8,3 miliardy incidentů a to z 232 zemí a z jejich závislých území. Tyto útoky přišly od 6,2 milionu útočníků (respektive unikátních adres). SMTP minipot je stále nejlákavější pastí, zhruba 79 % útoků bylo směřováno na tento minipot, 16 % útoků směřovalo na minipot Telnet, 3 % útoků směřovaly na minipot HTTP a 2 % na minipot FTP. Dále jsme zaznamenali 3,2 milionu unikátních hesel a 318 tisíc unikátních loginů, které útočníci zkoušeli."

    Ladislav Hagara | Komentářů: 1
    19.5. 12:44 | Nová verze

    Byla vydána (Mastodon, 𝕏) nová verze 3.0.4 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP je již k dispozici také na Flathubu.

    Ladislav Hagara | Komentářů: 0
    19.5. 12:33 | Nová verze

    Byla vydána nová stabilní verze 7.4 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 136. Přehled novinek i s náhledy v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    Jaký je váš oblíbený skriptovací jazyk?
     (60%)
     (23%)
     (9%)
     (2%)
     (0%)
     (0%)
     (6%)
    Celkem 47 hlasů
     Komentářů: 5, poslední včera 20:57
    Rozcestník

    Jak si udržovat historii /etc v gitu

    7.7.2007 13:15 | Přečteno: 1833× | 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.