Program na editaci

Program na editaci
« kdy: 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


Re:Program na editaci
« Odpověď #1 kdy: 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

Re:Program na editaci
« Odpověď #2 kdy: 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.

Kit

  • *****
  • 707
    • Zobrazit profil
    • E-mail
Re:Program na editaci
« Odpověď #3 kdy: 25. 04. 2021, 11:17:11 »
Ano, taková šikovná utilitka existuje. Jmenuje se sed, viz výše.

k3dAR

  • *****
  • 2 992
  • porad nemam telo, ale uz mam hlavu... nobody
    • Zobrazit profil
    • E-mail
Re:Program na editaci
« Odpověď #4 kdy: 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/
« Poslední změna: 25. 04. 2021, 12:40:39 od k3dAR »


k3dAR

  • *****
  • 2 992
  • porad nemam telo, ale uz mam hlavu... nobody
    • Zobrazit profil
    • E-mail
Re:Program na editaci
« Odpověď #5 kdy: 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 :)

Jose D

  • *****
  • 890
    • Zobrazit profil
Re:Program na editaci
« Odpověď #6 kdy: 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'

RDa

  • *****
  • 2 686
    • Zobrazit profil
    • E-mail
Re:Program na editaci
« Odpověď #7 kdy: 25. 04. 2021, 14:41:15 »
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.

Kit

  • *****
  • 707
    • Zobrazit profil
    • E-mail
Re:Program na editaci
« Odpověď #8 kdy: 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.

Re:Program na editaci
« Odpověď #9 kdy: 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:

  • 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).

Kit

  • *****
  • 707
    • Zobrazit profil
    • E-mail
Re:Program na editaci
« Odpověď #10 kdy: 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.

Jose D

  • *****
  • 890
    • Zobrazit profil
Re:Program na editaci
« Odpověď #11 kdy: 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

FKoudelka

Re:Program na editaci
« Odpověď #12 kdy: 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.
« Poslední změna: 25. 04. 2021, 22:14:47 od FKoudelka »

Re:Program na editaci
« Odpověď #13 kdy: 26. 04. 2021, 11:13:48 »
Pokud není účelem jednohuPka, použijte Ansible. Pokud je GUI podmínkou, pak AWX/Tower.