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.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
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.pldoc.pisz.plpdf.pisz.plmarcelq.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 |
|