- Veszélyben az adataid? Gond van a WD népszerű HDD-ivel
- HiFi műszaki szemmel - sztereó hangrendszerek
- Vezeték nélküli fülhallgatók
- Milyen videókártyát?
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- AMD GPU-k jövője - amit tudni vélünk
- John Carmack csalódott a DGX Sparkban
- Apple asztali gépek
- Frissítettél? Lehet, hogy ezért tűnt el egy funkció a VGA-dról!
- Philips LCD és LED TV-k
Új hozzászólás Aktív témák
- 
			
			  tjsz senior tag válasz  f_sanyee
							
							
								#2699
							
							üzenetére f_sanyee
							
							
								#2699
							
							üzenetéreroot@Router:/tmp/home/root# for d in $(awk '{ print $1}' /var/lib/misc/dnsmasq.leases); do echo -n "$d: "; date "+%Y-%m-%d %H:%M" -d @${d}; done603566: 1970-01-08 00:39594732: 1970-01-07 22:12339516: 1970-01-04 23:18500044: 1970-01-06 19:54541145: 1970-01-07 07:19604800: 1970-01-08 01:00235115: 1970-01-03 18:18386945: 1970-01-05 12:29604157: 1970-01-08 00:49589094: 1970-01-07 20:38603861: 1970-01-08 00:44596755: 1970-01-07 22:45569503: 1970-01-07 15:11555154: 1970-01-07 11:12529923: 1970-01-07 04:1281783: 1970-01-01 23:43101094: 1970-01-02 05:0489397: 1970-01-02 01:49106480: 1970-01-02 06:34524019: 1970-01-07 02:33510826: 1970-01-06 22:53429562: 1970-01-06 00:19517980: 1970-01-07 00:53518487: 1970-01-07 01:01root@Router:/tmp/home/root# dnsmasq -vDnsmasq version 2.80-7d04e17 Copyright (c) 2000-2018 Simon KelleyCompile time options: IPv6 GNU-getopt no-RTC no-DBus no-UBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP no-conntrack ipset Tomato-helper auth DNSSEC no-ID loop-detect inotify no-dumpfileThis software comes with ABSOLUTELY NO WARRANTY.Dnsmasq is free software, and you are welcome to redistribute itunder the terms of the GNU General Public License, version 2 or 3.root@Router:/tmp/home/root#FreshTomato firmware. 
- 
			
			  f_sanyee senior tag nem tudom milyen dnsmasq verzióban lehet az elsó oszlop a lease time, de az enyémben itt a lease vége van, epoch formában, pl: router:~# for d in $(awk '{ print $1}' /var/lib/misc/dnsmasq.leases); do echo -n "$d: "; date "+%Y-%m-%d %H:%M" -d @${d}; done
 1640798190: 2021-12-29 18:16
 1640766485: 2021-12-29 09:28
 1640759983: 2021-12-29 07:39
 1640788042: 2021-12-29 15:27
 1640799888: 2021-12-29 18:44
 1640794808: 2021-12-29 17:20
 1640798330: 2021-12-29 18:18
 1640791708: 2021-12-29 16:28
 1640790907: 2021-12-29 16:15
 router:~# date
 Wed Dec 29 07:18:07 CET 2021a DNS cache-nek ehhez semmi köze, ezek DHCP leasek. 
 napi reportnak ebből nem sok értelme van szerintem, inkább nézném a dnsmasq logját, hogy mikor osztott ki valaminek címet..
- 
			
			  tjsz senior tag válasz  f_sanyee
							
							
								#2694
							
							üzenetére f_sanyee
							
							
								#2694
							
							üzenetéreA dnsmasq.leases file 1. oszlopában a "dhcp lease time"-ból hátralévő idő van tárolva másodpercben. Tehát ha pl. 1 hétre kap minden eszköz IP címet, akkor az IP cím kérés 1. másodpercében 604800 az érték, majd ez szépen csökken 1-esével másodpercenként egészen addig, amíg le nem nullázodik ill. ha nem kér újra IP címet az adott eszköz. A probléma ott volt/van, hogy bár a dns cache ki van kapcsolva, a dnsmasq.leases file csak akkor frissül, ha egy újabb eszköz kér IP címet, ekkor az 1. oszlopban lévő értékek korrigálásra kerülnek. Vagyis: nem a systime()-al volt a gond, hanem ezzel a cache-eléssel. Közben egy újabb kérdés fogalmazódott meg bennem: mivel ugyanazon script többféle esemény miatt is elindításra kerülhet (pl. WAN oldal up vagy éppen down, napi riport készítés, stb.), ezért hogyan lenne érdemes azt megoldani, hogy egyidejűleg csak 1 példányban induljon el? Valami ideiglenes file létrehozás-törléssel? (és annak ellenőrzésével) 
- 
			
			  tjsz senior tag Sziasztok! Nem tudom, hogy jó helyen járok-e, de segítségre lenne szükségem: miért van az, hogy az alábbi "programkód" mindig más-más DHCP kérési időpontot ad ki, pedig közben a listabeli gépek még bekapcsolva sem voltak. Érdekes módon az eltérés mindig annyi, ahány másodperccel később futtatam. root@Router:/tmp/home/root# cat /var/lib/misc/dnsmasq.leases|awk '{print $3, $2, $4, $1}'|sort -t . -k 1,1n -k 2,2n -k 3,3n -k 4,4n|awk -v dhcplt=604800 '{print $4,systime()+$4-dhcplt, $2, $1, $3}'|awk '{ if($1 == "0" ) print "Unknown - infinite "," ",$3," ",sprintf("%-18s",$4),$5; else print strftime("%c", $2)," ",$3," ",sprintf("%-18s",$4),$5; }' >> "$file_email_std"Sun Dec 19 08:43:35 2021 50:e5:94:12:34:56 192.168.1.1 Home_pcSun Dec 19 08:51:30 2021 bc:5f:4f:12:34:56 192.168.1.2 Home_pc_2root@Router:/tmp/home/root# cat /var/lib/misc/dnsmasq.leases|awk '{print $3, $2, $4, $1}'|sort -t . -k 1,1n -k 2,2n -k 3,3n -k 4,4n|awk -v dhcplt=604800 '{print $4,systime()+$4-dhcplt, $2, $1, $3}'|awk '{ if($1 == "0" ) print "Unknown - infinite "," ",$3," ",sprintf("%-18s",$4),$5; else print strftime("%c", $2)," ",$3," ",sprintf("%-18s",$4),$5; }'Sun Dec 19 08:43:45 2021 50:e5:94:12:34:56 192.168.1.1 Home_pcSun Dec 19 08:51:40 2021 bc:5f:4f:12:34:56 192.168.1.2 Home_pc_2root@Router:/tmp/home/root# cat /var/lib/misc/dnsmasq.leases|awk '{print $3, $2, $4, $1}'|sort -t . -k 1,1n -k 2,2n -k 3,3n -k 4,4n|awk -v dhcplt=604800 '{print $4,systime()+$4-dhcplt, $2, $1, $3}'|awk '{ if($1 == "0" ) print "Unknown - infinite "," ",$3," ",sprintf("%-18s",$4),$5; else print strftime("%c", $2)," ",$3," ",sprintf("%-18s",$4),$5; }'Sun Dec 19 08:44:17 2021 50:e5:94:12:34:56 192.168.1.1 Home_pcSun Dec 19 08:52:12 2021 bc:5f:4f:12:34:56 192.168.1.2 Home_pc_2root@Router:/tmp/home/root# exitTehát pl. az egyik futtatáskor a Home_pc 8:43:35-kor, 10 másodperccel későbbi futtatáskor mintha 8:43:45-kor kért volna IP címet. DNS cache beállítva 0-ra, tehát nem cache-el. 
- 
			
			
- 
			
			Hogyan lehetne megszámolni, hogy adott számsorozat elemei között (ebben a sorrendben nézve) hányszor történt emelkedés/csökkenés? Példa: 2 
 3
 4
 6
 2
 1
 7
 3A fenti példában 4 alkalommal emelkedett és 3 alkalommal csökkent az érték. Nyilván összehasonlítom az aktuálisat az előzővel, ez rendben van, csak hogyan kezelem le ezt a legelső elemnél? Counterrel a for cikluson belül? 
- 
			
			  _kovi_ aktív tag Sziasztok! 
 Lenne egy olyan gondom, hogy fájlokat kell generálnom és a fájlnév utolsó 4 karakterében egy számot teszek ami növelődik, pl.: 0001, 0002, 0003, 0004 .... stb
 A Bashnek van egy gondja ezzel a számmal, mert ahogy olvastam oktálisnak veszi.
 Konkrétan 0008-ig szépen megcsinálja a fájlokat és aztán a debugban:0008: túl nagy érték a számrendszerhez (hibás token: „0008”Így csináltam a kódban: SZAMLALO=$((SZAMLALO+1))
 SZAMLALO=$(printf "%04d\n" $((10#$SZAMLALO)))Úgy találtam googliban, hogy a 10# -al meg lehet neki mondani, hogy 10-es számrendszerben legyen, de valahogy nem eszi meg.. Ez működik, de beleteszi a fájlnévbe a # -ot: SZAM=$(printf "%04d\n" $SZAMLALO)SZAMLALO=10#$SZAM
 Amit elvileg meg tudnék cut- olni de nem túl elegáns. Köszi!! 
- 
			
			  coco2 őstag válasz  Jester01
							
							
								#2680
							
							üzenetére Jester01
							
							
								#2680
							
							üzenetéreMegvan, köszönöm   Nyersanyag tippet had kérjek script gyártáshoz. Bash scriptben listázni szeretném a helyi könyvtárat ( ./ ), és ha találok file-t adott kiterjesztéssel (pld ".txt" -> létezik "file.txt"), első (vagy akár utolsó) olyan létező file nevét szeretném változóba rakni (FILENAME="file.txt"). A határozatlanság oka, hogy a mappában garantáltan csak egy olyan file lesz, de ha mégis több lenne, azt valahogyan detektálni kell, és leállítanom a scriptet, vagy hibatűrés jelleggel csak az egyiket dolgozni fel a sok közül. Bármelyik jó. Ha jól sejtem, valami áradat szerkesztővel kell majd játszadoznom. Jól jönne rá pár példa, hogyan, és hogy az áradatszerkesztő scriptjéből hogyan mozgathatok adatot kívülre, ha egyáltalán bárhogyan. 
- 
			
			  coco2 őstag Sziasztok! Linux / bash script. Kicsit (nagyon) kijöttem a gyakorlatból. Van egy környezeti változó, T_STR. Benne van mondjuk ez: "custom str". Környezetből használom shell scriptben (/bin/bash enyem_script.sh) valahogy így: #!/bin/bash 
 echo "${T_STR}"
 echo "$T_STR"
 echo ${T_STR}
 echo $T_STRValaki le tudja írni nekem legalább dióhéjban, hogy mi a különbség ezek között az echo-k között? Ami különbség van, az mikor számít? A ""-ről talán az volt, hogy ha space van a stringben, és nem raktam macskakörmök közé a változó értékét olyankor, amikor egy shell parancsba beillesztettem, akkor az két külön paraméternek minősülhet, és "szét törhet" miatta a parancs bemenetem. De erre visszaigazolást várnék tényleg ez van-e vele, vagy rosszl emlékszem? A { }-ről valami változó érték értelmezés volt talán, de már nem emlékszem. 
- 
			
			  Headless őstag válasz  Fecogame
							
							
								#2675
							
							üzenetére Fecogame
							
							
								#2675
							
							üzenetéreha nagyon érdekel a teljesítmény shellt miért nem felejted el? pl megcsinálhatod az egészet awk-val. Még lehet egy python is gyorsabb. vagy ha tényleg számít minden us akkor c++. annó csináltam egy tesztet: 
 1-1000-ig vizsgáltam a számokat, hogy prím-e és a tisztán awk megoldás töredéke volt, mint a sima shell megoldásnak.
- 
			
			válasz  Fecogame
							
							
								#2675
							
							üzenetére Fecogame
							
							
								#2675
							
							üzenetéreksh-ban szeretnék tört számokkal dolgozni Igen, ezt hívják statisztikusnak.  Egyébként meg pont úgy működik, mint C-ben: ha sima egész számokat adsz meg, akkor integer aritmetikát használ, ha lát benne tizedespont (vagy vesszőt, éljen a lokalizáció  ), akkor meg floating pointot: ), akkor meg floating pointot:db@jano:~$ ksh -c 'echo $((24832/23413.0))'
 1.06060735488830991(Ja, és nincs floating point minden ksh-ban, verziótól függ) 
- 
			
			ksh-ban szeretnék tört számokkal dolgozni, lehetőleg külső parancs nélkül. Az oka, hogy több tízezerszer kell lefuttatnom, és számít, mennyi idő alatt végez. awk-val már megcsináltam, csak lassú. A furcsa az, hogy itt kiírja rendesen az eredményt tört számként: pi@raspberrypi:~ $ ksh -c 'echo $((250/0.8))'
 312.5Itt viszont nem: pi@raspberrypi:~ $ ksh -c 'echo $((24832/23413))'1És így sem: pi@raspberrypi:~ $ ksh -c 'echo $((23413/24832))'0Miért? És hogyan lehetne rávenni, hogy ne kerekítsen?  
- 
			
			  Headless őstag Szia ehhez hasonló megoldás lehet dir_list=$(find . -mindepth 1 -maxdepth 1 -type d -name "*" -print)dir_count=$(echo "$dir_list" |wc -l)echo "$dir_list" |while ((i++)); read pathdo.....doneÉn csak másoltam a te funkcióidat azt nem vizsgáltam, hogy megfelelő-e, vagy, hogy van-e egyszerűbb, mellesleg szerintem van kicsit fura a while ciklusod, nem is tudom hogy ez szintaktikailag helyes-e. 
- 
			
			  Lenry félisten egy bash scriptem egy while ciklussal szalad végig egy mappán, és végzi el a feladatát. 
 lehet valahogy előre tudni, hogy hány elemen fog dolgozni?
 ki szeretném íratni, hogy pl a 130-ból a 15. mappán dolgozik épp'. utóbbi nyilván nem gond. előbbire viszont nincs ötletem
- 
			
			  vargalex félisten válasz  Fecogame
							
							
								#2663
							
							üzenetére Fecogame
							
							
								#2663
							
							üzenetéreHa tudod a tizedes jegyek számát, akkor: echo | awk '{printf "%.13f", (100-0.11)*0.000025442/100}'vagy a awk BEGIN-ben echo nélkül: awk 'BEGIN {printf "%.13f", (100-0.11)*0.000025442/100}'Természetesen, ha csak az általad írt kerekített érték kell, akkor a formátum a "%.11f".
 Nem értem, hogy miért használod a beágyazott AWK-t...
 Egyébként az AWK programot sima aposztrófok közé szokás tenni, így nincs kavarodás a printf formátum leírójával.
- 
			
			Van egy ilyen awk parancsom: awk "BEGIN {print (($(awk "BEGIN {print (100 - 0.11)}") * 0.000025442)/100)}"A kimenet pedig így néz ki: 2.5414e-05
 Na most én ezt "normálisan" kiírva szeretném megkapni, nem pedig tudományos formátumban. Találtam ezt a megoldást, de beillesztve (print cserélve printf-re) nem működik, errort dob:awk "BEGIN {printf "%.2f", (($(awk "BEGIN {printf "%.2f", (100 - 0.11)}") * 0.000025442)/100)}"Error: awk: line 1: syntax error at or near %Hogyan kaphatnám meg az eredményt, ami 0.00002541401?  
- 
			
			  Hege1234 addikt segítséggel persze de meglett végül a megoldás curl -s "http://kodi:kodi@192.168.1.10:8080/jsonrpc?Base" -H 'Content-Type: application/json' --data '[{"jsonrpc":"2.0","method":"Player.GetProperties","params":[1,["time"]],"id":17},{"jsonrpc":"2.0","method":"Player.GetItem","params":[1,["file"]],"id":18}]' | jq --raw-output '.[0].result + .[1].result | .item.file, ( .time | .hours * 3600 + .minutes * 60 + .seconds | strftime("%H%M%S"))' > info.txt
- 
			
			  Hege1234 addikt válasz  Jester01
							
							
								#2660
							
							üzenetére Jester01
							
							
								#2660
							
							üzenetéresajnos nem sikerült rájönnöm ezt hol kellene használnom, hogy beleírja az info.txt -be 
 a felugró ablakba a beírt számok 1-9 ig mindig kaptak nullát
 a 014325, 020305 viszont nem sikerült beírnom
 olyan mintha, mivel 10 nél nagyobb így a szám levenné róla a nullát vagy valamilyen műveletet is csinálna közbe
- 
			
			  Headless őstag válasz  Headless
							
							
								#2657
							
							üzenetére Headless
							
							
								#2657
							
							üzenetéremegoldottam, mivel a fájlokban van egy másik separator, azt feltudtam hasnálni, nyilván a zárt forráskódű fejlesztők is azt használják szeparátornak... 
 Röviden: grep kikeresem a byteoffseteket a separatorokhoz, majd végig megyek rajtuk while ciklusban, kiszámolom a megfelelő kezdő/végoffset értékeket és azt dd-vel szépen átmásálom. A separatort átírom, hogy ne legyen kereshető, nehogy megtalálja a zárt forráskódú szoftver fejlesztő, vagy bárki más aki rákeresne Az elején van 4 byte felesleg, valamint a separator 8 byte azt hozzáadom az előző byteoffsethez previousByteOffset=4imageCount=0grep -oba ggggggg "$imageFile" |while IFS=: read byteOffset rest;dodd if="$imageFile" of="$imageFile-$imageCount.jpg" bs=$(($byteOffset-$previousByteOffset)) count=1 skip=$previousByteOffset iflag=skip_bytespreviousByteOffset=$(($byteOffset+8))imageCount=$(($imageCount+1))done
- 
			
			  Hege1234 addikt amikor így szerepelnek a sorok a .txt fájban 
 jq, awk vagy más hasonló megoldással, hogyan lehetne
 a számokat úgy átalakítani, hogy a 2. sorba legyenek és a 10 alatti számok elé
 mindig kerüljön egy 0?curl -s "http://kodi:kodi@192.168.1.10:8080/jsonrpc?Base" -H 'Content-Type: application/json' --data '[{"jsonrpc":"2.0","method":"Player.GetProperties","params":[1,["time"]],"id":17},{"jsonrpc":"2.0","method":"Player.GetItem","params":[1,["file"]],"id":18}]' | jq --raw-output '.[].result.item.file, .[].result.time.hours, .[].result.time.minutes, .[].result.time.seconds | select(. != null)' > "c:\kodi\info.txt"eredeti: plugin://plugin.video.youtube/play/?video_id=rhMTZB2WJWA235elképzelt: (235) plugin://plugin.video.youtube/play/?video_id=rhMTZB2WJWA020305elképzelt 2.: (14325) plugin://plugin.video.youtube/play/?video_id=rhMTZB2WJWA014325jq és awk kombinációjával jutottam el idáig, hogy 
 ez lett belőle de nem sikerül rájönnöm, hogyan lehetne úgy megoldani ahogy elképzeltem| jq --raw-output '.[].result.item.file, .[].result.time.hours, .[].result.time.minutes, .[].result.time.seconds | select(. != null)' | awk '{key=$0; getline; print key "" $0;}'plugin://plugin.video.youtube/play/?video_id=rhMTZB2WJWA235| jq --raw-output '.[].result.item.file, .[].result.time.hours, .[].result.time.minutes, .[].result.time.seconds | select(. != null)' | awk 'NR > 1 { printf("") } {printf "%s",$0}'plugin://plugin.video.youtube/play/?video_id=rhMTZB2WJWA235
- 
			
			  Headless őstag sziasztok! egy megoldást keresek egy bináris fájl szétválasztására egy bizonyos hex karakter sorozat elválasztásával több részre osztani, konkrétan egy cubemap kép sorozat ami jxr (képeket, posx,posy,posz,negx,negy,negz) fájlokat tartalmaz. ezeket szeretném szétválasztani. az elválasztó lehetne a wmphoto magic numbere \x4949BC. minden wm photo kép ezzel kezdődik. mivel bináris fájl sed meg sorokat vizsgál az nem feltétlen megfelelő, egyáltalán van-e értelme bashal szenvedni, vagy ez már inkább egyszerűbb/gyorsabb egy rendes (nem script) nyelvel? 
- 
			
			  Hege1234 addikt válasz  Jester01
							
							
								#2655
							
							üzenetére Jester01
							
							
								#2655
							
							üzenetéreköszönöm szépen!   filenev=$(head -1 save.txt)idopont=$(head -2 save.txt | tail -1)curl -s "http://kodi:kodi@192.168.1.10:8080/jsonrpc?Base" -H 'Content-Type: application/json' --data '{"jsonrpc":"2.0","method":"Player.Open","params":{"item":{"file":"'"${filenev}"'"},"options":{"resume":'"${idopont}"'}}}'
- 
			
			  Jester01 veterán válasz  Hege1234
							
							
								#2653
							
							üzenetére Hege1234
							
							
								#2653
							
							üzenetéreSzerencse, hogy stringeket tetszőlegesen össze lehet fűzni. echo 'foo${bar}'"${bar}"'baz'
 Az elsőt nem bontja ki a másodikat igen.Tehát a paraméter előtt szépen teszel egy idézőjelet majd bezárod az aposztrófot. Majd idézőjelbe beírod a változódat, majd visszanyitod az aposztrófot, beteszed a záró idézőjelet és minden mehet tovább. Ha azt a 2 sort már betetted változókba mondjuk $url és $pos akkor curl -s "http://kodi:kodi@192.168.1.10:8080/jsonrpc?Base" -H 'Content-Type: application/json' --data '{"jsonrpc":"2.0","method":"Player.Open","params":{"item":{"file":"'"${url}"'"},"options":{"resume":'"${pos}"'}}}'
- 
			
			  Hege1234 addikt Sziasztok! programozás topikból küldtek ide hozzátok bash-ba szeretném eljuttatni a .txt-be lévő sorokat a file és a resume rész után save.sh curl -s "http://kodi:kodi@192.168.1.10:8080/jsonrpc?Base" -H 'Content-Type: application/json' --data '[{"jsonrpc":"2.0","method":"Player.GetProperties","params":[1,["percentage"]],"id":17},{"jsonrpc":"2.0","method":"Player.GetItem","params":[1,["file"]],"id":18}]' | jq '.[].result.item.file, .[].result.percentage | select(. != null)' > save.txt
 ez létrehozza a save.txt-tsmb://192.168.1.10/@.mkv52.96696472167969a load.sh betölti a videót az adott pozicióra ugorva load.sh curl -s "http://kodi:kodi@192.168.1.10:8080/jsonrpc?Base" -H 'Content-Type: application/json' --data '{"jsonrpc":"2.0","method":"Player.Open","params":{"item":{"file":"smb://192.168.1.10/@.mkv"},"options":{"resume":52.96696472167969}}}'ebbe kellene valahogy a "file":és a"resume":után beilleszteni a txt-be lévő sorokatbambano: itt az a gond, hogy ha a --data aposztrófok között van (ezt én se figyeltem, hogy külön paraméter), akkor a ${változó} behelyettesítést a shell nem csinálja meg. ezért a --data-t idézőjelek közé kellene tenni, viszont akkor belül a json idézőjelei be fognak kavarni, azokat escape-lni kell. 
 valószínűleg ez már offtopic itt, van rá szaktopic.köszi, előre is a segítséget! 
- 
			
			Hogyan tudom egy stringről megállapítani, hogy tartalmaz-e a ponton és a 0-án kívül mást? Konkrétabban van egy számom ( 0.000000formátumban ), ami aztán lehet0.534545,6.3434vagy8is. Azt szeretném megvizsgálni, hogy az értéke 0 vagy annál nagyobb.
 
 Talán a legegyszerűbb megoldás a pontra és 0-ra szűrni, és ha mást is tartalmaz, akkor jelez. De lehet van még egyszerűbb megoldás is  
- 
			
			  _kovi_ aktív tag Valamiért nem fut meg a script.. 
 CentOS7 a rendszer, mindent rootként csinálok. Tudom nem szabályos, de most ez így van. 
 Csak azért kérdeztem, mert az a gyanúm hogy ez a "warning" miatt nem fut meg?!...
- 
			
			  Headless őstag szia hiba kezelést neked kell beraknod. alapvetően ha szintaktikai hiba nincs a scriptben és semmi hiba kezelés sincs általad, akkor minden lefut. cron logolást tudsz beállítani, de ez specifikusabb, pl systemd esetében szerintem alapból lesz, de tényleg itt attól függ milyen op rendszer/indítást használ az eszköz. 
- 
			
			  _kovi_ aktív tag Srácok, ha egy script lefut manuálisan, csak "apró" hibát dob vissza, hogy pl nincs ilyen könyvtár a move parancsnak(előtte már elmásolta). 
 Akkor lehet hogy nem futtatja meg a crontab?
 Hol tudom megnézni, hogy a cron mit futtatott és sikeresen -e?
 Köszönöm!  
- 
			
			  _kovi_ aktív tag válasz  bambano
							
							
								#2639
							
							üzenetére bambano
							
							
								#2639
							
							üzenetéreDe megírom persze. 
 Az a cél, hogy egy gépen(Win7) 1 nap alatt létrejön 4db ugyanolyan fájlnevű de más kiterjesztésű fájl.
 A célom az, hogy a script minden nap elmásolja ezt a fájlt. Ebből nekem csak a jpg kell.
 Ez egy Win7 megosztáson van, amit felcsatolok Centos7 alá. Majd a scriptben sima cp.
 A for azért kellett, mert néha lehet egy nap 2-3 fájl is. De én balga stringként akartam ugye kezelni egy tömböt...  
- 
			
			Mert nem tömb, hanem egy string, aminek az elemei hiába vannak space-szel elválasztva, mivel idézőjelek között van, ezért nem bontja fel több stringre, hanem egyetlenként kezeli. Ha kiveszed az idézőjeleket a fornál (meg a tömbös kezelést, ami mondjuk a működésbe nem zavar be, csak felesleges és megtévesztően néz ki), akkor menni fog - feltéve, hogy nincsenek olyan file-jaid, amiknek a nevében space van. 
- 
			
			  _kovi_ aktív tag Egy kis ssegítséget kérnék, sziasztok! files=$(find /home/butor/ -type f -ctime -1 -iname '*.jpg' | cut -d"/" -f6)cd /home/butor/for i in "${files[@]}"doecho $idoneA files (tömb?)-ben kettő fájl van: fajl1.jpg fajl2.jpg 
 Szóközzel elválasztva.
 Viszont a for nem kezeli külön, hanem egyben! kiírásnál az $i változóra: fajl1.jpg fajl2.jpgMiért nem kezeli külön, hogy végigmegy az elemeken? Köszi!  
- 
			
			  _kovi_ aktív tag dabadab és bambano köszönöm mindkettőtöknek!   
- 
			
			find /windows_share/ -type f -ctime -1 -iname '*gzw' -exec cp {} /linux_dir/ \;Balról jobbra olvasva: megkeresi a /windows_share könyvtárban azokat a sima file-okat (tehát könyvtárat, pipe-ot, egyéb speciális file-t nem fog visszaadni), amiket maximum 1*24 órával ezelőtt hoztak létre és (figyelmen kívül hagyva a kis/nagybetű különbségeket) a '*.gzw' wildcardra illeszkednek és végrehajt rajtuk egy másolást a /linux_dir/-be. 
- 
			
			  _kovi_ aktív tag válasz  Jester01
							
							
								#2628
							
							üzenetére Jester01
							
							
								#2628
							
							üzenetéreBash script. 
 Most kicsit csúnyán van a fájl kiválasztása, mert adott egy gép ami 4 féle "kiterjesztésű" fájlt ad minden nap végén, de ebből csak az egyik kell nekem. A fájl eleje megegyezik.
 Pl.: 1234567.ser , 1234567.tpl , 1234567.chz.tic , 1234567.gpw
 Nekem csak a gpw fájlt kellene átmásolnom ami csak azon napon keletkezett. Ez egy windows megosztáson van amit felcsatolok egy mappába a linux szerveren. S onnan másolnék.
 Ez a megoldás kicsit csúnya:gpwfile=$(ls -l --time-style=+%F | grep $(date +%F) | grep -v ".ser" | grep -v ".tpl" | grep -v ".chz.tic" | cut -d" "-f8)Olyan illeszkedésre gondoltam ami megmondja, hogy a .gwz "végű" fájlt másold át ami aznap keletkezett.. 
- 
			
			  _kovi_ aktív tag Sziasztok! 
 Fájlnévre illeszkedést milyen paranccsal tudom vizsgálni egy scriptben?
 AWK? SED ?
 Köszi!  
- 
			
			  Sonja nagyúr Ubuntu alatt használtam ezt a scriptet, minden probléma nélkül: find . -maxdepth 1 -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" | xargs -l -i convert -resize 1000x1000\> {} folder.jpgMost viszont Arch alatt feldob egy ilyen warningot (gondolom, mert újabb verzió a xargs): xargs: warning: options --max-lines and --replace/-I/-i are mutually exclusive, ignoring previous --max-lines valuePersze így is működik a script, de zavar ez a warning kiírás. Mit kellene tennem, hogy ez ne legyen?  
- 
			
			válasz  Véreshurka
							
							
								#2615
							
							üzenetére Véreshurka
							
							
								#2615
							
							üzenetéreSzerintem te nem ezt akarod  Ez csak akkor szinkronizálja bármelyik könyvtárat is, ha az összes ott van meg a .bac párja is - én azt gondolnám, hogy igazából az lenne a kívánt működés, hogy ha ott van egy könyvtár meg .bac párja, akkor azt szinkronizálja, függetlenül a többi könyvtártól. Ennek szellemében: function do_backup()
 {
 for DIR in "$@" ; do
 BAC="$DIR.bac"
 if [ -d "$DIR" ] && [ -d "$BAC" ] ; then
 rsync -a --delete "$DIR" "$BAC"
 fi
 done
 }
 DIRS=("foo" "bar" "foo bar")
 do_backup "${DIRS[@]}"
 do_backup "foo" "bar" "foo bar"
 do_backup /backup/dirs/*A három do_backup csak szemléltetésnek van (az első egy arrayban tárolja a szinkronizálandó könyvtárak neveit, a második simán felsorolja, a harmadik meg az adott helyen lévő könyvtárakat használja) 
- 
			
			  Véreshurka senior tag válasz  bambano
							
							
								#2618
							
							üzenetére bambano
							
							
								#2618
							
							üzenetéreKöszönöm! Csak hogy világos legyen számomra: 
 afor ikezdéssel határozod meg hogy a${i}jelentse az összesinutáni mappát? Ha igen akkor mndig csak ki kell egészítenem azinutáni részt azokkal a mappákkal amiket még szeretnék szinkronizáltatni? Illetve gondolom ugyanúgy az elejére kell tennem, hogy belépjen a mappákat tartalmazó szülőmappába? Tehát így nézne ki:#!/bin/shcd /mappa/mappa1/mappa2for i in mappa3 mappa4 mappa5; do[ test -d $i ] && [ test -d "${i}.bac" ] && rsync -a --delete $i "${i}.bac"done
- 
			
			  lev258 veterán válasz  Véreshurka
							
							
								#2617
							
							üzenetére Véreshurka
							
							
								#2617
							
							üzenetéreElőször is, minden if-hez tartozik egy fi. Ez zárja le. Ha egymás után több if van, illetve a végén több fi, akkor az egybeágyazást jelent, vagyis a legbelső if többszörös feltételrendszernek kell, hogy megfeleljen. 
 Javaslom, hogy kezdd a shell script-ek if használatának megismerésével. Utána az rsync rész már könnyű lesz.
- 
			
			  bambano titán válasz  Véreshurka
							
							
								#2615
							
							üzenetére Véreshurka
							
							
								#2615
							
							üzenetérekb. ezt kellene: for i in mappa3 mappa4 mappa5; do[ test -d $i ] && [ test -d "${i}.bac" ] && rsync -a --delete $i "${i}.bac"done
- 
			
			  Véreshurka senior tag Én az egészhez nem értek  . Tulajdonképpen a firefox profil mappáimat szeretném a tmpfs-be helyezni és az lenne a cél, hogy a mentett mappák tartalmát mindig visszamásolja az eredeti profil mappába egy újraindítás után. Ebből a script-ből készítenék majd egy systemd service-t ami minden újraindítás után lefutna a háttérben. Egy mappával egyébként működik a dolog, kipróbáltam egy futtatással miután létrehoztam a scriptet és változott a profil mappa módosítási dátuma, szóval gondolom végrehajtódott a feladat. De mivel több profilt is használok firefox alatt így nem szeretnék minden egyes profil szimkronizációhoz külön service-t készíteni hanem egy service-be belerakni az egészet, a későbiekben pedig ha bővülnének a profiljaim akkor csak a scriptet kellene bővítenem. Innen vettem az ötletet és a script-et: [link] . Tulajdonképpen a firefox profil mappáimat szeretném a tmpfs-be helyezni és az lenne a cél, hogy a mentett mappák tartalmát mindig visszamásolja az eredeti profil mappába egy újraindítás után. Ebből a script-ből készítenék majd egy systemd service-t ami minden újraindítás után lefutna a háttérben. Egy mappával egyébként működik a dolog, kipróbáltam egy futtatással miután létrehoztam a scriptet és változott a profil mappa módosítási dátuma, szóval gondolom végrehajtódott a feladat. De mivel több profilt is használok firefox alatt így nem szeretnék minden egyes profil szimkronizációhoz külön service-t készíteni hanem egy service-be belerakni az egészet, a későbiekben pedig ha bővülnének a profiljaim akkor csak a scriptet kellene bővítenem. Innen vettem az ötletet és a script-et: [link]
- 
			
			  lev258 veterán válasz  Véreshurka
							
							
								#2615
							
							üzenetére Véreshurka
							
							
								#2615
							
							üzenetéreAz rsync-hez nem igazán értek, de jelenleg az if használatod jobban zavar. Logikailag nem értem a dolgot. 
- 
			
			  Véreshurka senior tag Sziasztok! Szeretnék egy olyan script-et készíteni, ami belép egy adott mappába, ott ellenőrzi, hogy megvannak-e bizonyos könyvtárak (egy eredeti, és egy .bac formátumba mentett), majd ezeket rsync-el szinkronizálja. Azt megtaláltam, hogy az eredetit a .bac formátumos mentéssel hogyan tudom megcsinálni, de mivel sosem csináltam még ilyet ott elakadtam, hogy hogyan kellene ennek kinéznie ha több könyvtárat szeretnék szinkronizálni, ebben kérném a segítségeteket. Így nézne ki a könyvtárszerkezet ha ls-el listázom: ls mappa/mappa1/mappa2/mappa3mappa3.bacmappa4mappa4.bacmappa5mappa5.bacÉs így nézne ki a script ha egy mappát kszinkronizálnék: #!/bin/shcd /mappa/mappa1/mappa2if test -d mappa3;thenif test -d mappa3.bac;thenrsync -a --delete mappa3/ mappa3.bac/fi;fiEzt szeretném kiegészíteni a többi mappával is. Gondolom amikor megnézetem vele, hogy megvannak-e a mappák, azt csak simán beteszem a script-be, mint a mappa3-nál, de nem tudom mit kellene az első rsync-es sor után tennem, hogy a többi mappát is ugyanúgy leszinkronizálja. Ott is a ;then-t kellene használnom? Valahogy így? #!/bin/shcd /mappa/mappa1/mappa2if test -d mappa3;thenif test -d mappa3.bac;thenif test -d mappa4;thenif test -d mappa4.bac;thenif test -d mappa5;thenif test -d mappa5.bac;thenrsync -a --delete mappa3/ mappa3.bac/;thenrsync -a --delete mappa4/ mappa4.bac/;thenrsync -a --delete mappa5/ mappa5.bac/fi;fiElőre is köszönöm a segtséget! 
- 
			
			  _kovi_ aktív tag Sziasztok! 
 Ez lenne a kérdésem, hogy másik topicban kolléga említette, hogy a fordított aposztróf idejétmúlt, mert a processzbehelyettesítés régi módszere a fordított aposztróf volt, az új pedig a $( ).
 Tehát a fordított aposztrófban egy parancsot lehetett futtatni egyben?
 Köszi
- 
			
			válasz  Fecogame
							
							
								#2609
							
							üzenetére Fecogame
							
							
								#2609
							
							üzenetéreNincs ilyen, kézzel lehet szabályozgatni a tömböt: #!/bin/bash
 declare -a ARR
 MAXLEN=4
 function add_element()
 {
 ARR+=("$1")
 len=${#ARR[@]}
 if [ $len -gt $MAXLEN ] ; then
 local -a tmp_arr
 local i=$((len-$MAXLEN))
 while [ $i -lt $len ] ; do
 tmp_arr+=(${ARR[$i]})
 let i++
 done
 ARR=(${tmp_arr[@]})
 fi
 }
 for x in $(seq 8) ; do
 add_element $x
 echo ${ARR[@]}
 done
- 
			
			Szeretnék létrehozni egy olyan (valószínűleg) tömböt, ami x számú elemet tartalmazhat, és ha a limiten felül hozzáadok egy újat, akkor a a legrégebben hozzáadott kiesik belőle. Létezik ilyen? Ha igen, mi a neve? Példa 3 tagú tömbre: Ujelem1Ujelem2Ujelem3Majd ha hozzáadom az Ujelem4-et, és így nézne ki: Ujelem2Ujelem3Ujelem4Most egy fájlba irányítom ezeket az elemeket és onnan szűrök rá tail-el, de rendkívül lassú módszer így. 
- 
			
			  Keem1 veterán válasz  bambano
							
							
								#2604
							
							üzenetére bambano
							
							
								#2604
							
							üzenetéreSajnos úgy se megy  Viszont így kicsit necces, ha később kerül be olyan folder, aminek a nevében space van. Viszont így kicsit necces, ha később kerül be olyan folder, aminek a nevében space van.juliska@pistacio:~ $ bash -x ./backup.sh 
 ++ hostname
 + devicename=pistacio
 + path_backup=/media/hdd/backup
 + file_archive=pistacio.local.tar.gz
 + path_archive=/media/hdd/backup/pistacio.local.tar.gz
 + [[ ! -d /media/hdd/backup ]]
 + [[ -f /media/hdd/backup/pistacio.local.tar.gz ]]
 + rm -f /media/hdd/backup/pistacio.local.tar.gz
 + [[ -f '' ]]
 + directories=("/home/juliska/")
 + declare -a directories
 + excludes=("home/juliska/tmp")
 + declare -a excludes
 ++ printf '%s\n' /home/juliska/
 + dirlist=/home/juliska/
 ++ printf --exclude=%s home/juliska/tmp
 ./backup.sh: 32. sor: printf: --: érvénytelen kapcsoló
 printf: használat: printf [-v változó] formátum [argumentumok]
 + exclist=
 + tar -cvf /media/hdd/backup/pistacio.local.tar.gz /home/juliska/
 tar: A kezdő „/” eltávolítása a nevek elejéről
 /home/juliska/
 /home/juliska/.bash_history
 /home/juliska/samsung_860evo_250gb_01.png
 /home/juliska/samsung_860evo_250gb_02.png
 /home/juliska/samsung_860evo_250gb_03.png
 /home/juliska/.bash_logout
 /home/juliska/tmp/
 /home/juliska/tmp/teszt.txt
 /home/juliska/tmp/addon.xml
 /home/juliska/tmp/131927106_711033053173709_564839630427467469_n_711033049840376.jpg
 /home/juliska/tmp/20210117_201722.jpg
 /home/juliska/backup.sh
 /home/juliska/.profile
 /home/juliska/.bashrc
 juliska@pistacio:~ $
- 
			
			  Keem1 veterán válasz  bambano
							
							
								#2600
							
							üzenetére bambano
							
							
								#2600
							
							üzenetére++ hostname 
 + devicename=pistacio
 + path_backup=/media/hdd/backup
 + file_archive=pistacio.local.tar.gz
 + path_archive=/media/hdd/backup/pistacio.local.tar.gz
 + [[ ! -d /media/hdd/backup ]]
 + [[ -f /media/hdd/backup/pistacio.local.tar.gz ]]
 + rm -f /media/hdd/backup/pistacio.local.tar.gz
 + [[ -f '' ]]
 + directories=("/home/juliska/")
 + declare -a directories
 + excludes=("home/juliska/tmp")
 + declare -a excludes
 ++ printf '%s\n' /home/juliska/
 + dirlist=/home/juliska/
 ++ printf -- '--exclude='\''%s'\'' ' home/juliska/tmp
 + exclist='--exclude='\''home/juliska/tmp'\'' '
 + tar -cvf /media/hdd/backup/pistacio.local.tar.gz '--exclude='\''home/juliska/tmp'\''' /home/juliska/
 tar: A kezdő „/” eltávolítása a nevek elejéről
 /home/juliska/
 /home/juliska/.bash_history
 /home/juliska/samsung_860evo_250gb_01.png
 /home/juliska/samsung_860evo_250gb_02.png
 /home/juliska/samsung_860evo_250gb_03.png
 /home/juliska/.bash_logout
 /home/juliska/tmp/
 /home/juliska/tmp/teszt.txt
 /home/juliska/tmp/addon.xml
 /home/juliska/tmp/131927106_711033053173709_564839630427467469_n_711033049840376.jpg
 /home/juliska/tmp/20210117_201722.jpg
 /home/juliska/backup.sh
 /home/juliska/.profile
 /home/juliska/.bashrc
Új hozzászólás Aktív témák
- Motoros topic
- Autóápolás, karbantartás, fényezés
- Veszélyben az adataid? Gond van a WD népszerű HDD-ivel
- Megvásárolható a Vivo X300 és X300 Pro Magyarországon, íme a hivatalos árak
- Székesfehérvár és környéke adok-veszek-beszélgetek
- HiFi műszaki szemmel - sztereó hangrendszerek
- A fociról könnyedén, egy baráti társaságban
- iPhone topik
- Samsung Galaxy A56 - megbízható középszerűség
- Linux Mint
- További aktív témák...
- GYÖNYÖRŰ iPhone 12 Pro 256GB Graphite -1 ÉV GARANCIA - Kártyafüggetlen, MS3280, 100% akkumulátor
- Gamer PC-Számítógép! Csere-Beszámítás! R7 2700X / GTX 1080Ti / 16GB DDR4 / 512 SSD!
- BESZÁMÍTÁS! Microsoft XBOX One 500GB fekete játékkonzol garanciával hibátlan működéssel
- HIBÁTLAN iPhone 13 mini 128GB Pink -1 ÉV GARANCIA - Kártyafüggetlen, MS3840
- LG 55B4 - 55" OLED - 4K 120Hz 1ms - NVIDIA G-Sync - FreeSync Premium - HDMI 2.1 - PS5 és Xbox Ready
Állásajánlatok
Cég: NetGo.hu Kft.
Város: Gödöllő
Cég: Promenade Publishing House Kft.
Város: Budapest

 
								 
							 
								 
							 
								 
							
 
								 
							 
								 
							 
								 
							 Köszönöm
 Köszönöm 
								 
							 
								 
 
 ), akkor meg floating pointot:
 ), akkor meg floating pointot: 
								 
							 
								
 
							 
							 
								 
								 
							 
							 
  
 
 
								 
							
 
								 
							 
							 
								 
							 
								 Viszont így kicsit necces, ha később kerül be olyan folder, aminek a nevében space van.
 Viszont így kicsit necces, ha később kerül be olyan folder, aminek a nevében space van. 
								

