Új hozzászólás Aktív témák
-
válasz CPT.Pirk #900 üzenetére
N4 nevű fájl nem kell, a -N azt mondja meg, hány bájtot olvasson a bemenetéről. mivel neked 4 bájtba van letéve a 2x12 bit, ezért írt -N4-et
crtscts emlékeim szerint akkor kell, ha a másik oldal hardveres handshake-t csinál.
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
CPT.Pirk
Jómunkásember
Elvileg kézfogás mentes uart protokoll van, mert az FPGA felé megy egy CTS és RTS, viszont onnan a modul felé csak a TX, és mérések szerint a CTS, RTS logikai '1'-en vannak, amint végez a modul az USB-s kapcsolat felépítésével.
Végül is mindegy, mert a modulom küldi a cuccot, lehet, hogy külön kezeli az adó és a vevő oldalt.Am igen, már lejárt a szerkesztés, mikor rájöttem, hogy az N4 az nem fájl akar lenni.
Viszont akkor az a kérdésem, hogy konkrétan hogyan tudnék lementeni beeső 4*8 bitet? Milyen környezetben használjam ezt az OD parancsot?Nincs más - csak egy szál gitár - szidom a rendszert - forradalmár. - Én vagyok egyedül 88 telén. (Auróra)
-
-
CPT.Pirk
Jómunkásember
Megpróbáltam -crtscts, crtscts-el és ezek nélkül is, mindegyik esetben az stty szerint a baudrate 38400, az od-s parancsot kiadva meg a modulom abbahagyja a küldést. Mikor kihúzom az USB-t, akkor 7 darab 0 a kimenet.
Ezután ha visszadugom, a modul újra küld csomagokat, nem kell semmit csinálnom.[ Szerkesztve ]
Nincs más - csak egy szál gitár - szidom a rendszert - forradalmár. - Én vagyok egyedül 88 telén. (Auróra)
-
eriktoth
tag
Üdv!
Van egy ilyen feladatom:
a TEST_DIR paraméter megadja a könyvtárstruktúrát, és egy választható reguláris kifejezés szűri a könyvtárakat, amibe dolgozni fogunkValahogy nekem ez teljesen érthetetlen, valaki ha tudna hozzáfűzni valamit esetleg
Előre is kösz
-
Siriusb
veterán
Bootoláskor, ha egy adott merevlemez csatolva van, szeretném altatásba küldeni:
LEMEZ="dev/disk/by-id/ata-akarmi"
if [ -b "$LEMEZ" ]
then
(sleep 30 && /sbin/hdparm -Y $LEMEZ) &
echo "kicsi"
fiEz miért nem működik?
[ Szerkesztve ]
-
eriktoth
tag
ÜDV!
Olyasmit hogyan lehetne megoldani, hogy megalállaptom, hogy egy könyvtarnak van e allkönyvtara, es nincsenek benne fájlok, ha van kiir valamit, illetve, hogy a könyvtárban, nincsenek semilyen szimbolikus linkek
elore is köszönöm, eleg fontos :S -
-
eriktoth
tag
Még kifelejtettem, ezt úgy is meg fogom tudni csinálni, ha konkrétan nem fogom ismerni a könyvtárak, vagy a fájlok nevét?
-
lapa
veterán
most kezdek neki harmadszor, de szerintem most megvan a kérdés: van egy scriptem, sleepel épp. olyat szeretnék, hogy még fusson le valami, mikor ctrl + c-t nyomok.
odáig megvagyok, hogy két egymásba ágyazott szkripttel megoldható. de megoldható-e egy scripten belül? van egy kb 30 soros rutin, ami folyamatosan megy, ennek az aktuális eredményét kéne ctrl + c vagy init 0 esetén elmentenem. köszi.
-
eriktoth
tag
ÜDV!
Most olyan kérdésem lenne, hogy van a következő kódom:for i in `find . -name "*-captured"`
do
mv "$i" stdout-expected
doneSzépen megtalálja a fájlt, át is nevezi, de áthelyezi a home könyvtárba amit nem szeretnek
esetleg ötlet?
előre is köszönöm -
-
-
-
-
eriktoth
tag
Köszönöm az előző problémát sikerült megoldanom, de újba ütköztem:
a mappa amiben van a cmd-given nevá fájl le kell ellenőriznem, hogy az e a feldolgozandó mappa, illetve a cmd-given fut-e?
Valami ötletek esetleg? -
lapa
veterán
nekem ez nem mén se ctrl + c-re, se logoff gombra:
#!/bin/bash
bashtrap()
{
cat /tmp/sensor >> /media/truecrypt1/backup/sensor
rm /tmp/sensor
fusermount -u /mnt/sensor
}
/opt/owfs/bin/owfs -u /mnt/sensor/
while [ 1 -eq 1 ]
do
touch /tmp/sensor
most=`date +%s`
lejar=`date --date='3580 second' +%s`
while [ $most -le $lejar ]
do
most=`date +%s`
miko=`date +"%Y.%m.%d %H:%M:%S"`
mit=`cat /mnt/sensor/10.*/temperature`
echo $miko$mit >> /tmp/sensor
sleep 15
done
cat /tmp/sensor >> /media/truecrypt1/backup/sensor
rm /tmp/sensor
done[ Szerkesztve ]
-
lapa
veterán
válasz Jester01 #924 üzenetére
oké, most raktam egy ilyet mindenhova:
#!/bin/bash
------------------------------------------------trap bashtrap INT
bashtrap()
{
cat /tmp/sensor >> /media/truecrypt1/backup/sensor
rm /tmp/sensor
fusermount -u /mnt/sensor
}
/opt/owfs/bin/owfs -u /mnt/sensor/
while [ 1 -eq 1 ]
do
--------------------------------------------------trap bashtrap INT
touch /tmp/sensor
most=`date +%s`
lejar=`date --date='3580 second' +%s`
while [ $most -le $lejar ]
do
-----------------------------------------------------trap bashtrap INT
most=`date +%s`
miko=`date +"%Y.%m.%d %H:%M:%S"`
mit=`cat /mnt/sensor/10.*/temperature`
echo $miko$mit >> /tmp/sensor
sleep 15
done
cat /tmp/sensor >> /media/truecrypt1/backup/sensor
rm /tmp/sensor
donede ez még nem tökéletes. első ctrl + c-re nem adja vissza a promptot. második ctrl + c-re meg az alábbiakat ismétli:
^Ccat: /mnt/sensor/10.*/temperature: No such file or directory
^Cfusermount: entry for /mnt/sensor not found in /etc/mtab
cat: /mnt/sensor/10.*/temperature: No such file or directory
^Cfusermount: entry for /mnt/sensor not found in /etc/mtab
cat: /mnt/sensor/10.*/temperature: No such file or directoryközben meg dátumozott, üres sorok képződnek. mintha a do - while-t nem hagyná el. előbb próbáltam a trapba exit do-t írni de az se sikerült túl jól.
[ Szerkesztve ]
-
-
lapa
veterán
úgy próbáltam először, de akkor se lépett ki ctrl + c-re a termosztátból, hanem ugyanazt írogatta, mint amit a végén írok.
nemtom van olyan, hogy exit loop vagy ilyesmi?
upd: ez az exit 0 reálisan hangzik, nagyjából kezdem érteni mi történt mikor az előbb a trapot "exit do"-val kezdtem.
szerintem jó lesz ez így, köszi mindkettőtöknek.
[ Szerkesztve ]
-
Jester01
veterán
Van exit do, úgy hívják, hogy break. De az csak a ciklusmagban működik, trap-ból nem. Ha nem akarsz a trap-ban kilépni a scriptből, akkor ott beállíthatsz egy változót amit aztán a ciklus folyton ellenőriz.
MOD: mondjuk a sleep-pel nem tudom milyen interakció van, azt még meg kellene nézni.
[ Szerkesztve ]
Jester
-
lapa
veterán
válasz Jester01 #929 üzenetére
oké, nekem eddig nem volt világos, hogy a trap után neki még van élet, azért nem értettem mi történik. de akkor ha jól értem ctrl +c -nél lefut a trap, meg (hacsak le nem exitelem) minden ami utána van? jól értem ezt?
ilyesmit láttam én is példákban, hogy a loop figyeli a trap által belőtt változót, de nem esett le.
-
gyugyo22
csendes tag
Üdv!
Az alábbi feladatot kaptam de semmit se tudok vele kezdeni
Leírás: Írjon egy olyan shell script-et, amely kilistázza az azonos nevű processzeket (több példányban futó programokat).
A listázás után a felhasználónak lehetősége van az egyező processzek leállítására PID-jük megadásával, amennyiben nem ad meg egyet sem, az összes processz tovább fut.Példa:
$ ps PID TTY TIME CMD
8780 pts/0 00:00:00 bash
8793 pts/0 00:00:20 yes
8796 pts/0 00:00:18 yes
8798 pts/0 00:02:12 gedit
8801 pts/0 00:01:20 firefox
8813 pts/0 00:00:00 ps$ ./kill.sh
PID CMD
8793 yes
8796 yes
kill cmd? pid: 8793$ ps PID TTY TIME CMD
8780 pts/0 00:00:00 bash
8796 pts/0 00:00:28 yes
8798 pts/0 00:02:22 gedit
8801 pts/0 00:01:30 firefox
8813 pts/0 00:00:00 psVan e valami elképzelésetek, arról hogy hogy oldanátok meg?
-
-
válasz Jester01 #935 üzenetére
akkó' most tartsd meg a heti shell szkript oktatásodat
én még sosem próbáltam sorttal ismétléseket keresni, viszont a uniq-nak is meg lehet mondani, hogy hanyadik mezőtől nézze csak az ismétlést.abban igazad van, hogy a uniq előtt nem árt sorbarendezni.
szerk: gnu ps tud magától is sorbarendezni, szóval nem kell sort.
[ Szerkesztve ]
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
-
gyugyo22
csendes tag
a győztes pedig
ps -o pid,comm | uniq -D -f 1
echo "kill cmd? pid: " | read PID
kill -9 $PID -
-
eriktoth
tag
Üdv!
Van egy ilyen kódom:#!/bin/bash
for DIR in `find . -type d`
do
cd $DIR
for FILE in stdout stderr status
do
diff -up stdout-captured stdout-expected > stdout-delta 2>/dev/null
diff -up stderr-captured stderr-expected > stderr-delta 2>/dev/null
diff -up status-captured status-expected > status-delta 2>/dev/null
done
cd $OLDPWD
doneNos a feladata az lenne, hogy bárhol is vannak ezek fájlok a gépen, megtalálja, és a captured és az expected különbségét beirta a deltába. a kód így működőképes, csak az a gond vele, hogy a deltát az összes könyvtárba létrehozza ami a fájlokhoz vezet.
Valami ötlet esetleg, hogy ezt mert csinálja?
Jah és ahol találhatók ezek a fájlok ott kené csak létrehoznia a deltát, sehol máshol
Előre is kösz[ Szerkesztve ]
-
Jester01
veterán
válasz eriktoth #943 üzenetére
A ciklusban nem is használod a FILE változót. A for pedig nem ellenőrzi a fájlok létezését, ráadásul azokra a fájlokra nincs is hivatkozás.
Egyszerűbb lenne a konkrét fájlokat keresni, pl így:find . -name stdout-captured -o -name stderr-captured -o -name status-captured |
while read -r FILE
do
diff -up "$FILE" "${FILE%captured}expected" > "${FILE%captured}delta" 2>/dev/null
doneIgény szerint lehet vizsgálni, hogy az expected is létezzen.
Jester
-
cAby
tag
Sziasztok!
Kis segítségre lenne szükségem.A következő értéket szeretném lementeni másodpercenként/ütementként:
iostat -m | grep sde , úgy, hogy egy dátumot (date +"%r") minden sor elejére még beszúrjon.Ezt megcsináltam így:
#!/bin/bash
Timer=0
ENDTIMER=50000
SAVEPLACE=/tmp/io_report.txt
while [ "$Timer" -ne "$ENDTIMER" ]
do
sleep 1
Timer=`expr $Timer + 1`
echo `date +"%r"` `iostat -m | grep 'sde'` >> "$SAVEPLACE"
echo "$Timer meres futott le"
done
exit 0Ezt le is menti, csak az a problémám, hogy hibás eredményt ad alapból az iostat -m | grep sde... mert a MB_read/s és wrtn/s szinte azonos értéken (3 és 0.5) áll végig..
Ha parancssorba beírtam így, hogy: nohup iostat -m 1 | grep sde > /tmp/adat.txt , akkor ez szépen lementi percenként az aktuális _helyes_ adatot.
De nem tudok rájönni, hogy ebben a verzióban, hogyan lehetne beszúrni a dátumot minden sor elejére...
Nem muszáj shell script-ben, ha lehet így parancssorosan is valahogy.Ha valaki tudja, akkor legyen olyan jó és segítsen egy kicsit.
Köszönöm szépen!
üdv,
Csabi -
-
-
cAby
tag
dstat nincs fenn, meg gondolom ott is csak hozzá kellene bűvészkedni a dátumot.
Áhh, ez tökéletesen megy amit írtál. Nagyon szépen köszönöm, sokat segítettél!
Ez alapján átírtam ezt a változatomat:
#!/bin/bash
Timer=0
ENDTIMER=50000
SAVEPLACECPU=/tmp/cpu_report.txt
while [ "$Timer" -ne "$ENDTIMER" ]
do
sleep 1
Timer=`expr $Timer + 1`
sar -u 1 | grep '^[0-9]' | grep 'all' >> "$SAVEPLACECPU"
echo "$Timer meres futott le"
done
exit 0erre: top -b -d 1| while read p; do echo $(date +"%r") $p; done | grep Cpu
Elindítottam mind a kettőt, de azonos időpontban az értékek között kis eltérések vannak..
Ez lehet attól nem, hogy mind a kettő azt írja, hogy pl. 01.38.59 AM,de egyik 01:38:59.001, másik meg 01:38:59.999-ben rögzít?szerk.: Még valami érdekelne, ezt a 2 parancsot, hogyan lehetne elindítani pontosan egy időben? (Lehet, hogy rájövök nemsokára, de inkább megkérdezem.)
nohup iostat -m 1| while read p; do echo $(date) $p; done | grep sde > /tmp/io.txt &
nohup top -b -d 1| while read p; do echo $(date +"%r") $p; done | grep Cpu > /tmp/cpu.txt &[ Szerkesztve ]
-
ahhoz több mag kell, hogy teljesen valódi multitaszk legyen, de a statisztikák begyűjtését valószínűleg akkor sem tudja megcsinálni azonos időpontban.
azt a while ciklust kivehetnéd, az iostat működik úgy is, hogy iostat 1 50000
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
Új hozzászólás Aktív témák
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! LEGOLCSÓBB! Automatikus 0-24
- Adobe Creative Cloud - 2024. 04. 05 - 2025. 04. 05-ig
- Bitdefender Total Security 3év/3eszköz! - "Tökéletes védelem most kedvező áron..."
- Steam, Windows, Origin kulcsok, előfizetések közvetlenül a kiadótól, a LEGJOBB ÁRON!
- Játékkulcsok olcsón: Steam, Uplay, GoG, Origin, Xbox, PS stb.