lehet, hogy a macnál kettőspontot használ elválasztásra, nem kötőjelet.
a router felületén kötőjellel van (legalábbis a gyári firmware webjén), a linux kernelben meg nem.
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
lehet, hogy a macnál kettőspontot használ elválasztásra, nem kötőjelet.
a router felületén kötőjellel van (legalábbis a gyári firmware webjén), a linux kernelben meg nem.
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
Gondolom azért volt a sed a #1294-ben.
Jester
Szia!
Jó a kötőjel... nem az a baj én vagyok a béna...
Steve
Sziasztok!
Egy kis segítséggel sikerült megoldani a MAC cím kizárást. Köszönöm megint, ez a része most tökéletes lett.
Lenne egy újabb kérdésem.
A MAC címekre csak akkor tudok hivatkozni, ha az adott eszköz csatlakozik.
De nekem szükségem lenne arra, hogy olyankor is meg tudjam adni változónak a MAC címet, ha éppen nincs jelen az eszköz. Erre van valami ötletetek?
Például egy mappába gyűlnek a statisztikai adatok xx-xx-xx-xx-xx.xx.rrd néven. Esetleg ebből kiszedni a MAC címet és arra hivatkozni változóként?
Vagy amikor az alábbi parancs lefut, akkor valahova gyűjtse a MAC címeket és ott hivatkozni rájuk.
MAC_=$(echo $MAC | sed 's/:/-/g')
Valami ötlet esetleg?
Steve
rendszeres időközönként, például cronnal, kiszeded a mac címeket az arp cache-ből, hozzámásolod egy fájlból a korábban látottakat, sorbarendezed, uniq-kal kiszeded a duplikációt és leteszed ugyanebbe a fájlba.
majd ez alapján gyártod a grafikont.
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
Szia!
A MAC címek fájlba gyűjtése rendben így:
echo $MAC >> /opt/www_traff/prevmac.txt
Majd ezzel a paranccsal rendbe rakom és egy másik fájlba másolom.
cat /opt/www_traff/prevmac.txt | sort | uniq >/opt/www_traff/mac.txt
Majd a script lefutásának a végén ezzel visszamásolom az eredeti fájlba.
cat /opt/www_traff/mac.txt > /opt/www_traff/prevmac.txt
Ez így jó vagy van valami szebb megoldás is?
[ Szerkesztve ]
Steve
ezzel az a gond, hogy a korábbi mac-eket törlöd vele.
tehát egyszerre kellene felhasználni a prevmac fájl tartalmát ÉS az aktuális mac-eket és mindkettőt kiírni a fájlba.
felesleges fork még van benne
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
Én úgy veszem észre, hogy nem törli, de majd pár óra múlva kiderül, mikor lekapcsolódnak az eszközök.
Mivel a prevmac fájlba visszaírom a Mac címeket és az echo hozzáfűzi az aktuálist.
A felesleges fork-ot meg nem hiszem, hogy kitalálom...
Én szívesen használnám azt, amit valaki más megcsinál, a fene kínlódjon vele 50 fölött ennyit, megtanulni már úgysem fogom, de nem találtam készen ilyet.
Ha tudsz OpenWrt alá mondani hasonlót, ami szinte nulla terhelést okoz a routernek, akkor már törlöm is az egészet és használom azt
Steve
(#1309) SteveBeard válasza SteveBeard (#1308) üzenetére
Esetleg erre gondoltál?
cat /opt/www_traff/prevmac.txt | sort -u
[ Szerkesztve ]
Steve
(#1305) bambano
Csak a jegyzőkönyvnek..
Működik a dolog, van olyan eszköz, (mobiltelefon) ami itthon sincs, de a MAC címe szerepel a listán.
Köszi az útmutatást, anélkül nem ment volna...
Sikerült szétbontani a scriptet, így az adatgyűjtés a grafikon készítéstől teljesen külön vált, így teljesen észrevétlen a működése.
Steve
Sziasztok!
Az új laptopomban egy Western Digital hdd van, ami kb. 2 másodpercenkét parkoltatja a fejecskéjét. Ez gondolom, hogy élettartam szempontjából nem túl jó + a kínai faliórához hasonló kattogó hang is eléggé idegesít. A gépen egy opensuse van, ami jól reagál a "hdparm -B 255 /dev/sda" parancsra (az APM-et átállítja off ra), de nem jegyzi meg, szóval minden indítás után be kell írnom. Próbáltam az init.d/boot.local fájba beírni a fenti sort, hogy fusson le automatikusan, de nem jött be. Az lenne a kérésem, hogy ha vk. tudna, kisegíthetne egy scripttel, ami boot után lefuttatja a fenti parancsot, mert ezt én nem nagyon vágom. Persze az is megoldás, hogy mindig beirkálom, de a feleségem nem igazán rajong az ötletért, ugyanis ő is használja a gépet.
Segítségeteket előre is köszönöm,
Üdv!
Sziasztok!
Az új laptopomban egy Western Digital hdd van, ami kb. 2 másodpercenkét parkoltatja a fejecskéjét. Ez gondolom, hogy élettartam szempontjából nem túl jó + a kínai faliórához hasonló kattogó hang is eléggé idegesít. A gépen egy opensuse van, ami jól reagál a "hdparm -B 255 /dev/sda" parancsra (az APM-et átállítja off ra), de nem jegyzi meg, szóval minden indítás után be kell írnom. Próbáltam az init.d/boot.local fájba beírni a fenti sort, hogy fusson le automatikusan, de nem jött be. Az lenne a kérésem, hogy ha vk. tudna, kisegíthetne egy scripttel, ami boot után lefuttatja a fenti parancsot, mert ezt én nem nagyon vágom. Persze az is megoldás, hogy mindig beirkálom, de a feleségem nem igazán rajong az ötletért, ugyanis ő is használja a gépet.
Segítségeteket előre is köszönöm,
Üdv!
ha valaki ráér egy kis fejtörésre, akkor egy feladat:
a feladat az, hogy adott a diszken egy oracle-tól letöltött sun java telepítő anyag, azt beavatkozásmentesen fel kell telepíteni. hogy melyik könyvtárba, mindegy, a beavatkozásmentes a kérdés lényege.
tehát van egy file: jdk-6u30-linux-x64.bin, azt telepíteni kell.
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
Sziasztok! Nem biztos, hogy jó helyre írok, de hátha mégis. Van egy TP-LINK routerem, amin az OpnWrt van fenn. Megcsináltam egy statisztikát, a vnstattal és szeretném vnstatival megjeleníteni, de valamiért nem adja ki a képet.
#!/bin/bash
vnstati -vs --config /etc/vnstat.conf -o /mnt/vnstat/vnstat-summary.png
vnstati -d --config /etc/vnstat.conf -o /mnt/vnstat/vnstat-daily.png
vnstati -m --config /etc/vnstat.conf -o /mnt/vnstat/vnstat-monthly.png
vnstati -h --config /etc/vnstat.conf -o /mnt/vnstat/vnstat-hourly.png
vnstati -t --config /etc/vnstat.conf -o /mnt/vnstat/vnstat-top10.png
Természetesen putty alól SSH-ban kiadva szépen elkészíti a képeket, de cronban valamiért nem, pedig lefut a script, legalábbis a napló szerint:
Jan 25 12:18:01 OpenWrt cron.info crond[23523]: crond: USER root pid 23669 cmd /mnt/vnstat/makevnstat.sh
Hibaüzenet nincs, de egy debugger jól jönne, de nem találok olyat sehol. Valakinek ötlete?
''Ha az agyunk olyan egyszerű lenne, hogy megérthetnénk, olyan egyszerűek lennénk, hogy nem értenénk.''
openwrtn neked bash van?
a cron nem azt a PATH-ot használja, amit a login shell. teljes elérési út használata javasolt.
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
De az /mnt/... stb... az nem teljes elérés? És ha nem, akkor mit írjak?
''Ha az agyunk olyan egyszerű lenne, hogy megérthetnénk, olyan egyszerűek lennénk, hogy nem értenénk.''
Nem, hanem ssh van rajta, de mivel az ki van kommentelve, így nem releváns, de lehet tévedek.
''Ha az agyunk olyan egyszerű lenne, hogy megérthetnénk, olyan egyszerűek lennénk, hogy nem értenénk.''
a vnstati előtt nem látom a teljes elérési utat.
a #! az nem komment, az egy speciális sor, ami megmondja, hogy a fájlt milyen parancsértelmezővel kell futtatni. és igaza van a kollégának, openwrt-ben alapértelmezetten nincs bash.
de van külön openwrt topic, az aláírásomban látható mondjuk szerintem itt is elfér ez a kérdés, szóval mindegy.
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
Ohhh, van még mit tanulnom a linuxról Mindjárt kipróbálom.
Köszönöm mindkettőtöknek, megy
De mivel van még kérdésem, így megyek a az OpenWrt topicba.
[ Szerkesztve ]
''Ha az agyunk olyan egyszerű lenne, hogy megérthetnénk, olyan egyszerűek lennénk, hogy nem értenénk.''
Sziasztok!
Egy script részeként olyan txt fájlokat szeretnék törölni, amelyeken az utolsó egy hónapban nem történt módosítás.
Ez a parancs megfelelő erre a feladatra?
find /path -name "*.txt" -mtime +31 -exec rm -rf '{}' \;
Steve
Ebbe mi a hiba?
#!/bin/bash
SZAMLALO=0
SZAM=0
while [ $SZAMLALO -lt 100000 ]
do
if [ `$SZAMLALO % 1000 | bc` -eq 0 ]
then
let SZAM=SZAM+1
echo Valami:$SZAM%
fi
let SZAMLALO=SZAMLALO+1
done
exit;
"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán
if [ `$SZAMLALO % 1000 | bc` -eq 0 ]
helyett
if [ `echo $SZAMLALO % 1000 | bc` -eq 0 ]
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
hi megint en lamaskodok
tudok olyat csinalni hogy a kepek mappaba a fajlok neveit random generalt szamokkal nevezze at de fajlformatum maradjon meg.
pl : 87810121212.jpg
323123233.png ----stb legalabb 8 szamu legyen.
van ilyen sh ?
ilyesmi irányban gondolkodnék:
echo $(($RANDOM*$RANDOM*$RANDOM))
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
betolod listat egy tombbe -> array=($(ls *jpg))
forral minden elemen vegigmesz, benne generalsz filenevet $RANDOM-mal, megnezed hogy van e mar ilyen, ha nincs akkor kicsereled a nevet mondjuk seddel.
100000-ig egyébként a bash is kiválóan tud osztani, nem kell hozzá bc.
Jester
nah vegulis meglett :
for i in *.jpg; do mv -i "$i" ${RANDOM}${RANDOM}.jpg; done
szereted random letörölgetni a képeidet?
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
nem, azert van mert mindegyik mas forrasbol van nem sajat. Az elnevezesek meg ossze-vissza vannak hol van benne szokoz, specialis karakter , vagy az oldal cime hol nincs.
bocs, a -i nem ütötte meg a szemem.
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
Sziasztok!
Most ismerkedeka bash criptekkel, egylőre élvezem hogy a beírt sorokat végre hajtaj
Menet közben akadt egy kép problémám.
Szerinetnék a criptben egy dárum lekérdezést kiírtani, az aktuális dátummal, másodpercre pontosan, azért kell hogy lemérem mit milyen sebességgel hajt vége a srcipt.
Most ez szerepel mindenhol a criptben ahol időt mérek:
echo tomorites indul $(date +%Y-%m-%d-%H:%M:%S)
echo tomorites vege $(date +%Y-%m-%d-%H:%M:%S)
Szeretnék az aktuális dátum helyett egy változót készíteni, hogy ne azt a hosszú dátum formátumot kellejen mindenhová beraknom.
datum=$(date +%Y-%m-%d-%H:%M:%S)
ezzel az a baj, hogy a változó létrehozásakor lekérdezi a dátumot, és onnantól fogva már statikus tartalomként kezeli azt.
Hogy tudnám azt megadni neki változóval, hogy minden egyes sorban ahol ki szeretnémn íratni az
echo $datum változót, oda az aktuális, frissen lekérdezett dátum kerüljön?
A másik problémám, létre hozok változókat a script során, végül megnyitom az lftp programot, itt sajnos a sriptben létrehozott változókra nem tudok hivatkozni, legalább is nem tudom hogy kell.
Most egy külső scriptbe írtam bele mindent amit az ftp-n akarok csinálni, a script során így nyitom meg.
ltfp < utasitatok
jobb szeretnék mindent egy scriptbe bele tenni, ha valakinek van egy kis ideje hogy segítsen, illetve képbe tegyen ezzel azzal, azt nagyon megköszönném.
a dátum formátumot tedd bele egy változóba, annyival rövidebb lesz leírni.
tehát ne a $(date ...) legyen benne, hanem
a format='+%Y-%m-%d-%H:%M:%S'
és $(date $format)-ot írj.
szerintem az jó, amit az lftp-vel csinálsz, ha nem akarod kirakni fájlba, akkor írd közvetlenül a programba.
(lftp
scriptet
létrehozó
parancsok
) | lftp
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
1. csinálhatsz egy függvényt a kiirásra.
2. az úgynevezett "here document" kell neked
Példa:
#! /bin/bash
function log
{
echo "$1 $(date +%Y-%m-%d\ %H:%M:%S)"
}
log start
msg=hello
cat <<-EOF
$msg
EOF
sleep 5
log end
(A cat helyére kerülne neked az lftp)
Jester
Szia!
Köszi, a dátum kiírással így már dolgogulok, jó lett!
Az lftp viszont nem hajlandó lefutni jól Biztosan jó így ahogy van most a script?
Valahogy nem tudom megnézni mi fogok a scriptben futás közben? Látni szeretném hol van a hiba.
A prancsok amiket kiadok neki boztosan jók, mert terminálban lépésről lépésre kiadva, elvégzi a műveletet.
[1334]
A te megoldásod első nekifutásra elég értelmezhetetlen számomra, de majd holnap frissen neki ülök, hát ha össze hozok valamit.
Ez gyakran előfordul a megoldásaimmal
Jester
Sikrült megírnom a scriptet, maradt az a felállás hogy az lftp megkapja egy fájból a utasításokat.
lftp < utasitasok
az utasitasok fájt pedig minden egyes feltöltés alkalmával újra generelja a script, végtlenül egyszerűen
echo utasitas1 > utastitasok
echo utasitas2 >> utasitasok
echo $valtozotis >> utasitasok
és így szépen sorban haladok, így a változókat is tudom érdelmezni a scriptben, amit bele írok az "usatsitasok" fájlba.
Így a fájl csak statikus szöveget tartalmaz csupán, változók nélkül, viszont minden alkalommal újra lesz írva, és így a kellő feladatokat ellátja.
Nagyen egszerű, biztos meg lehetne oldani szebben is, de nekem így jó
a grepnek nincs olyan kapcsolója, ami visszajelzi, hogy a file tartalmazza-e a szót, vagy nem? 1/0 alapon?
vagy hogy lehetne még kideríteni?
"Élj úgy, hogy ha majd lepereg előtted életed filmje, érdemes legyen végignézni!"
pontosan mit is akarsz?
egyébként van.
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
Sziasztok,
Probléma leírása: Kellene egy script ami kiírja nekem az aktuális dátum, minusz 7 nap dátumát.
Pl: ma van 2013-02-22 (-7 nap)
az 2013-01-15 legyen a kiírt érték!
Köszi.
date -d
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
Végül ez vált be.
date --date='-1 week'
van-e valakinek kéznél megoldása a következőre?
van két dvi fájlom, a5-ös méretben, 1-1 oldal. Ezt szeretném úgy kinyomtatni, hogy az egyik egy A4-es oldalon normálisan legyen, a másik ugyanezen oldal másik felén, fejjel lefelé. Tehát hogyha nézem a lapot, az egyik fájl ott van a tetejétől lefelé, normál állásban, a másik a legaljától felfelé fejjel lefelé.
a postscripttel egyszerűbb, dvi-ből lehet ps-t csinálni...
(ez egy takarékos módú nyomtatás lenne fél oldalas számla első és másodpéldányának nyomtatására úgy, hogy középen ketté lehessen vágni.)
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
Helló!
A "$?" mit jelent?
Köszi előre is!
"Élj úgy, hogy ha majd lepereg előtted életed filmje, érdemes legyen végignézni!"
exit status. minden parancsnak amit lefuttatsz, van egy exit satusa, ha 0 az azt jelenti hogy sikeresen lefutott, tehat hiba nelkul. ha 1 vagy nagyobb, akkor volt valami hiba.
echo $?
Köszi!
"Élj úgy, hogy ha majd lepereg előtted életed filmje, érdemes legyen végignézni!"
https://www.coreinfinity.tech
valami ilyesmi (nem hasznaltam soha sqlite-ot ):
BASH_VAR="bla"
sqlite "SELECT ${BASH_VAR} FROM table"
DRM is theft
Köszi, ráleltem a megoldásra:
sqlite3 test.db "select * from Testtable where Data like '%$BASH_VAR%';"
https://www.coreinfinity.tech
Ez ugyanaz Annyi, hogy ha ilyen hullamos zarojelek koze teszed a valtozonevet, akkor egyertelmu, hogy hol van vege, bar ennek igazan akkor van jelentosege, ha a valtozonev utan whitespace nelkul jon valami betu.
DRM is theft