- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Luck Dragon: Asszociációs játék. :)
- gban: Ingyen kellene, de tegnapra
- sziku69: Fűzzük össze a szavakat :)
- Ivqkzy-: Eddig
- sziku69: Szólánc.
- Magga: PLEX: multimédia az egész lakásban
- Argos: Szeretem az ecetfát
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- zebra_hun: Hűthető e kulturáltan a Raptor Lake léghűtővel a kánikulában?
Új hozzászólás Aktív témák
-
brickm
őstag
Sziasztok!
A problémám az lenne,hogy bat fájllal szeretnék egy adatbázist rejtett mappából másik rejtett mappába áttenni.
Megírtam ezt:
Xcopy "regihely\data.txt" "ujhely\%date%.txt" /HMüködik,csak egy a bökkenő...az xcopy kérdez,hogy file,vagy folder... ezt szeretném én automatizálni,de hiába nézem az xcopy helpet meg a neten ajánlott dolgokat,egyik se vált be eddig...
Sima copy-val nincs ilyen gond,csak azzal nem megy a rejtett mappa ha jól tudom.
-
Jester01
veterán
válasz
bambano #2096 üzenetére
Ja hát nem tudtam, hogy a break az nem számít "össze-vissza ugrálsz"-nak
Ez meg: "while wget akarmi || true" éppenséggel pont ugyanolyan végtelen ciklus mint amit leköpködtél, a kilépési feltétel itt sem a while-ban van.Ennél:
while wget akarmi || true
doszerintem ez
while true
do
wget akarmiegyszerűbb és olvashatóbb. Főleg, ha ott nem csak 1 wget van, hanem valami bonyolultabb.
-
bambano
titán
válasz
Jester01 #2090 üzenetére
teljesen igazad van, ezek mind rondábbak
size=0
while [ $size -lt 40894464 -o $size -gt 45088768 ] ; do
wget akarmi
size=$(stat -c '%s' $filenev 2>/dev/null || echo 0)
grep Jabber $filenev && exit 0
sleep 10m
done
ide meg a python konverter indításennél is lehetne jobbat szerintem, ha nem épp ap-t konfigelnék
-
Headless
őstag
válasz
Jester01 #2090 üzenetére
Egy ilyesmi esetleg?
#csinálj amit akarsz
while [ ! "$size" ] || [ $size -lt 40894464 -o $size -gt 45088768 ];do
#Letöltés
size=$(stat -c \%s foo)
[ $size -lt 40894464 -o $size -gt 45088768 ] && sleep 10m
done
#csinálj amit akarszÍgy az első esetben amíg nincs definiálva a size értéke, akkor belép a ciklusba utána pedig mindig a második feltétel lesz az érvényes, mert az első hamis lesz.
-
Jester01
veterán
válasz
bambano #2089 üzenetére
Szerintem az most bonyolultabbra jönne ki, mivel kétszer kellene ellenőrizni a méretet vagy az elején is lenne várakozás.
size=0
while [ $size -lt 40894464 -o $size -gt 45088768 ]
do
# letoltes
# ...
size=$(stat -c \%s foo)
if [ $size -lt 40894464 -o $size -gt 45088768 ]
then
# hiba, varj 10 percet
sleep 10m
fi
done
# csinald meg amit kell
# ...Vagy
first=1
size=0
while [ $size -lt 40894464 -o $size -gt 45088768 ]
do
if [ $first -eq 0 ]
then
# hiba, varj 10 percet
sleep 10m
fi
first=0
# letoltes
# ...
size=$(stat -c \%s foo)
done
# csinald meg amit kell
# ...Vagy a letöltést lehet duplikálni:
# letoltes
# ...
size=$(stat -c \%s foo)
while [ $size -lt 40894464 -o $size -gt 45088768 ]
do
# hiba, varj 10 percet
sleep 10m
size=$(stat -c \%s foo)
# letoltes
# ...
size=$(stat -c \%s foo)
done
# csinald meg amit kell
# ...Szerintem ezek rondábbak. Más ötlet?
-
bambano
titán
válasz
Jester01 #2088 üzenetére
csinálsz egy végtelen ciklust, amiben össze-vissza ugrálsz, felesleges utasítások vannak benne.
a ciklus kilépési feltétele nem a ciklusfejben van leírva. stb.rendesen ezt úgy illik, hogy:
ciklusfej
ciklusba szükséges utasítások
ciklusvég
a maradék (jelen esetben a konvertálás). -
Jester01
veterán
Biztos, de most nem tudom mire gondolsz.
-
olivera88
veterán
válasz
Jester01 #2084 üzenetére
Bele kell tenni a letöltésbe is ezt ellenőrzést, mert ha nem jó töltődik le akkor próbálja újra egy idő után a letöltést. Mert ha futtatáshoz teszem a letöltést, és nem jól töltődik le, akkor újra kell futtatni letöltést pár perc múlva, és akkor ellenőrzés nem lesz benne ugye? És ha akkor is rossz fájl akkor megcsinálja hibás fájlal.
-
Jester01
veterán
-
olivera88
veterán
válasz
Jester01 #2080 üzenetére
Működik egyelőre. Nagyon szépen köszönöm.
Azt még be lehetne tenni esetleg ha hibás fájl töltödik le akkor megpróbálja x perc múlva futattni? Vagy azt már bízzam inkább systemd re? Habár azt nem tudom h lehet beállítani normálisan, be lehet állítani a restartot, mondjuk 10 percenként, de az nem jó, mert akkor állandóan azt fogja csinálni h 10 percenként lefut. -
olivera88
veterán
Ide küldtek a problémámmal a Linux haladóknak topicból. Remélem van rá valami jó megoldás. Ajánlották a hash ellenőrizést, de az nem jó mert nem egyforma a hash.
Erről lenne szó. [link]Ez futtatás scriptje, a letöltéshez másik van.
#!/bin/sh
python /home/oliver/Magics-PCP,T_script/arpegepcpmslvhu_72.py
python /home/oliver/Magics-PCP,T_script/arpegepcpmslhu_72.py
python /home/oliver/Magics-PCP,T_script/arpegepcpmslsrb_72.py
SZERVER='név'
FELHASZNALO='felhasznalol'
JELSZO='jelszo'
ftp -n -v $SZERVER << EOF
ascii
user $FELHASZNALO $JELSZO
prompt
cd ARPEGE
bin
send ARPEGEPCP72.png
send ARPEGEPCPHU72.png
send ARPEGEPCPRS72.png
exit
EOF -
footy
addikt
válasz
bambano #2074 üzenetére
AZ nmap-re nem is gondoltam
Ilyesmit barkacsoltam ossze, de nem az igazi(nem ertek a scripteleshez):
1 #!/bin/bash
2 # Program name: checknet.sh
3 date
4 cat test.txt | while read output
5 do
6 nmap -sP "$output" > output.txt
7 if [ $? -eq 0 ]; then
8 echo "network $output is active"
9 else
10 echo "$output NA"
11 fi
12 doneAz output igy nez ki:
Nmap run completed -- 16 IP addresses (0 hosts up) scanned in 0.108 seconds
Tehat azt kellene eldonteni hogy 0-e a hosts.Koszi mindkettotoknek a gyors valaszt
-
Jester01
veterán
És hol akadtál el?
#! /bin/bash
while read net mask start end
do
if [ $net = Netz ]
then
continue
fi
echo -n $net
ping -n -c 1 $start >/dev/null 2>&1
pstart=$?
ping -n -c 1 $end >/dev/null 2>&1
pend=$?
if [ $pstart -eq 0 -o $pend -eq 0 ]
then
echo " Active"
else
echo " Not active"
fi
done -
footy
addikt
Sziasztok!
A nem hasznalt halozatainkat szeretnem kiszurni, erre eloallitottam egy listat amiben benne van a halozat cime(+Mask) es az elso valamint az utolso hasznalhato IP (ezek nalunk a Gateway-k).
Netz Mask Start End
10.10.0.0 16 10.10.0.1 10.10.255.254Kellene egy olyan script ami megpingeli az elso es utolso ip-t es beirja egy file-ba hogy hasznalatban van-e a halozat vagy nem.
PL: 10.10.0.0 Not activekoszi
-
Headless
őstag
válasz
RoyalFlush #2069 üzenetére
Azért te is utána járhatsz a dolgoknak
stackoverflowon sok minden van , csak hasonló típusú dolgot kell keresned.
Ám Férfi 10. hónap, szűrhetsz évre és napra is ebből mennie kell már.
awk -F, '$4~/[0-9]{1,4}\.10\.[0-9]{1,2}/&&$3!~/h.lgy/{split(ugyfel[$5],a,",");if($6>a[6])ugyfel[$5]=$0}END{for(i in ugyfel)print ugyfel[i]}' /test/fizetes
-
Headless
őstag
válasz
RoyalFlush #2067 üzenetére
Szia!
awk -F, '{split(ugyfel[$5],a,",");if($6>a[6])ugyfel[$5]=$0}END{for(i in ugyfel)print ugyfel[i]}' /test/fizetesMost hogy az urak, azt a legegyszerűbben egy pipe grep-el tenném a végére hátha kell a nőké is valamikor...
de végülis ez is egy megoldás. Így még gyorsabb is mert kihagyja a nőket.
Férfiak:
awk -F, '$3!~/h.lgy/{split(ugyfel[$5],a,",");if($6>a[6])ugyfel[$5]=$0}END{for(i in ugyfel)print ugyfel[i]}' /test/fizetesNők:
awk -F, '$3~/h.lgy/{split(ugyfel[$5],a,",");if($6>a[6])ugyfel[$5]=$0}END{for(i in ugyfel)print ugyfel[i]}' /test/fizetes -
RoyalFlush
őstag
Sziasztok!
Szükségem lenne egy kis segítségre. Van egy állományom, benne az alábbiak szerint szerepelnek adatok:
1.,Balogh Elvira,hölgy,1988.06.02.,Sárospatak,85000
2.,Dudás Diána,hölgy,1967.03.16.,Simontornya,101000
3.,Kocsis Vince,úr,1936.10.28.,Várpalota,74000
4.,Kocsis Balázs,úr,1960.12.03.,Várpalota,110000
...Hogyan lehet awk használatával listázni az urak esetében megtalálható legmagasabb fizetést várásonként?
Köszönöm előre is!
-
sonar
addikt
Kicsit pontositok.
a file-ban szerepelnie kell mindkét kulcsszónak.Az awk-t nézegettem, de mostanában nem scriptelgettem és jól megkopott a tudásom.
-
Jester01
veterán
bash verzió:
for file
do
f=0
exec 3< "$file"
while read -u3 line
do
[[ "$line" =~ egy ]] && f=$((f | 1))
[[ "$line" =~ ketto ]] && f=$((f | 2))
done
exec 3<&-
[[ $f == 3 ]] && echo "$file"
done -
Jester01
veterán
válasz
spammer #2060 üzenetére
Egysorosnak nem egysoros de egy parancs és egyszer olvassa a fájlokat:
awk '
BEGINFILE { f = 0 }
/egy/ { if (f % 2 < 1) f += 1; }
/ketto/ { if (f % 4 < 2) f += 2; }
ENDFILE { if (f == 3) print FILENAME }
'GNU awk-ban van or() függvény azzal:
awk '
BEGINFILE { f = 0 }
/egy/ { f = or(f, 1) }
/ketto/ { f = or(f, 2) }
ENDFILE { if (f == 3) print FILENAME }
' -
spammer
veterán
válasz
Headless #2059 üzenetére
Szerintem nem fájlnevekről van szó, hanem fájlokról, amikben keresünk (több sorban, és bármelyikben lehet a keresendő kifejezés). Ha feltétel itt most kulcsszót jelent, akkor ilyesmi:
grep -Pzl 'KEYWORD1.*\n.*KEYWORD2' *.txt
grep -Pzo 'KEYWORD1.*\n.*KEYWORD2' *.txtDe pl. ezek sem teljesen jók, mert ha a 2-es kulcsszó van előbb, már nem találja meg.
grep -Pzo 'KEYWORD1.*\n.*KEYWORD2|KEYWORD2.*\n.*KEYWORD1' *.txt
így sem találja meg mindet, mert csak az elsőt veszi figyelembe. Az egrep pedig semmit nem ad vissza ezzel.
awk '/keyword1/ && /keyword2/' *.txt szintén nem működik.
De ha mégsem kulcsszóról van szó, akkor nem ártana tudni, milyen feltételről van szó.
Ha valakit tud profi, egysoros (egy parancsos, nem pipe-os) megoldást a fentiekre, arra (én is) kíváncsi lennék.
-
sonar
addikt
Sziasztok,
Tegnap scriptelgettem egy kicsit és egy olyan problémába futottam bele, hogy file-okat keresetem amiben szerepelnie kellett két feltételnek.
Ezt két létpcsőben oldottam meg. De kiváncsi vagyok, hogy létezik-e a vmi "profibb" megoldás
Meg lehet oldani vhogy egy paranccsal, hogy azokat a fileokat listázza amiben szerepel mondjuk a "feltétel1" és a "feltétel2" ?
egrep-pel próbálkoztam, de nem igazán jött össze -
Szeretnék egy script-et írni ( egyenlőre csak a következő dologra ) Windows alatt.
"C:\Program Files (x86)\Mozilla Firefox\firefox.exe"
ping www.prohardver.huA fenti két paranccsal az a gondom, ha lefut az első sor, nem lép tovább a másodikra, hanem megvárja míg a Firefox be nem záródik. Hogyan lehetne ezt kiküszöbölni?
Az most lényegtelen, hogy értelme nincs, majd lesz ha bővítem
-
válasz
bambano #2048 üzenetére
Cégen belüli spéci program. Annyi, hogy amikor megnyitom, egyből lehet is gépelni a jelszót, illetve utána az entert megnyomni. Ezt minden gépindításnál meg kell tenni, mind a négy programnál, ezt szeretném automatizálni.
Programok indítása, illetve a közöttük való várakozás már megvan, már csak gépelni kellene, illetve entert/tabot ütni.
-
válasz
Jester01 #2044 üzenetére
Időközben rájöttem, hogy ( valószínűleg a cache miatt ) a tömörítés ~1mp alatt végez. Így a beírt parancsok folyamatosan futnak le, csak meglepően gyorsan.
Más: Lehetséges olyan script-et írni linux-ra, ami adott programban begépel adott szöveget, majd leüt egy entert? Gyakorlatilag olyan megoldást keresek, ami szimulálja a karakter leütéseket, és lehetőleg script-ként futtatható.
-
Jester01
veterán
válasz
Fecogame #2042 üzenetére
Már mondtam, ez a normális script működés, hogy megvárja a parancs végét.
Ha maga a parancs visszatér mielőtt végezne az erősen gyanús és az ellen közvetlenül nem tudsz semmit csinálni a script oldalán. Szerintem ott valami más probléma van, a mysql dump szinte kizárt, hogy visszatér mielőtt kész lenne. De nem mutattad meg a parancsot... -
bambano
titán
válasz
Fecogame #2042 üzenetére
a biztonsági mentés akkor ér valamit, ha vissza lehet tölteni és annak eredménye korrekt adatbázis/fájlrendszer lesz. különösen fontos, hogy a "vissza lehet tölteni" kifejezés azt is magába foglalja, hogy az illető rendszergarázda képes is végrehajtani azt.
ezt semmi más módon nem lehet kideríteni, csak ha valóban megtörténik a visszaállítás. enélkül akkor fog kiderülni, hogy nem lehet visszatölteni, amikor kellene...
ilyen apróságok is akkor derülnek ki, hogy mennyi idő a visszaállítás, mennyi ideig áll miatta az üzemeltetés, stb.
-
válasz
Jester01 #2038 üzenetére
Egy scriptben van mysql dump és tar-os tömörítés. Az utolsó mysql mentéssel és a tömörítéssel is gyannabn a másodpercben végez. A tar.gz állomány mérete ~600MB.
Ebből arra következtetek, hogy a mysql dump és a tar tömörítés egyszerre fut le. Ez többszöri tesztelés után is így lett. A scriptben első körben a mysql mentés van, majd pedig a legvégén a tömörítés.
-
Ha egy shell script fájlban megadok több tömörítést egy-egy sorban, pl.:
tar -zcvf /var/backup1.tar.gz /egyik
tar -zcvf /var/backup2.tar.gz /masik
tar -zcvf /var/backup3.tar.gz /harmadikEgyszerre futnak le ezek a tömörítések? Ha igen, hogyan tudnám őket egymás után ( nem párhuzamosan ) lefuttatni. Ha lehet, akkor olyan kitétellel, hogyha pl. a "masik" hibába ütközik, akkor is fusson le a "harmadik"?
-
bambano
titán
válasz
MasterMark #2032 üzenetére
awk-nak lehet változót definiálni parancssorból.
tehát awk -v valtozonev=ertek
amire a scriptben lehet hivatkozni, nálad konkrétan NR==változó-nál.szerk: és akkor következik az, hogy nem bonyolítjuk szét a programot meg a shell tokenizálót, hanem írjuk úgy, ahogy illik
:
~$ export sorszam=10
~$ ls -l | awk "NR==$sorszam {print $1}"szerk2: "Mukodesbeli kulonbseg van?": természetesen van, egyrészt hamar eljuthatsz oda, hogy a fordított aposztróf nem fog működni, másrészt próbáld meg egymásba ágyazni
-
Rimuru
veterán
válasz
bambano #2031 üzenetére
Mukodesbeli kulonbseg van? ezt szoktam meg, kenyelmesebb
"szerintem a shell behelyettesítené, ha megfelelően írnád bele." - ez is igaz, de szerintem szebb igy atadni.
MasterMark: mind a ketto megoldas:
awk -F "/" 'NR=='"$shell_var"'{print $1}' file
awk -F "/" -v awk_var=$shell_var 'NR==awk_var{print $1}' file -
Rimuru
veterán
válasz
MasterMark #2029 üzenetére
asd=`awk -F "/" 'NR==1{print $1}' file`
echo $asd
ha az a baj hogy valtozot nem tudsz adatni akkor meg awk -v kapcoslo kell.
Amugy ez igy vegigmegy az egesz fajlon, kicsit optimalizalas lehet hogy kiiratas utan kilepsz: {print $1;exit 0}
Masik amugy, az is lehet hogy gyorsabban megy a tail-head-cut combo mint az awk. -
bambano
titán
válasz
MasterMark #2026 üzenetére
head és tail.
-
Rimuru
veterán
válasz
MasterMark #2026 üzenetére
Ha jol ertem ez kell neked:
awk -F "/" 'NR==1{print $1}' file
NR sor
$1 oszlop
-F field separator -
MasterMark
titán
Hello, ha van még itt valaki.
Hogy tudok adott sorból cut-olni közvetlen? Most elég idétlenül van megoldva, még pedig grep-el elé íratom a sor számát, majd megint grep szűrés az adott sorra, és aztán cut.
Szerintem van ennél egyszerűbb módja is, vagyis hogy rögtön kiadja azt a sort amelyikre szükségem van.Előre is köszi.
-
Sziasztok,
Windows alatt felraktam az msysgit-et es egy prepare-commit-msg bash scriptet probalok osszehozni arra, hogy berakja a commit message elereje az aktualis branch nevet, ha meg nem szerepelne benne.
Neten kismillio megoldas van, pl:NAME=$(git branch | grep '*' | sed 's/* //')
if [[ $1 != $NAME* ]]
then
echo "$NAME"' '$(cat "$1") > "$1"
fiEz szep es jo egeszen addig, amig uj commitot csinalok vagy egy korabbit amend-elek, tehat
git commit -m "valami"
git commit --amend -m "valami"ezeknel mukodik.
Ha mar nem akarom a message-t szerkeszteni amendnel, akkor nem jo, hozzaadja megegyszer:
git commit --amend --no-edit
Interactive rebasenel szinten, akkor is ha valtoztatni akarok a messagen meg akkor is ha nem, olyankor meg valami "(no branching...)" szoveget ad hozza, ami ha jol ertettem valoban egy branch neve, amit ideiglenesen hoz letre rebasenel.Mi lenne a bulletproof script a problemara, ami tenyleg csak akkor adja hozza a branch nevet, ha meg nem szerepel benne?
-
spammer
veterán
-
Lolek
aktív tag
Sziasztok,
szükségem lenne egy scriptre (windows alá, .bat fájl)), de nem tudom hogy fogjak hozzá:
Be kell telnetlejek egy eszközbe és 3 parancsot kéne neki kiadni így:
telnetk x.x.x.x
első parancs >>> enter (esetleg kis szünet, hogy le tudjon futni mielött indul a következő)
második parancs >>> enter (esetleg kis szünet, hogy le tudjon futni mielött indul a következő)
haramadik parancs >>> enter (esetleg kis szünet, hogy le tudjon futni mielött indul a következő)Tud valaki segíteni?
Köszönöm
-
bambano
titán
kolléga rtorrent indítószkriptet faragott.
kapjuk szét, mint foxi a lábtörlőt -
sto1911
veterán
Sziasztok,
plink-el szeretnek tavolrol jelszot valtoztatni, hogyan kell bekuldeni neki a ket uj jelszot?
-m kapcsoloval fajlbol adom be neki, hogy passwd es ketszer az uj jelszot. -
Headless
őstag
Sziasztok!
Egy újabb nap, újabb script, újabb gond amit nem tudok megoldani.
URL decodolni szeretnék változóKAT. ehhez az uhttpd beépített dekódolóját használom azzal nincs baj működik jó is,
A script bemenetén a változóneveket kapja meg.#!/bin/sh
for i in "$@"
do
eval ev=\$"$i"
dv=\'`uhttpd -d "$ev" | tr -d '\r'`\'
eval "$i=$dv"
echo "$i=$dv" >>/tmp/decoder
doneEz egészen addig működik is, amíg nincsen egy idézőjel. Azután nem jól definiálja a változót, hogy lehetne megoldani, szépen és kevés karakterből. Jelenleg manuálisan van kiírva minden dekódolni kívánt változó de jobb lenne így ciklussal.
-
csabi94
őstag
Sziasztok, bash scriptel kéne megoldanom azt a feladatot, hogy kap egy fájlt paraméterül, és a fájlban levő betűket kellene megszámolni, hogy miből mennyi van. Ez hogyan kivitelezhető a legegyszerűbben?
Köszönöm segítségeteket előre is! -
Dadi207
csendes tag
Azóta már sokat változtattam rajta, úgyhogy nincs is rá szükségem. Azért köszi a választ, legalább megint tanultam valamit.
-
Jester01
veterán
válasz
Dadi207 #2001 üzenetére
A közhiedelemmel ellentétben az ls cm*NIGHTLY-bacon.zip parancsban a *-ot nem az ls oldja fel, hanem még a shell. Jelen esetben amikor ez történik, akkor még nem futott le a cd $CMU ezért nem talál illeszkedő fájlokat, így beállítástól függően vagy törli az argumentumot vagy pedig változatlanul adja át. Előbbi esetben az ls kimenete a $CMU teljes tartalma lesz, utóbbi esetben pedig semmi, mivel az ls maga már nem kezeli le a *-ot ezért betű szerint azt a fájlt keresi, hogy cm*NIGHTLY-bacon.zip (így, a csillaggal).
-
Dadi207
csendes tag
Sziasztok,
segítségre lenne szükségem.
Készítettem egy scriptet, ami rendszeresen frissít néhány dolgot a telefonomon. A problémám az lenne, hogy ha így írom, akkor minden jól működik:#!/sbin/sh
if [ -e $CMU/cm*NIGHTLY-bacon.zip ] || [ ! -e /data/system/packages.xml ]; thenViszontha így, akkor nem:
#!/sbin/sh
CM=$(cd $CMU && ls cm*NIGHTLY-bacon.zip)
if [ -e $CMU/$CM ] || [ ! -e /data/system/packages.xml ]; thenValaki tudna nekem segíteni, hogy miért nem működik a második?
Előre is köszönöm a válaszokat.
Új hozzászólás Aktív témák
Hirdetés
- BESZÁMÍTÁS! Gigabyte B650M R7 7700 32GB DDR5 1TB SSD RTX 5070 12GB BE QUIET! Pure Base 500DX 650W
- Azonnali készpénzes Intel i3 i5 i7 i9 8xxx 9xxx processzor felvásárlás személyesen / csomagküldés
- T Phone Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- Gamer laptop felvásárlás Magas áron, gyorsan és egyszerűen!
- BESZÁMÍTÁS! 1TB Kingston KC3000 NVMe SSD meghajtó garanciával hibátlan működéssel
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged