ďťż
 
Perl w zastosowaniu administracyjnym ďťż
 
Perl w zastosowaniu administracyjnym
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

Perl w zastosowaniu administracyjnym



k4 - 11-05-2007 12:37
Perl w zastosowaniu administracyjnym
  Hej,

Poszukuje jakiegos tutorialka w ktorym perl jest wykorzystywany w
zastosowaniach administracyjnych.

np. nadanie praw dla wszystkich plkikow *.txt w podkatalogach.

Do teraz uzywalem perla wylacznie do operowania na tekscie, ale wiem ze
mozna go tez bardzo wygodnie uzywac w "admince". Czyli cos co mozna
wklepac w linii komend: perl -le ... cos w ten desen :)

Pozdrawiam





hubert depesz lubaczewski - 11-05-2007 12:37

  On 2007-05-03, k4 <activatelink@poczta.fm> wrote:
> np. nadanie praw dla wszystkich plkikow *.txt w podkatalogach.

find . -type f -name '*.txt' -print0 | xargs -0 chmod 664

> Do teraz uzywalem perla wylacznie do operowania na tekscie, ale wiem ze
> mozna go tez bardzo wygodnie uzywac w "admince". Czyli cos co mozna
> wklepac w linii komend: perl -le ... cos w ten desen :)

perl jest fajny, ale - nie zawsze potrzebny.
nie wymuszaj zastosowania perla tam gdzie da się to co trzeba zrobić
szybciej, prościej i skuteczniej innymi narzędziami.
jak chcesz to samo zrobić w perlu, użyj File::Find.

depesz

--
quicksil1er: "postgres is excellent, but like any DB it requires a
highly paid DBA. here's my CV!" :)
http://www.depesz.com/ - blog dla ciebie (i moje CV)




Marcin Gryszkalis - 11-05-2007 12:37

  k4 wrote:
> Poszukuje jakiegos tutorialka w ktorym perl jest wykorzystywany w
> zastosowaniach administracyjnych.

jest taka książka cała z O'Reilly "perl dla administratorów systemów",
helion to chyba wydał u nas.

pozdrawiam
--
Marcin Gryszkalis, PGP 0x9F183FA3
jabber jid:mg@fork.pl, gg:2532994
http://the.fork.pl




moldovenu - 11-05-2007 12:37

  hubert depesz lubaczewski wrote:
> On 2007-05-03, k4 <activatelink@poczta.fm> wrote:
>> np. nadanie praw dla wszystkich plkikow *.txt w podkatalogach.
>
> find . -type f -name '*.txt' -print0 | xargs -0 chmod 664

krócej
find . -type f -name '*.txt' -exec chmod 664 {} \;

> perl jest fajny, ale - nie zawsze potrzebny.

Może to admin windowsowy? :)

--
adam





=?ISO-8859-2?Q?Zbigniew_Kempczy=F1ski?= - 11-05-2007 12:37

  Użytkownik moldovenu napisał:

>> find . -type f -name '*.txt' -print0 | xargs -0 chmod 664
>
>
> krócej
> find . -type f -name '*.txt' -exec chmod 664 {} \;
>
>> perl jest fajny, ale - nie zawsze potrzebny.
>

Twoja metoda jest krótsza, jednak mocno obciąży system rozwidlaniem
procesów. Zdecydowaniem polecam potok przez xargs.

--
=============================
Zbigniew Kempczyński
http://it.marton.pl/wegorz/
=============================




hubert depesz lubaczewski - 11-05-2007 12:37

  On 2007-05-04, moldovenu <moldovenu@spamu.niet.interia.pl> wrote:
> hubert depesz lubaczewski wrote:
>> On 2007-05-03, k4 <activatelink@poczta.fm> wrote:
>>> np. nadanie praw dla wszystkich plkikow *.txt w podkatalogach.
>>
>> find . -type f -name '*.txt' -print0 | xargs -0 chmod 664
> krócej
> find . -type f -name '*.txt' -exec chmod 664 {} \;

ekhem.
wykonaj to dla większej ilości plików i zobaczysz różnicę.

depesz

--
quicksil1er: "postgres is excellent, but like any DB it requires a
highly paid DBA. here's my CV!" :)
http://www.depesz.com/ - blog dla ciebie (i moje CV)




moldovenu - 11-05-2007 12:37

  > wykonaj to dla większej ilości plików i zobaczysz różnicę.

find / -exec ls -l {} \; >/dev/null
find / -print0|xargs -0 ls -l >/dev/null

Tak sobie patrzę w topa i prawdę mówiąc, nie widzę znaczącej różnicy.
Może przy jakimś oldskulowym 486 te koszty tworzenia procesu byłyby
wyraźniejsze... sorry za obalenie mitu ;)

--
adam




Szymon =?iso-8859-2?Q?Sok=F3=B3?= - 11-05-2007 12:37

  On Fri, 04 May 2007 18:08:30 +0200, moldovenu wrote:

>> wykonaj to dla większej ilości plików i zobaczysz różnicę.
>
> find / -exec ls -l {} \; >/dev/null
> find / -print0|xargs -0 ls -l >/dev/null
>
> Tak sobie patrzę w topa i prawdę mówiąc, nie widzę znaczącej różnicy.
> Może przy jakimś oldskulowym 486 te koszty tworzenia procesu byłyby
> wyraźniejsze... sorry za obalenie mitu ;)

A zmierz czas jednego i drugiego za pomocą time i się pochwal wynikami?
Niekoniecznie z całego /, może być np. z /usr.
--
Szymon Sokół (SS316-RIPE) -- Network Manager B
Computer Center, AGH - University of Science and Technology, Cracow, Poland O
http://home.agh.edu.pl/szymon/ PGP key id: RSA: 0x2ABE016B, DSS: 0xF9289982 F
Free speech includes the right not to listen, if not interested -- Heinlein H




Damian 'legion' Szuberski - 11-05-2007 12:37

  On 2007-05-04, Szymon Sokół wrote:
>>> wykonaj to dla większej ilości plików i zobaczysz różnicę.
>> find / -exec ls -l {} \; >/dev/null
>> find / -print0|xargs -0 ls -l >/dev/null
>> Tak sobie patrzę w topa i prawdę mówiąc, nie widzę znaczącej różnicy.
>> Może przy jakimś oldskulowym 486 te koszty tworzenia procesu byłyby
>> wyraźniejsze... sorry za obalenie mitu ;)
> A zmierz czas jednego i drugiego za pomocą time i się pochwal wynikami?
> Niekoniecznie z całego /, może być np. z /usr.
....a potem wyobraź sobie że takie coś jest zapuszczane 100 razy bo tylu
masz użytkowników...

--
Damian Szuberski




hubert depesz lubaczewski - 11-05-2007 12:37

  On 2007-05-04, moldovenu <moldovenu@spamu.niet.interia.pl> wrote:
>> wykonaj to dla większej ilości plików i zobaczysz różnicę.
> find / -exec ls -l {} \; >/dev/null
> find / -print0|xargs -0 ls -l >/dev/null
> Tak sobie patrzę w topa i prawdę mówiąc, nie widzę znaczącej różnicy.
> Może przy jakimś oldskulowym 486 te koszty tworzenia procesu byłyby
> wyraźniejsze... sorry za obalenie mitu ;)

sorry, nie wiem co ty masz za sprzęt. na moim lapie:
#v+
root@xxx-dl:~# time find /etc -exec ls -ald {} \; > /dev/null

real 0m6.919s
user 0m3.972s
sys 0m2.524s
root@xxx-dl:~# time find /etc -print0 | xargs -0 ls -ald > /dev/null

real 0m0.104s
user 0m0.056s
sys 0m0.048s
root@xxx-dl:~# time find /etc -exec ls -ald {} \; > /dev/null

real 0m6.508s
user 0m3.876s
sys 0m2.552s
root@xxx-dl:~# time find /etc -print0 | xargs -0 ls -ald > /dev/null

real 0m0.115s
user 0m0.068s
sys 0m0.048s
#v-

coś z tymi mitami chyba nie halo.
lap - może nie najnowszy, ale nie przesadzajmy:
Intel(R) Pentium(R) M processor 1.86GHz z dyskiem (sata):
Direct-Access ATA TOSHIBA MK6032GA AD20 PQ: 0 ANSI: 5

więc.
może dla ciebie 60-krotne dopalenie to niewiele. może mój sprzęt to "486".
albo może z tym obalaniem mitów się wstrzymaj.

i zwróć uwagę na to, że to widać już dla samego /etc gdzie jest niewiele rzeczy:
root@xxx-dl:~# find /etc | wc -l
3007

depesz

--
quicksil1er: "postgres is excellent, but like any DB it requires a
highly paid DBA. here's my CV!" :)
http://www.depesz.com/ - blog dla ciebie (i moje CV)




Marcin Gryszkalis - 11-05-2007 12:37

  hubert depesz lubaczewski wrote:
> root@xxx-dl:~# time find /etc -exec ls -ald {} \; > /dev/null
>
> real 0m6.919s
> user 0m3.972s
> sys 0m2.524s
> root@xxx-dl:~# time find /etc -print0 | xargs -0 ls -ald > /dev/null
>
> real 0m0.104s
> user 0m0.056s
> sys 0m0.048s

pomijajac, ze oczywiscie xargsem bedzie szybciej, to chyba jednak
pecyzyjniej byloby

# time ( find /etc -print0 | xargs -0 ls -ald > /dev/null )

?
pozdrawiam
--
Marcin Gryszkalis, PGP 0x9F183FA3
jabber jid:mg@fork.pl, gg:2532994
http://the.fork.pl




hubert depesz lubaczewski - 11-05-2007 12:37

  On 2007-05-05, Marcin Gryszkalis <mg@fork.pl> wrote:
> pomijajac, ze oczywiscie xargsem bedzie szybciej, to chyba jednak
> pecyzyjniej byloby
> # time ( find /etc -print0 | xargs -0 ls -ald > /dev/null )
> ?
> pozdrawiam

zrobiłem test na /etc i na /usr. nie widzę istotnych różnic.
wydaje mi się, że proces finda zostanie ubity dopiero po skończeniu
xargsa.

depesz

--
quicksil1er: "postgres is excellent, but like any DB it requires a
highly paid DBA. here's my CV!" :)
http://www.depesz.com/ - blog dla ciebie (i moje CV)




Stachu 'Dozzie' K. - 11-05-2007 12:37

  On 06.05.2007, hubert depesz lubaczewski <depesz@depesz.com> wrote:
> On 2007-05-05, Marcin Gryszkalis <mg@fork.pl> wrote:
>> pomijajac, ze oczywiscie xargsem bedzie szybciej, to chyba jednak
>> pecyzyjniej byloby
>> # time ( find /etc -print0 | xargs -0 ls -ald > /dev/null )
>> ?
>> pozdrawiam
>
> zrobiłem test na /etc i na /usr. nie widzę istotnych różnic.
> wydaje mi się, że proces finda zostanie ubity dopiero po skończeniu
> xargsa.

type time
Jeśli to shell builtin (bash, zsh), to mierzy czas wykonania całego
potoku. Nawiasem mówiąc, gdyby time było zewnętrznym poleceniem
(/usr/bin/time), to konstrukcja `time ( ... )' byłaby niepoprawna
składniowo.

--
Secunia non olet.
Stanislaw Klekot




Michal Jankowski - 11-05-2007 12:37

  "Stachu 'Dozzie' K." <dozzie@dynamit.im.pwr.wroc.pl.nospam> writes:

> type time
> Jeśli to shell builtin (bash, zsh), to mierzy czas wykonania całego
> potoku. Nawiasem mówiąc, gdyby time było zewnętrznym poleceniem
> (/usr/bin/time), to konstrukcja `time ( ... )' byłaby niepoprawna
> składniowo.

A w bashu jest poprawnie składniowo, ale czasu nie liczy:

$ time (ps)
PID TTY TIME CMD
14412 pts/7 00:00:00 bash
14446 pts/7 00:00:00 ps
$

Dopiero w zsh:

% time (ps)
PID TTY TIME CMD
14412 pts/7 00:00:00 bash
14454 pts/7 00:00:00 zsh
14489 pts/7 00:00:00 ps
(; ps; ) 0.00s user 0.01s system 92% cpu 0.011 total
%

MJ
PS. time sh -c '....'




Marcin Gryszkalis - 11-05-2007 12:37

  Michal Jankowski wrote:
> Dopiero w zsh:
>
> % time (ps)
> PID TTY TIME CMD
> 14412 pts/7 00:00:00 bash
> 14454 pts/7 00:00:00 zsh
> 14489 pts/7 00:00:00 ps
> (; ps; ) 0.00s user 0.01s system 92% cpu 0.011 total

builtin zsh jest jeszcze inteligentniejszy - bo domyslnie sam sobie rozbija
i liczy wszystkie skladowe, tj.

$ time echo x | grep x | tr a b
x
echo x 0.00s user 0.00s system 18% cpu 0.009 total
egrep x 0.00s user 0.01s system 9% cpu 0.088 total
tr a b 0.00s user 0.01s system 7% cpu 0.078 total

dlatego też zaproponowałem nawias, bo używam zsh i nie pomyślałem o bashu
pozdrawiam
--
Marcin Gryszkalis, PGP 0x9F183FA3
jabber jid:mg@fork.pl, gg:2532994
http://the.fork.pl




moldovenu - 11-05-2007 12:37

  >> Tak sobie patrzę w topa i prawdę mówiąc, nie widzę znaczącej różnicy.
>> Może przy jakimś oldskulowym 486 te koszty tworzenia procesu byłyby
>> wyraźniejsze... sorry za obalenie mitu ;)
>
> root@xxx-dl:~# time find /etc -exec ls -ald {} \; > /dev/null
> root@xxx-dl:~# time find /etc -print0 | xargs -0 ls -ald > /dev/null

Witam po weekendzie ;)
Wiesz, na topie ja nie sprawdzałem czasu wykonania procesu, tylko
obciążenie CPU (które w obu przypadkach jest takie samo). Rzeczywiście,
czas wykonania z potokiem jest ~2 rzędy szybszy. Mam nadzieję, że
naszemu początkującemu adminowi te rozważania przydadzą się praktycznie.

--
adam
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Nie możnaby jakoś dać kopa tej Viagrze? Adminie, moderatorze czyjakoś tam. Nie śpij! Poszukiwany: Administrator/projektant bazy danych postgreSQL/Warszawa =?iso-8859-1?q?Praca_dla_Administratora_System=F3w_Informatyc znych?= Re: [Oracle] Brak strony Database Administrator administrator FREEBSD/DEBIAN POSTGRESQL (WARSZAWA) Oracle 9i - jaki podrecznik administratora Podstawowa administracja MSSQL 2005. mysql administrator szybkość - restore Panel Administracyjny do CMS ?? HELP !! [MySQL] Program do administracji
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • marcelq.xlx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com