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í
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
včera 16:38 | Komunita

Byly zveřejněny videozáznamy přednášek a workshopů z letošní konference OpenAlt konané 5. a 6. listopadu v Brně. K videozáznamům lze přistupovat ze stránky na SuperLectures nebo přes program konference, detaily o vybrané přednášce nebo workshopu a dále kliknutím na ikonku filmového pásu. Celkově bylo zpracováno 65 hodin z 89 přednášek a workshopů.

Ladislav Hagara | Komentářů: 0
včera 11:30 | Komunita

Bylo oznámeno, že bude proveden bezpečnostní audit zdrojových kódů open source softwaru pro implementaci virtuálních privátních sítí OpenVPN. Audit provede Matthew D. Green (blog), uznávaný kryptolog a profesor na Univerzitě Johnse Hopkinse. Auditována bude verze 2.4 (aktuálně RC 1, stabilní verze je 2.3.14). Audit bude financován společností Private Internet Access [reddit].

Ladislav Hagara | Komentářů: 2
včera 06:00 | Komunita

Na YouTube byl publikován Blender Institute Reel 2016, ani ne dvouminutový sestřih z filmů, které vznikly za posledních 10 let díky Blender Institutu. V institutu aktuálně pracují na novém filmu Agent 327. Dění kolem filmu lze sledovat na Blender Cloudu. Videoukázka Agenta 327 z června letošního roku na YouTube.

Ladislav Hagara | Komentářů: 0
včera 01:02 | Zajímavý článek

Minulý týden byly vydány verze 1.2.3 a 1.1.7 webového poštovního klienta Roundcube. V oznámení o vydání bylo zmíněno řešení bezpečnostního problému nalezeného společností RIPS a souvisejícího s voláním funkce mail() v PHP. Tento týden byly zveřejněny podrobnosti. Útočník mohl pomocí speciálně připraveného emailu spustit na serveru libovolný příkaz. Stejně, jak je popsáno v článku Exploit PHP’s mail() to get remote code execution z roku 2014.

Ladislav Hagara | Komentářů: 1
8.12. 16:00 | Nová verze

Byla vydána verze 0.98 svobodného nelineárního video editoru Pitivi. Z novinek lze zmínit například přizpůsobitelné klávesové zkratky. Videoukázka práce s nejnovější verzí Pitivi na YouTube.

Ladislav Hagara | Komentářů: 1
8.12. 15:00 | Zajímavý software

Stop motion je technika animace, při níž je reálný objekt mezi jednotlivými snímky ručně upravován a posouván o malé úseky, tak aby po spojení vyvolala animace dojem spojitosti. Jaký software lze pro stop motion použít na Linuxu? Článek na OMG! Ubuntu! představuje Heron Animation. Ten bohužel podporuje pouze webové kamery. Podpora digitálních zrcadlovek je začleněna například v programu qStopMotion.

Ladislav Hagara | Komentářů: 5
7.12. 21:21 | Nová verze Ladislav Hagara | Komentářů: 0
7.12. 11:44 | Zajímavý projekt

Na Indiegogo byla spuštěna kampaň na podporu herní mini konzole a multimediálního centra RetroEngine Sigma od Doyodo. Předobjednat ji lze již od 49 dolarů. Požadovaná částka 20 000 dolarů byla překonána již 6 krát. Majitelé mini konzole si budou moci zahrát hry pro Atari VCS 2600, Sega Genesis nebo NES. Předinstalováno bude multimediální centrum Kodi.

Ladislav Hagara | Komentářů: 2
7.12. 00:10 | Nová verze

Byla vydána verze 4.7 redakčního systému WordPress. Kódové označením Vaughan bylo vybráno na počest americké jazzové zpěvačky Sarah "Sassy" Vaughan. Z novinek lze zmínit například novou výchozí šablonu Twenty Seventeen, náhledy pdf souborů nebo WordPress REST API.

Ladislav Hagara | Komentářů: 10
6.12. 12:00 | Zajímavý projekt

Projekt Termbox umožňuje vyzkoušet si linuxové distribuce Ubuntu, Debian, Fedora, CentOS a Arch Linux ve webovém prohlížeči. Řešení je postaveno na projektu HyperContainer. Podrobnosti v často kladených dotazech (FAQ). Zdrojové kódy jsou k dispozici na GitHubu [reddit].

Ladislav Hagara | Komentářů: 28
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (24%)
 (29%)
 (7%)
 (5%)
 (3%)
Celkem 807 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: Vnořené pole array

16.6.2013 14:52 bugme | skóre: 16 | blog: bugme
Vnořené pole array
Přečteno: 533×

Jak zapsat něco takového?:

SERVERS=()

SERVERS[ftb][name]='Name'

SERVERS[ftb][service]='abc.jar'

SERVERS[ftb][dir]='/var/abc'

 

SERVERS[van][name]='Van'

SERVERS[van][service]='van.jar'

SERVERS[van][dir]='/var/van'


Řešení dotazu:


Odpovědi

16.6.2013 15:22 ZAH | skóre: 42 | blog: ZAH
Rozbalit Rozbalit vše Re: Vnořené pole array
Doba zápočtů ? Jseš si jist že potřebuješ pole. Například v javě.
public class TestServers {

    private HashMap< String, Map< String, Object>> servers;

    protected HashMap< String, Map< String, Object>> getServers() {
        if (servers == null)
            servers = new HashMap< String, Map< String,Object>>();
        return servers;
    }
    
    public Object getValue(String server,String key){
        return getServers().get(server).get(key);
    }
    
    public void putValue(String server,String key,Object value){
        getServers().get(server).put(key, value);
    }
}
16.6.2013 15:30 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Vnořené pole array
Počítám, že se jedná o bash.

Nejlepší způsob jak pracovat s vícerozměrnými poli je nepoužívat bash a naučit se Python, Ruby, prostě libovolný normální programovací/skriptovací jazyk s podporou rozumných datových typů.

Druhým způsobem je emulovat vícerozměrná pole klíči s oddělovači, jako třeba SERVERS['ftb#name']='Name'. Pochopitelně pak nejde jednoduše udělat nic jako SERVERS['ftb'].
When your hammer is C++, everything begins to look like a thumb.
17.6.2013 20:54 bugme | skóre: 16 | blog: bugme
Rozbalit Rozbalit vše Re: Vnořené pole array

Resp. ono není problém přejít na python :) Jen jak na to pole??

17.6.2013 21:06 potato
Rozbalit Rozbalit vše Re: Vnořené pole array
Python samozřejmě má normální vysokoúrovňové datové struktury jako asociativní pole:
SERVERS = {
   'ftb': {
       'name': 'Name',
       'service': 'abc.jar',
       'dir': '/var/abc',
   },
   'van': {
        'name': 'Van',
        'service': 'van.jar',
        'dir': '/var/van',
   },
}
Můžeš to klidně plnit i postupně nebo jakkoli...
17.6.2013 22:13 bugme | skóre: 16 | blog: bugme
Rozbalit Rozbalit vše Re: Vnořené pole array

Když jsme u toho. Půjde vůbec použít v konzoli. -> příkaz /var/script start ....? Jak zachytim to slovo start.

18.6.2013 08:08 potato
Rozbalit Rozbalit vše Re: Vnořené pole array
Co?
18.6.2013 09:03 bugme | skóre: 16 | blog: bugme
Rozbalit Rozbalit vše Re: Vnořené pole array

No když mám bash script, tak mohu volat /var/script start. Zachtim si slovo start a případně i nějaké argumenty. Jak toto udělat u toho pythonu?

Tarmaq avatar 18.6.2013 09:11 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Vnořené pole array
Don't panic!
18.6.2013 09:17 bugme | skóre: 16 | blog: bugme
Rozbalit Rozbalit vše Re: Vnořené pole array

nefunguje.

NameError: name 'argv' is not defined

18.6.2013 09:19 bugme | skóre: 16 | blog: bugme
Rozbalit Rozbalit vše Re: Vnořené pole array

Joo už to mám díky. :)

17.6.2013 18:21 bugme | skóre: 16 | blog: bugme
Rozbalit Rozbalit vše Re: Vnořené pole array

Ano jedná se o bash, viz štítek.

 

Jde o to, že mám script na spuštění serveru a tyto proměnné jsou potřeba pro server. Aktuálně mám dva.

Proto jsem chtěl toto pole a pak to projet přes 'foreach' a spustit po nastartování serveru.

 

Samozřejmě mám pak nějaké funkce jako restart stop, které chci pouštět pomocí restart name, tedy: restart van nebo restart ftb

18.6.2013 11:18 bugme | skóre: 16 | blog: bugme
Rozbalit Rozbalit vše Re: Vnořené pole array

Jak v python spustit tyto příkazy:

pgrep -u root -f $SERVICE > /dev/null

ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVERJAR

 

Pořád to u pomlček řve něco o mezerách :/

18.6.2013 16:10 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Vnořené pole array
from __subprocess__ import print_function

import subprocess
import re

SERVICE="foobar"
NULL=open("/dev/null", "wb")

#pgrep -u root -f $SERVICE > /dev/null
subprocess.call(["pgrep", "-u", "root", "-f", SERVICE], stdout=NULL)

#ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVERJAR
# ^^^ neni lepsi pgrep screen?
SERVERJAR="hamspam"
for line in subprocess.check_output(["ps", "ax"]):
  if re.search(SERVERJAR, line):
      print(line, end='')
jinak viz dokumentace
When your hammer is C++, everything begins to look like a thumb.
18.6.2013 16:14 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Vnořené pole array
První řádek má být from __future__ import print_function
When your hammer is C++, everything begins to look like a thumb.
18.6.2013 18:53 bugme | skóre: 16 | blog: bugme
Rozbalit Rozbalit vše Re: Vnořené pole array

Díky. Ale to zapisování v pthon je nějak divné-

Potřebuji spustit tennto příkaz:

 

'cd ' + getServer()['dir'] + ' && screen -dmS ' + getServer()['screen'] + ' java -Xms512M -Xmx2048M -XX:MaxPermSize=1024M -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalPacing -XX:ParallelGCThreads=2 -XX:+AggressiveOpts -jar ' + getServer()['service'] + ' nogui'

Řešení 1× (bugme (tazatel))
18.6.2013 19:36 potato
Rozbalit Rozbalit vše Re: Vnořené pole array
Tak přesně tohle nedělej. Namísto cd můžeš prostě změnit ten adresář (os.chdir). Zbytek prostě nastrkej do pole, každý argument jeden prvek, a nekombinuj stringy.

Pokud by to mělo být něco složitějšího, tak bych už vůbec nematlal příkazy ze stringů, ale vytvořil wrapper shell skript, který má dostat jako argumenty věci, které se mění, všechny složitosti dal do shell skriptu a ten prostě spustil z pythonu s argumenty, které budou pouze ty hodnoty, které se mění.
18.6.2013 20:56 bugme | skóre: 16 | blog: bugme
Rozbalit Rozbalit vše Re: Vnořené pole array

Díky za rady :)

Ještě jedna věc. Jak spustit příkaz s parametrem po přihlášení?

Potřebuji spustit soubor /etc/init.d/minecraft startAll

18.6.2013 21:50 potato
Rozbalit Rozbalit vše Re: Vnořené pole array
Zahodit /etc/init.d skript, najít příčetný spouštěcí mechanismus, tedy systemd unitu, protože každý normální program už ji má, tu povolit přes systemctl enable.

Pokud neexistuje, vytvořit systemd unitu. Vyžaduje přepsat ten minecraft skript -- který zjevně ani nefunguje s normálním SysV start/stop, ale potřebuje jakési speciální příkazy -- do něčeho použitelnějšího.

Pokud není ochota cokoli udělat pořádně, tak to fakenout (a nedivit se, že je to rozbité):
[Unit]
Description=Whatever
# Put dependences here.

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/etc/init.d/minecraft startAll
nebo tak něco.

Založit nové vláknoNahoru

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

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