Fórum Root.cz

Hlavní témata => Software => Téma založeno: roman31x 25. 04. 2021, 08:23:13

Název: Program na editaci
Přispěvatel: roman31x 25. 04. 2021, 08:23:13
Dobrý den,
Hledám program s GUI pro automatizaci editovaní konfiguračních souborů v linuxu

Příklad: mám 3 soubory ve kterých potřebuji upravit nebo přidat nějaké hodnoty.
"sysctl.conf"
"services"
"sshd_config"

A abych nemusel vytvářet ručně nějaký skript se vším všudy, hledám program do kterého bych zadal:
V souboru "sshd_config" najdi řádek s hodnotou "#MaxSessions 10" a změn údaje na "MaxSessions 5"
Podobnou věc udělá i u dalších dvou nebo více souborů.
Může to být program který vytváří i skript který po spuštění provede určení změny.

Děkuji
Název: Re:Program na editaci
Přispěvatel: Petr Krčmář 25. 04. 2021, 09:02:41
Nevím o žádném takovém programu s GUI, ale to snad ani není třeba. Zvládá to jednořádkový sed, který je možné klidně přidat do toho skriptu. Příklad:

Kód: [Vybrat]
$ sed -i 's/DoSomething false/DoSomething true/g' config_file
Název: Re:Program na editaci
Přispěvatel: roman31x 25. 04. 2021, 09:20:07
Ve Windows jsem si na to udělal jednoduché GUI v autohotkey najdi>nahraď jestli dojde k problému zapsat do logu .atd

bych řekl, že v linuxu na to existuje nějaký program nebo nějaká šikovná utilitka, když je linux prolezlý konfiguračními soubory skrz na skrz.
Název: Re:Program na editaci
Přispěvatel: Kit 25. 04. 2021, 11:17:11
Ano, taková šikovná utilitka existuje. Jmenuje se sed, viz výše.
Název: Re:Program na editaci
Přispěvatel: k3dAR 25. 04. 2021, 12:35:11
[...] Příklad:

Kód: [Vybrat]
$ sed -i 's/DoSomething false/DoSomething true/g' config_file
vodnejsi je menit jen na radku ktery odpovida, napr. pokud radek zacina (znak ^) DoSomething, pripadne za nim mezera aby to nebralo treba i DoSomethinkOther:
Kód: [Vybrat]
sed '/^DoSomething /s/false/true/' -i config_file
EDIT: jinak GUI program co by delal ruzne nahrady v ruznych souborech nevim, vyskocil na me jen GUI "pro" sed, co umi 1 stejnou nahradu udelat ve vice souborech :) http://regexxer.sourceforge.net/
Název: Re:Program na editaci
Přispěvatel: k3dAR 25. 04. 2021, 12:42:52
jinak GUI co by vytvarelo skript kam si se po jednom postupne zadalo co na co kde zmenit by bylo na par radku skriptu s pouzitim YAD(ci Zenity), "obavam" se ze bych to napsal rychleji nez neco hotoveho na netu nasel :)
Název: Re:Program na editaci
Přispěvatel: Jose D 25. 04. 2021, 13:49:58
Ano, taková šikovná utilitka existuje. Jmenuje se sed, viz výše.

tak tak.

Pokud to člověk sype na víc serverů najednou, tak regexpy se dají provozovat přes Ansible - třeba:

Kód: [Vybrat]
- name: disable password authentication
  replace:
    path: /etc/ssh/sshd_config
    regexp:   '^PasswordAuthentication yes$'
    replace:  'PasswordAuthentication no'
Název: Re:Program na editaci
Přispěvatel: RDa 25. 04. 2021, 14:41:15
Moje preferovana varianta pro strojovou operaci "SET" je:
Vychazim totiz z predpokladu, ze soubor nemusi obsahovat dany parametr, nebo ho muze obsahovat jinak napsanej. A pak se hodi videt historii zmen / customizaci nastave na konci souboru na jednom miste, nez abych musel delat diff vuci distribucnimu default configu.
Název: Re:Program na editaci
Přispěvatel: Kit 25. 04. 2021, 14:53:45
Moje preferovana varianta pro strojovou operaci "SET" je:
  • smazat vsechny radky obsahujici case insensitive verzi: ^\s*KeyWord\s.*
  • append na konec, KeyWord NewValue
Vychazim totiz z predpokladu, ze soubor nemusi obsahovat dany parametr, nebo ho muze obsahovat jinak napsanej. A pak se hodi videt historii zmen / customizaci nastave na konci souboru na jednom miste, nez abych musel delat diff vuci distribucnimu default configu.

Něco na tom bude, protože původní parametr nejraději zakomentuji a hned pod něj uvedu s novou hodnotou.
Název: Re:Program na editaci
Přispěvatel: Ondrej Nemecek 25. 04. 2021, 17:32:33
Moje preferovana varianta pro strojovou operaci "SET" je:
  • smazat vsechny radky obsahujici case insensitive verzi: ^\s*KeyWord\s.*
  • append na konec, KeyWord NewValue
Vychazim totiz z predpokladu, ze soubor nemusi obsahovat dany parametr, nebo ho muze obsahovat jinak napsanej. A pak se hodi videt historii zmen / customizaci nastave na konci souboru na jednom miste, nez abych musel delat diff vuci distribucnimu default configu.

Něco na tom bude, protože původní parametr nejraději zakomentuji a hned pod něj uvedu s novou hodnotou.

Jsou ještě dva přístupy k tomuto problém:


Verze 2 je IMHO nejpokročilejší, drží i historii a je decentralizovaná. Existují na to i hotové systémy (nemám zkušenost).
Název: Re:Program na editaci
Přispěvatel: Kit 25. 04. 2021, 18:24:43
Moje preferovana varianta pro strojovou operaci "SET" je:
  • smazat vsechny radky obsahujici case insensitive verzi: ^\s*KeyWord\s.*
  • append na konec, KeyWord NewValue
Vychazim totiz z predpokladu, ze soubor nemusi obsahovat dany parametr, nebo ho muze obsahovat jinak napsanej. A pak se hodi videt historii zmen / customizaci nastave na konci souboru na jednom miste, nez abych musel delat diff vuci distribucnimu default configu.

Něco na tom bude, protože původní parametr nejraději zakomentuji a hned pod něj uvedu s novou hodnotou.

Jsou ještě dva přístupy k tomuto problém:

  • generovat konfigurační soubory ze šablon
  • dělat změny ručně + verzovat ve verzovacím systému + aplikovat patche

Verze 2 je IMHO nejpokročilejší, drží i historii a je decentralizovaná. Existují na to i hotové systémy (nemám zkušenost).

Tím "nejpokročilejším" způsobem si verzuji hlavně konfiguraci Vimu. Byl bych docela nerad, kdyby se mi někde ztratila a dalo by mi dost práce ji napsat znovu.

Ovšem u systémových konfiguráků jsou poněkud odlišné požadavky na verzování.

Generování ze šablon je fajn, jen je nutné mít v záhlaví poznámku, kde má být ta konfigurace změněna tak, aby nebyla v zápětí přepsána.
Název: Re:Program na editaci
Přispěvatel: Jose D 25. 04. 2021, 21:58:41
..
  • smazat vsechny radky obsahujici case insensitive verzi: ^\s*KeyWord\s.*
  • append na konec, KeyWord NewValue
..

Mám dojem, že když jsem kdysi začínal s Puppetem, tak jsem jednou takhle nastřílel všechno do MatchUser* bloku :/ :).

* sshd_config specifikum
Název: Re:Program na editaci
Přispěvatel: FKoudelka 25. 04. 2021, 22:10:03
Moje preferovana varianta pro strojovou operaci "SET" je:
  • smazat vsechny radky obsahujici case insensitive verzi: ^\s*KeyWord\s.*
  • append na konec, KeyWord NewValue
Vychazim totiz z predpokladu, ze soubor nemusi obsahovat dany parametr, nebo ho muze obsahovat jinak napsanej. A pak se hodi videt historii zmen / customizaci nastave na konci souboru na jednom miste, nez abych musel delat diff vuci distribucnimu default configu.

Něco na tom bude, protože původní parametr nejraději zakomentuji a hned pod něj uvedu s novou hodnotou.
JJ, OP chce nahradit default, ( v source má #) , takže nejjednodušeji echo “nova hodnota”   >> soubor.
 Mimochodem, dělat tyhle věci hromadně pouhým skriptem na více serverech  pres nejake dsh , to bych neriskoval. Ansible neznám, ale kouknu.
Název: Re:Program na editaci
Přispěvatel: Josef Komjati 26. 04. 2021, 11:13:48
Pokud není účelem jednohuPka, použijte Ansible. Pokud je GUI podmínkou, pak AWX/Tower.