Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Prosim o pomoc s vytvorenim skriptu pro automatizaci.  (Přečteno 3583 krát)

Sviccc

  • Návštěvník
  • Příspěvků: 38
Prosim o pomoc s vytvorenim skriptu pro automatizaci.
« kdy: 02 Října 2009, 17:35:06 »
Takze muj problem je :

Ve slozce /home/sviccc/hltv/ jsou soubory *.dem a kazdy z nich ma cca 11MB.Chtel bych pomoci skriptu kazdy nove vytvoreny soubor *.dem zkomprimovat na *.tar.bz2.Problem je, ze kazdy soubor se vytvori kazdych 20 minut ale uz od prvni minuty je vytvoreny a az po dokonceni nahravani do tohoto souboru se stane kompletnim.Ve skriptovani sem celkem jeste looser, ale nekde se zacit musi a proto dekuji za jakoukoliv odpoved :)  :P
BackTrack 5 powered E7600 @ 3ghz, 4GB DDR3, SB Live! 5.1 Digital (emu10k1), Sapphire HD 5750 Vapor-X 1GB.
Hosting Counter-Strike 1.6 servers at www.granatovajahoda.cz

starenka

  • Stálý člen
  • **
  • Příspěvků: 1276
  • Karma: plynová [zapalovač] [hasičák]
    • /home/starenka
Re: Prosim o pomoc s vytvorenim skriptu pro automatizaci.
« Odpověď #1 kdy: 02 Října 2009, 18:58:26 »
tady mas muj prasopes co ti vezme vsechny *.dem krome nejnovejsiho. v tom cyklu uz to zabalit a smazt zvladnes, co? trochu snahy, hm?
Kód: [Vybrat]
all=(`ls *.dem --sort=t`); for ((i=1;i<${#all[@]};i++)); do echo ${all[$i]}; done
#popravde ale nevim, co to udela, pokud tam ten *.dem bude jen jeden :D
« Poslední změna: 02 Října 2009, 19:02:16 od starenka »
mojenka | blozinek v2 | starej blozinek | krotim hady za penize | UJ! Kalužátor

Debian testing vrní v Thinkpadu X200/bedně/EEE 900a, MasoX Tiger v lampe

Martin - ViPEr*CZ*

  • Závislák
  • ***
  • Příspěvků: 3047
Re: Prosim o pomoc s vytvorenim skriptu pro automatizaci.
« Odpověď #2 kdy: 02 Října 2009, 20:00:02 »
tady mas muj prasopes co ti vezme vsechny *.dem krome nejnovejsiho. v tom cyklu uz to zabalit a smazt zvladnes, co? trochu snahy, hm?
Kód: [Vybrat]
all=(`ls *.dem --sort=t`); for ((i=1;i<${#all[@]};i++)); do echo ${all[$i]}; done
#popravde ale nevim, co to udela, pokud tam ten *.dem bude jen jeden :D
Super... už my to dnes nemyslí... jsem přemýšlel jak rozlišit, že už se dokončilo zapisování... dalo by se nějak ověřit zda daná aplikace běží... nebo se pokusit provést nějakou radikální změnu se souborem (rename, delete), pokud ho má otevřený (lokovaný) jiná aplikace nepůjde to.... a todle je taky chytrý... cash (počet souborů *.dem)... a pokud se objeví nový předposlední se zabalí... sice to je o krok pozadu... ale taky dobrý...

myšlenka principů se rozšiřuje  ;)
Open source is gold way... Mint 17.2, Debian 8.1 Jessie| Ubuntu Wiki (návody) | Google vyhledávač | Qt4 návody

Sviccc

  • Návštěvník
  • Příspěvků: 38
Re: Prosim o pomoc s vytvorenim skriptu pro automatizaci.
« Odpověď #3 kdy: 03 Října 2009, 01:12:54 »
Mockrat diky za plnohodnotnou odpoved ackoliv jsem to jeste nezkousel, ale verim ze to fungovat bude.A i kdyby ne, pro me je to obrovske nasmerovani a tenhle skript si asi zapamatuju navzdy.Takze dnes to zkusim sesmolit a dam vedet jak na tom moje dovednosti jsou :) ale upozornuju ze jsem hracicka a vydrzim si s tim hrat klidne tyden,mesic,rok atd... :)
Takze jeste jednou diky ;)
Jo a jeste jedna otazecka.Co kdyz uz to zabalene bude a spustim znova skript?nezacne to balit ty stare soubory znovu?
« Poslední změna: 03 Října 2009, 01:17:00 od Sviccc »
BackTrack 5 powered E7600 @ 3ghz, 4GB DDR3, SB Live! 5.1 Digital (emu10k1), Sapphire HD 5750 Vapor-X 1GB.
Hosting Counter-Strike 1.6 servers at www.granatovajahoda.cz

Martin Kiklhorn

  • Člen občanského sdružení Ubuntu ČR a placené komunitní podpory
  • Administrátor fóra
  • Závislák
  • ******
  • Příspěvků: 4807
  • グーグル!ご存知ですか?
    • HEJ
Re: Prosim o pomoc s vytvorenim skriptu pro automatizaci.
« Odpověď #4 kdy: 03 Října 2009, 08:51:01 »
Jen drobné popostrčení - zkuste
Kód: [Vybrat]
file soubor na nezkomprimovaný a zkomprimovaný soubor a najděte podstatný rozdíl.
Jsou ve vašem dotazu OPRAVDU VŠECHNY vám dostupné informace o problému?
Linux user since 2007-10-11, Registered #456007
Virtual
| Distribuce
~/slozka znamená /home/"vase jmeno"/slozka
6521 69DE 0F34 FCBC FB1D  DE76 360E 52B2 F71A B8E8

Yontalcar

  • Stálý člen
  • **
  • Příspěvků: 833
  • Semper fidelis
Re: Prosim o pomoc s vytvorenim skriptu pro automatizaci.
« Odpověď #5 kdy: 03 Října 2009, 08:57:41 »
@Svicc
chceš ty soubory jenom komprimovat, nebo i házet do archivu (např. tar; archiv slouží k zabalení dat a metadat množiny souborů do jednoho souboru)? Pokud jenom komprimovat, tak použij jenom bzip2 (nebo gzip, nebo lzma). Tyto programy defaultně po vytvoření archivu původní soubor smažou.
ten jeho 'prasopes' vezme jenom *.dem, *.dem.bz2 už ne

@Viper
ty soubory by asi bylo nejjednodušší testovat přes lsof
rename/delete by teoreticky mohl klidně proběhnout, a přitom by program zapisoval dál do nepojmenované inode
« Poslední změna: 03 Října 2009, 09:08:50 od Yontalcar »
NB: ASUS X53U - AMD Brazos E450; Debian GNU/Linux Sid amd64 (KDE 4.14)
Jen dvě věci jsou nekonečné - vesmír a lidská hloupost. Tím prvním si ovšem nejsem tak jist. - Albert Einstein

starenka

  • Stálý člen
  • **
  • Příspěvků: 1276
  • Karma: plynová [zapalovač] [hasičák]
    • /home/starenka
Re: Prosim o pomoc s vytvorenim skriptu pro automatizaci.
« Odpověď #6 kdy: 03 Října 2009, 10:42:45 »
Yontalcar: wow! lsof je genialni, tudiz staci tomu taru dat exclude na jemne pogrepovanej lsof na aktualnim adresari a je vymalovano, ne? Dik, neznal jsem
« Poslední změna: 03 Října 2009, 10:44:42 od starenka »
mojenka | blozinek v2 | starej blozinek | krotim hady za penize | UJ! Kalužátor

Debian testing vrní v Thinkpadu X200/bedně/EEE 900a, MasoX Tiger v lampe

Sviccc

  • Návštěvník
  • Příspěvků: 38
Re: Prosim o pomoc s vytvorenim skriptu pro automatizaci.
« Odpověď #7 kdy: 03 Října 2009, 11:36:40 »
Tak sem zpet  :P
Myslite si, ze takhle by to mohlo fungovat?

#!/bin/bash
cd /home/sviccc/HLTV/cstrike
all=(`ls *.dem --sort=t`); for ((i=1;i<${#all
  • };i++)); do echo ${all[$i]}; bzip2 *.dem; done


Nejlepsi by bylo vysvetlit mi jednotlivy prikazy v retezci.Pochopil sem z toho akorat: vypsat *.dem,seradit podle data,a nakonec vypsat :D

Ale jak ted koukam tak se to nepovedlo jelikoz mi to zabalilo vse.Potreboval bych nejaky chytry text, kde bych se tohle vsechno docetl.
« Poslední změna: 03 Října 2009, 11:38:55 od Sviccc »
BackTrack 5 powered E7600 @ 3ghz, 4GB DDR3, SB Live! 5.1 Digital (emu10k1), Sapphire HD 5750 Vapor-X 1GB.
Hosting Counter-Strike 1.6 servers at www.granatovajahoda.cz

Yontalcar

  • Stálý člen
  • **
  • Příspěvků: 833
  • Semper fidelis
Re: Prosim o pomoc s vytvorenim skriptu pro automatizaci.
« Odpověď #8 kdy: 03 Října 2009, 12:11:05 »
Myslite si, ze takhle by to mohlo fungovat?
Kód: [Vybrat]
#!/bin/bash
cd /home/sviccc/HLTV/cstrike
all=(`ls *.dem --sort=t`); for ((i=1;i<${#all[@]};i++)); do echo ${all[$i]}; bzip2 *.dem; done
...
Ale jak ted koukam tak se to nepovedlo jelikoz mi to zabalilo vse.
Nebude to fungovat, uvědom si, že to nechceš vypsat, ale jenom zkomprimovat, takže to echo nahraď čím potřebuješ

Potreboval bych nejaky chytry text, kde bych se tohle vsechno docetl.
Kód: [Vybrat]
man bash ;)
pokud chceš něco lehčího, tak http://docs.linux.cz/programming/interpreted/bashdoc-1.4/
« Poslední změna: 03 Října 2009, 12:25:58 od Yontalcar »
NB: ASUS X53U - AMD Brazos E450; Debian GNU/Linux Sid amd64 (KDE 4.14)
Jen dvě věci jsou nekonečné - vesmír a lidská hloupost. Tím prvním si ovšem nejsem tak jist. - Albert Einstein

Sviccc

  • Návštěvník
  • Příspěvků: 38
Re: Prosim o pomoc s vytvorenim skriptu pro automatizaci.
« Odpověď #9 kdy: 03 Října 2009, 12:15:51 »
No jasne sem to ale vul  8) To me ale mohlo napadnout ze to nechci echovat ale komprimovat :-D
Jen pockejte zajici, za par let tu budu radit ja Vam  :-*
Dekuji vsem :-)
BackTrack 5 powered E7600 @ 3ghz, 4GB DDR3, SB Live! 5.1 Digital (emu10k1), Sapphire HD 5750 Vapor-X 1GB.
Hosting Counter-Strike 1.6 servers at www.granatovajahoda.cz

starenka

  • Stálý člen
  • **
  • Příspěvků: 1276
  • Karma: plynová [zapalovač] [hasičák]
    • /home/starenka
Re: Prosim o pomoc s vytvorenim skriptu pro automatizaci.
« Odpověď #10 kdy: 03 Října 2009, 14:14:00 »
Kód: [Vybrat]
#!/bin/bash
cd /home/sviccc/HLTV/cstrike
all=(`ls *.dem --sort=t`) #vezmi vsechny *.dem serazeny od nejnovejsiho po nejstarsi
for ((i=1;i<${#all[@]};i++)) #zacni je prochazet (vynech prvni - proto i=1, kdyz nepotrebujes indexy, staci napr for x in y; do echo $y)
   do
       bzip2 ${all[$i]} #kazdou polozku v sekvenci zabzipuj
   done
« Poslední změna: 03 Října 2009, 14:16:36 od starenka »
mojenka | blozinek v2 | starej blozinek | krotim hady za penize | UJ! Kalužátor

Debian testing vrní v Thinkpadu X200/bedně/EEE 900a, MasoX Tiger v lampe

arrange

  • Závislák
  • ***
  • Příspěvků: 4031
  • "jdu s hlavou vztyčenou..."
Re: Prosim o pomoc s vytvorenim skriptu pro automatizaci.
« Odpověď #11 kdy: 03 Října 2009, 16:44:57 »
Moment, není to trochu složité? A co mezery v názvech souborů? Nebylo by jednodušší něco jako
Kód: [Vybrat]
find . -type f -name '*.dem' | while read soubor; do bzip2 "$soubor"; done?
http://www.openstreetmap.org - mapy celého světa "wiki style"

Yontalcar

  • Stálý člen
  • **
  • Příspěvků: 833
  • Semper fidelis
Re: Prosim o pomoc s vytvorenim skriptu pro automatizaci.
« Odpověď #12 kdy: 03 Října 2009, 17:21:05 »
Moment, není to trochu složité? A co mezery v názvech souborů? Nebylo by jednodušší něco jako
Kód: [Vybrat]
find . -type f -name '*.dem' | while read soubor; do bzip2 "$soubor"; done?
Neškodilo by, kdybys si přečetl, oc má vlastně tazatel za problém
když už, tak by bylo možné
Kód: [Vybrat]
ls -1 *.dem --sort=t |tail -n +2| while read soubor; do bzip2 "$soubor"; donea nebo možná
Kód: [Vybrat]
find . -type f -name '*.dem' | while read soubor; do
    [ -z "$(lsof "${soubor}")" ]&&bzip2 "$soubor"
done
NB: ASUS X53U - AMD Brazos E450; Debian GNU/Linux Sid amd64 (KDE 4.14)
Jen dvě věci jsou nekonečné - vesmír a lidská hloupost. Tím prvním si ovšem nejsem tak jist. - Albert Einstein

starenka

  • Stálý člen
  • **
  • Příspěvků: 1276
  • Karma: plynová [zapalovač] [hasičák]
    • /home/starenka
Re: Prosim o pomoc s vytvorenim skriptu pro automatizaci.
« Odpověď #13 kdy: 03 Října 2009, 19:27:02 »
aha, tail me nenapadnul
mojenka | blozinek v2 | starej blozinek | krotim hady za penize | UJ! Kalužátor

Debian testing vrní v Thinkpadu X200/bedně/EEE 900a, MasoX Tiger v lampe

Martin - ViPEr*CZ*

  • Závislák
  • ***
  • Příspěvků: 3047
Re: Prosim o pomoc s vytvorenim skriptu pro automatizaci.
« Odpověď #14 kdy: 03 Října 2009, 19:54:06 »
@Viper
ty soubory by asi bylo nejjednodušší testovat přes lsof
rename/delete by teoreticky mohl klidně proběhnout, a přitom by program zapisoval dál do nepojmenované inode
Asi deformace z woken. Tam pokud fopen otevře nějaká aplikace, tak ti to nedovolí smáznout.
Open source is gold way... Mint 17.2, Debian 8.1 Jessie| Ubuntu Wiki (návody) | Google vyhledávač | Qt4 návody

Martin - ViPEr*CZ*

  • Závislák
  • ***
  • Příspěvků: 3047
Re: Prosim o pomoc s vytvorenim skriptu pro automatizaci.
« Odpověď #15 kdy: 03 Října 2009, 19:54:26 »
@Viper
ty soubory by asi bylo nejjednodušší testovat přes lsof
rename/delete by teoreticky mohl klidně proběhnout, a přitom by program zapisoval dál do nepojmenované inode
Asi deformace z woken. Tam pokud pomocí fopen otevře nějaká aplikace soubor, tak ti to nedovolí smáznout.
Open source is gold way... Mint 17.2, Debian 8.1 Jessie| Ubuntu Wiki (návody) | Google vyhledávač | Qt4 návody

 

Provoz zaštiťuje spolek OpenAlt.