Portál AbcLinuxu, 12. května 2025 04:15

Dotaz: bash script

TheTechnic avatar 11.11.2009 23:47 TheTechnic | skóre: 7
bash script
Přečteno: 531×
Odpovědět | Admin
Ahojte, potrebujem poradit ako vytvorit skript, ktory spustim cez cron alebo rovno startovaci skript by to bol, a otvoril by screen a v nom mi pootvaral nove taby aj s nejakym pomenovanim, nechcem to vsak riesit tak ze si to natvrdo urcim v screene, tak to viem, ale ked chcem napriklad zo suboru tahat serveri a pomocou klucov mi otvori session aj bez hesla a pomenuje mi screen tab na patricne meno podla servera. Viete mi s tym niekto helpnut. A este ak viete poradit dobru knihu pre bash scripting je ich vela, ale chcem nieco s prikladmi hoci aj v anglictine :) Dakujem za rady a tesim sa na ne.
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

12.11.2009 11:10 rubicon
Rozbalit Rozbalit vše Re: bash script
Odpovědět | | Sbalit | Link | Blokovat | Admin
[...] skript, ktory spustim cez cron alebo rovno startovaci skript by to bol, a otvoril by screen
Místo cron-u by byl asi vhodnější .bash_profile (obsah se spouští jen s login shellem) nebo .bashrc (spouští se s interaktivním shellem), ovšem je vhodné doplnit o test, zda screen již neběží, aby se eliminovalo opětovné spuštění. Pak se screen zavolá v "detached" mode (viz man screen pro příslušné parametry). Při vlastní práci se k němu jen připojíš z terminálu.
[...] a v nom mi pootvaral nove taby aj s nejakym pomenovanim, nechcem to vsak riesit tak ze si to natvrdo urcim v screene, tak to viem, ale ked chcem napriklad zo suboru tahat serveri a pomocou klucov mi otvori session aj bez hesla a pomenuje mi screen tab na patricne meno podla servera.
Tohle si jednoduše vyjmenuješ do souboru .screenrc a pak se to bude spouštět automaticky. Lze nastavit, do kterého okna se má která aplikace otevřít, včetně pojmenování tabu, opět viz man screen.
A este ak viete poradit dobru knihu pre bash scripting je ich vela, ale chcem nieco s prikladmi hoci aj v anglictine :)
Advanced Bash Scripting Guide obsahuje samé příklady a je dostupný na tldp.org
TheTechnic avatar 12.11.2009 11:22 TheTechnic | skóre: 7
Rozbalit Rozbalit vše Re: bash script
No praveze si to nechcem v screene definovat natvrdo ale praveze nech mi to berie zo suboru ktory sa moze menit,ak budem mat ine serveri, ak ich je vela nechce sa to nikomu prepisovat v konfigu potom. ono to je lahke tak vytvorit, ale neviem rozparsovat udaje a povedat screenu nech berie tie udaje so subora a na nejakom zaklade pomenovavat tie taby, pripojit k danemu hostu a pouzit pre dany host kluc.nech ked spustim screen budem nalogovany na viacero serveroch behom jedneho uderu :)
12.11.2009 12:47 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: bash script
ls -l ~/.screenrc.d/*/*
session-1/screen-01
session-1/screen-02
session-1/screen-03
session-2/screen-01
z takejto šturktúry ľahko vygeneruješ príslušný .screenrc. Na meno tabu používam:
cat set_screen_name
#!/bin/bash
echo -ne '\ek'"$1"'\e\\'
12.11.2009 12:48 chochi | skóre: 29 | Praha
Rozbalit Rozbalit vše Re: bash script
Odpovědět | | Sbalit | Link | Blokovat | Admin

Tak tohle je prvni nastrel ("servers" je konfigurak se servrama - jeden na radek, "open.sh" je skript co cele pusti):

$ cat servers 
root@server1
root@server2
root@server3
root@server4
$ cat open.sh 
#!/bin/bash

CONFIG="servers"

echo "Reading configuration from $SERVERS"
SERVERS=`cat $CONFIG`
SCREEN_CONFIG=`mktemp`
for SERVER in $SERVERS; do
        echo "Adding screen for server '$SERVER'"
        echo "screen ssh $SERVER" >> $SCREEN_CONFIG
        echo "title \"Server $SERVER\"" >> $SCREEN_CONFIG
done
echo "Launching screen..."
screen -c $SCREEN_CONFIG
echo "Deleting temporary config $SCREEN_CONFIG"
rm $SCREEN_CONFIG

Založit nové vláknoNahoru

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

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.