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: Skript hexdump - ulozeni do souboru [vyřešeno]  (Přečteno 2621 krát)

ratom

  • Návštěvník
  • Příspěvků: 47
Skript hexdump - ulozeni do souboru [vyřešeno]
« kdy: 19 Ledna 2011, 09:27:10 »
Zdar,
chtěl bych si vytvořit skript pro spuštění příkazu hexdump a záznam výpisu po nějakém čase do souboru. Při spuštění skriptu bych nechtěl, aby se mi otevřel terminál, textový editor, kam bych ukládal.

principiálně by to bylo asi takto:

sudo gedit /home/user/hexdump/vypis"datum".txt

hexdump /dev/input/event5

loop (  kopírování výpisu hexdump
          uložení výpisu do /home/user/hexdump/vypis"datum".txt
          čekání třeba pět minut
              )

Nevím, co by bylo nejjednodušší, jestli skript nebo něco jiného.

Dík za tipy.


« Poslední změna: 23 Ledna 2011, 12:04:19 od ratom »

pacholik

  • Závislák
  • ***
  • Příspěvků: 2072
Re: Skript hexdump - ulozeni do souboru
« Odpověď #1 kdy: 19 Ledna 2011, 18:09:31 »
Kód: [Vybrat]
#!/bin/sh

while sleep 300; do hexdump /dev/input/event5 >> /home/user/hexdump/vypis`date +%F`.txt; done

ratom

  • Návštěvník
  • Příspěvků: 47
Re: Skript hexdump - ulozeni do souboru
« Odpověď #2 kdy: 20 Ledna 2011, 08:16:42 »
Dík. Vypadá to jednoduše. Vyzkouším.

ratom

  • Návštěvník
  • Příspěvků: 47
Re: Skript hexdump - ulozeni do souboru
« Odpověď #3 kdy: 20 Ledna 2011, 20:27:29 »
Nedaří se mi donutit hexdump ukládat do souboru. Nevím, jak hexdump ukončit. Ukončuji jen za pomoci Ctrl + c. Příkaz hexdump se sám neukončuje, ne pro dev/input/event.


pacholik

  • Závislák
  • ***
  • Příspěvků: 2072
Re: Skript hexdump - ulozeni do souboru
« Odpověď #4 kdy: 20 Ledna 2011, 21:11:44 »
Aha sry, až teď sem teda zkusil co ten hexdump dělá ::)

Takže bys chtěl aby to 5 min ukládalo do jednoho souboru, pak 5 min do druhýho atd. ? To by šlo nějak takle:
Kód: [Vybrat]
#!/bin/sh

while :; do
hexdump /dev/input/event5 >> /home/user/hexdump/vypis`date +%F\ %R`.txt &
sleep 300
kill -INT $!
done

ratom

  • Návštěvník
  • Příspěvků: 47
Re: Skript hexdump - ulozeni do souboru
« Odpověď #5 kdy: 21 Ledna 2011, 19:16:55 »
Ty cykly s while, sleep bych si úzpůsobil dle svého, bez problému fungují. Jen mám problém s tím vlastním příkazem hexdump, neukládá do souboru, pomocí >>.
Z nápovědy k hexdump jsem zatím způsob, jak ukládat do souboru nevyčet. Zkoušel jsem pár pokusů a nic.

GdH

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 3176
    • GdH-Notes
Re: Skript hexdump - ulozeni do souboru
« Odpověď #6 kdy: 21 Ledna 2011, 19:26:24 »
Ty cykly s while, sleep bych si úzpůsobil dle svého, bez problému fungují. Jen mám problém s tím vlastním příkazem hexdump, neukládá do souboru, pomocí >>.
Z nápovědy k hexdump jsem zatím způsob, jak ukládat do souboru nevyčet. Zkoušel jsem pár pokusů a nic.

Řekl bych, že něco děláš špatně, hexdump posílá data normálně na stdout a přesměrování do souboru funguje.

Co třeba ta cesta: /home/user/..., lepší nahradit $HOME, nebo ~.
« Poslední změna: 21 Ledna 2011, 19:29:34 od GdH »

pacholik

  • Závislák
  • ***
  • Příspěvků: 2072
Re: Skript hexdump - ulozeni do souboru
« Odpověď #7 kdy: 21 Ledna 2011, 19:46:13 »
radši ne, $HOME by možná ještě šel, ale ~ určitě ne, bude to spouštět pod rootem (že ?)

daysleeper

  • Stálý člen
  • **
  • Příspěvků: 1206
Re: Skript hexdump - ulozeni do souboru
« Odpověď #8 kdy: 21 Ledna 2011, 19:49:10 »
mne to taky nefunguje, napr. pro
Kód: [Vybrat]
hexdump /dev/input/mouse1 >> /tmp/logpricemz klasicky na konzoli ano

da se to ale obejit pomoci
Kód: [Vybrat]
dd if=/dev/input/mouse1 of=/tmp/log bs=1a prikaz hexdump se pak pouzije na zobrazeni binarniho souboru /tmp/log

GdH

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 3176
    • GdH-Notes
Re: Skript hexdump - ulozeni do souboru
« Odpověď #9 kdy: 21 Ledna 2011, 20:07:51 »
Zajímavé... Já totiž při zkoušení použil ../by-id/zařízení, neb se lépe hledá..

Kód: [Vybrat]
hexdump /dev/input/by-id/usb-Genius_Optical_Mouse-event-mouse >> soubor
což funguje, zatímco přímo to fakt nefunguje ani mně.



radši ne, $HOME by možná ještě šel, ale ~ určitě ne, bude to spouštět pod rootem (že ?)

Mimochodem toto bylo způsobené tím, že první příspěvek jsem dnes znovu nečetl a paměť je slabá, jinak by mi bylo jasněji.
« Poslední změna: 21 Ledna 2011, 20:22:40 od GdH »

daysleeper

  • Stálý člen
  • **
  • Příspěvků: 1206
Re: Skript hexdump - ulozeni do souboru
« Odpověď #10 kdy: 21 Ledna 2011, 20:35:04 »
radši ne, $HOME by možná ještě šel, ale ~ určitě ne, bude to spouštět pod rootem (že ?)
jaky je v tomto pripade rozdil mezi $HOME a ~?

GdH

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 3176
    • GdH-Notes
Re: Skript hexdump - ulozeni do souboru
« Odpověď #11 kdy: 21 Ledna 2011, 20:49:54 »
radši ne, $HOME by možná ještě šel, ale ~ určitě ne, bude to spouštět pod rootem (že ?)
jaky je v tomto pripade rozdil mezi $HOME a ~?

Pravděpodobně žádný :)

Zajímavější jsou rozdíly ve výstupu /dev/input a /dev/input/by-id, protože jsem nedávno zprovozňoval tablet a měl jsem problém v tom, že nešlo použít /by-id/, musel jsem to píchnout přímo, což je opruz když potřebujete přepojit konektory. Myslel jsem, že je to jen link a to jsem netušil, že bude rozdíl i pro výstup z hexdump, tentokrát opačný..

pacholik

  • Závislák
  • ***
  • Příspěvků: 2072
Re: Skript hexdump - ulozeni do souboru
« Odpověď #12 kdy: 21 Ledna 2011, 21:02:45 »
rozdíl tam je, $HOME je proměnná ~ je kdovíco
Kód: [Vybrat]
pacholik@hp:~$ sudo sh -c "echo ~"
/root
pacholik@hp:~$ sudo sh -c "echo $HOME"
/home/pacholik
s jednoduchýma uvozovkama už tam rozdíl není a ve skriptu taky ne (takže mea culpa)

daysleeper

  • Stálý člen
  • **
  • Příspěvků: 1206
Re: Skript hexdump - ulozeni do souboru
« Odpověď #13 kdy: 21 Ledna 2011, 21:22:12 »
@~ vs $HOME

man bash
Kód: [Vybrat]
If a word begins with an unquoted tilde character (`~'), all of the characters preceding the first unquoted slash (or all characters, if  there  is
       no  unquoted  slash)  are  considered a tilde-prefix.  If none of the characters in the tilde-prefix are quoted, the characters in the tilde-prefix
       following the tilde are treated as a possible login name.  If this login name is the null string, the tilde is replaced with the value of the shell
       parameter  HOME.   If  HOME  is  unset,  the home directory of the user executing the shell is substituted instead.  Otherwise, the tilde-prefix is
       replaced with the home directory associated with the specified login name.

 

Provoz zaštiťuje spolek OpenAlt.