Új hozzászólás Aktív témák
-
válasz Jester01 #200 üzenetére
info sed szerint meg dokumentált:
The syntax of the `s' (as in substitute) command is `s/REGEXP/REPLACEMENT/FLAGS'. The `/' characters may be uniformly replaced by any other single character within any given `s' command. The `/' character (or whatever other character is used in its stead) can appear in the REGEXP or REPLACEMENT only if it is preceded by a `\' character.
A man szerint meg a full doksit a texinfo-ban kell keresni
[Szerkesztve]Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
-
partymaci
aktív tag
sziasztok
szeretnem a segitsegeteket kerni.
egy olyan script kellen ami egy adott konyvtarban levo fajlokat megvizsgalja datum alapjan és a 20 napnal regebbieket kitorli.
sokat filoztam hogy hogylehetne, arra gondoltam hogy a
date --date '20 days ago'
parancsal kiiratom a 20 nappal ezelotti datumot és osszhasonlitom(for ciklus?) a fajlok utolso modositasanak datumaval. Ha a datumok megeggyeznek vagy regebbiek akkor a fájl > /dev/null
otlet?
thxHa nincs elég bajod, vegyél számítógépet!
-
seaky77
tag
Sziasztok,
Van egy progi aminek az outputja igy néz ki:
xxxx.txt 1234 324 567
xxxx2.txt 1234 324 567
OK
Ezt kén a következő formára hozni:
<TR><TD>xxxx.txt<TD>1234<TD>324<TD>567
<TR><TD>xxxx2.txt<TD>1234<TD>324<TD>567
Megtudom ezt oldan ezt script-tel?
Van arra valami mód pl: hogy a számokat formázzam pl elosszam 1024-el?
Köszi -
Jester01
veterán
Például:
while read f a b c
do
if [ ''$f'' = ''OK'' ]
then
break
fi
echo ''<TR><TD>$f<TD>$a<TD>$b<TD>$c''
done
A $((a / 1024)) el fogja végezni az osztást, de a shell csak egész számokat ismer. Különben bc vagy dc:
echo ''<TR><TD>$f<TD>$(dc -e ''2 k $a 1024 / n'')<TD>$b<TD>$c''Jester
-
ocsi19
senior tag
hi tudna valaki segíteni?(sűrgős lenne)
shell script feladat:
Írjon shell scriptet, amely az aktuális könyvtárban található, páros számjegyekkel kezdődő fájlneveket a paraméterben kapott fájlba írja, a fájlba írt fájlnevek számát pedig a képernyőre.
Előre is köszi
üdv.: ocsi -
GD
őstag
üdv!
szeretnék egy cron-ban futó raid1 tömb ellenőrző scriptet
/usr/local/sbin/raidfeel tartalma eddig:
mdadm --detail /dev/md0 |grep Failed
ezt adja vissza jóesetben:
Failed Devices : 0
namármos, vhogy azt kellene elérni hogy:
kivágni az adott nullát (18. karakter a sorban), betenni változóba és
if változó nulla írja ki ''minden ok md0''
ha változó nemnulla akkor tegyen le egy txt-t ''raid hiba'' tartalommal a /home/gd/Desktop-ra
mindez futna cron-ba 5 percenként
lehet hogy van egyszerűbb mód is, ötleteket várok, igazából értem mit kellene csinálni a fentiek alapján, de nem tudom bash-ül leírni (még).. a dolog hasznossága a tanulás is lenne...
köszi -
Jester01
veterán
kivágni az adott nullát (18. karakter a sorban)
Konkrétan ezt így lehet:
line=`mdadm --detail /dev/md0 |grep Failed`
if [ ''${line:17:1}'' = ''0'' ]
then
echo ''minden ok md0''
else
echo ''raid hiba'' > /home/gd/Desktop/raid.txt
fi
Ha tudod pontosan mit ad vissza jó esetben, akkor célszerûbb egy-az-egyben azt ellenõrizni.
Egyébként pedig raid eszközöket az mdadm démon üzemmódjával lehet figyelni.
[Szerkesztve]Jester
-
GD
őstag
válasz Jester01 #215 üzenetére
köszi!
Let's see a basic example. Running
mdadm --monitor --mail=root@localhost --delay=1800 /dev/md2
should release a mdadm daemon to monitor /dev/md2. The delay parameter means that polling will be done in intervals of 1800 seconds. Finally, critical events and fatal errors should be e-mailed to the system manager. That's RAID monitoring made easy.
Finally, the --program or --alert parameters specify the program to be run whenever an event is detected.
Note that the mdadm daemon will never exit once it decides that there are arrays to monitor, so it should normally be run in the background. Remember that your are running a daemon, not a shell command.
ennyit találtam a monitorozásról, de a mail és a sysmail dolgokra még semmi rálátásom nincs, ergo, fogalmam sincs mitől fogja a localhost-on a root megkapni a mail? procmail?
továbbá hogy mi kell hozzá és hogy kell konfigolni..
ezért született a script ötlet..
persze ha ez egy távoli gép akkor sokkal jobb lenne a mail nyilván nem localhost-ra
hogy csinálják ez a nagyok? -
ngabor2
nagyúr
egy némító/visszaállító szkriptet kellene összehozni. addig már eljutottam, hogy az aumix -q kiírja a hangerősséget
vol 90, 90, R
pcm 45, 45
mic 100, 100, P
igain 0, 0
alakban.
grep vol, aztán megfelelően formázott cut, esetleg sed, és megvan a 2 érték. ezt praktikusan egy változóban tárolnám.
export left1=`aumix -q | grep vol | cut -d'' '' -f2| sed s/,//`
export right11=`aumix -q | grep vol | cut -d'' '' -f3| sed s/,//`
és innentől nem áll bennem össze a kép... az if-et sose szerettem
lefut a szkript, megnézi, hogy némítva van-e (futott-e már előtte, ami némítást okozott, pl. $mute értéke 1-e). ha igen, akkor visszaírja a left1/right1 értékét, pl.
ha a hangerő értéke 0, akkor left1/right1 értékére kellene beállítani.
rexima vol $left1,$right1
ha még nem futott, tehát nincs $mute, akkor export mute=1, aztán a fenti 2 érték elmentése, majd némítás,
rexima vol 0
valaki megcsinálná a keretet hozzá? -
VladimirR
nagyúr
szamit, hogy az alabbi ket sor kozul melyiket hasznalom?
miert?
miert azt?
pppstats ppp0 2>/dev/null | tail -n1 | egrep '\|' | { read c1 c2 c3 c4 c5 c6 c7 c8 c9 ca cb ; echo "down.value $c1"; echo "up.value $c7"; }
pppstats ppp0 2>/dev/null | tail -n1 | egrep '\|' | awk "{ print \"down.value \" \$1 \"\nup.value \" \$7 }"
[Szerkesztve] -
Jester01
veterán
válasz VladimirR #219 üzenetére
A kettő között nincs jelentősebb különbség, talán a shell-es megoldás jobb, mert a bash jó eséllyel már a memóriában van. Jelen esetben persze nincs jelentősége.
Igazából a másodikat kellene átírni úgy, hogy a tail meg az egrep nem kell bele, mivel úgyis awk-t használsz. Az egrep amúgy mit is csinálna? És miért egrep? Pl. ez lehet egy megoldás:
pppstats ppp0 2>/dev/null | awk 'NR==2 { print ''down.value '' $1 ''\nup.value '' $7 }'Jester
-
GD
őstag
üdv!
ntfs-3g mounthoz szeretnék egy kis mankót hogy ne kelljen mindig copyzni a wikiből
[link]
lényege az kellene legyen hogy lenne egy script aminek paraméterben csak a mit és a hovát kellene megadni, a többit magától tudná
elsőnek csatolja le a default auto ntfs mountot (csak olvasható ntfs alap támogatás)
aztán pedig:
ntfs-3g /dev/hdx1 /mnt/<csatolási pontod> -o silent,umask=0,no_def_opts,allow_other,locale=hu_HU.utf8
félkövér= script paraméter
dőlt= tudja magától
köszi -
snowflake
tag
Ha jól értem, akkor valami ilyesmire lenne szükséged:
#!bin/sh
##
## ntfs-g3 remounter script
## $1 paraméter -> az ntfs partíció helye (mit)
## $2 paraméter -> a befűzés helye az fs-be (hová)
##
modprobe fuse #modul betöltése
umount $2
ntfs-3g $1 $2 -o silent,umask=0,no_def_opts,allow_other,locale=hu_HU.utf8
Nem használok ntfst így a fentit nem próbáltam ki, lehetnek benne hibák...
szerk: kicsit szétesett a kód
az ntfs-3g kezdetű strófa egysorban van
[Szerkesztve] -
gaben
aktív tag
Sziasztok!
Van valami weboldal vagy valami jó kis tutorial,amiből meglehet naggyából tanulni a script írás fortélyait?A www.shellhu.tk nem jön be.
Segítséget előre is köszönöm! -
bobsys
addikt
szaisztok
tudom szemétség így direktbe kérni, de tudna valaki nyomni egy scriptet amivel 100usert létretudok hozni gyorsan linux alá?
a user nevek egy user fájlban létre vannak hozvaEnterprise Admin? Kirk kapitany leszel? - Ne törődjél semmivel, egyél zsömlét kiflivel
-
gaben
aktív tag
Sziasztok!
Olyan shell scriptet kellene írnom,ami megvizsgálja a gépen ,hogy van-e index.htm fájl,és kiiírja,hogy van weblap ,ha nincs akkor pedig nincs weblap.
Kérlek segítsetek,mert ezt csak kiadták feladatnak,de jóformán el se magyarázták
Szinte nem mondanak semmit,csak csináld...
azért én megpróbáltam,örülnék,ha valaki a működő verziót leírná,mert ez ne mműködik
#!/bin/bash
ldapsearch -x -LLL uiod=''index.htm|grep''ˇhomeDirectory:\home\2006\/.*''
if index. htm
then echo ''van weblap''
else echo ''nincs weblap''
fi
Órai cuccból kínlódnék,de azt se mondták el,hogy mi a -x és -LLL kapcsolo...Mi ez?
Man-t sajnos angol nehézségeim miatt nem igazán tudom használni...
Segítséget előre is köszönöm!
Gabo -
gaben
aktív tag
A zelőző megoldódott,de most nagyon fontos lenne a help!
Üdv !
Nagy segítségre lenne szükségem,főleg a 2. kérdésben:
Egy könyvtáron belül az összes fájlra hogy lehet hivatkozni?
Mondjuk a cut paranccsal a /etc könyvtárban lévő összes gájlt összeakarom fűzni..
Akkor azt hogy?
Illetve azt hogy lehet megoldani ,hogy xy ember összes rendszerben eltöltött idejét kilistázzam?A last degítségével.Egyenként kilistázza,de összekéne adni.Összes idő kellene.Ezt hogy lehet megcsinálni?
Előre is köszönöm! -
sonar
addikt
fájlt hogyan törlök scriptből? Létrehozás már megy.
nem lehurrogni nem vagyok linuxosA tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!
-
ngabor2
nagyúr
van egy ilyen egyszerű kis szkriptem. ha nincs szóköz a kt-k nevében, akkor megy is rendesen. csakhogy nekem most épp olyan könyvtáraim vannak, amikben van szóköz... próbáltam idézőjelbe tenni a $i-t, az se segített. ötletek?
#!/bin/bash
for i in $(find . -type d); do
cd $i
unrar x *rar ..
cd ..
done -
-
GD
őstag
üdv! ezt a majdnem fix sort kellene scriptbe tenni aminek mindössze a kiemelt sor kellene megadni paraméternek futtatáskor:
growisofs -Z /dev/scd0=/utvonal/valami.iso -use-the-force-luke=notray -use-the-force-luke=tty -dvd-compat -speed=16 -use-the-force-luke=bufsize:32m
köszi! -
dabadab
titán
-
almi
senior tag
Sziasztok!
Valakinek van esetleg ötlete arra, hogy a tac parancsot hogy lehetne megvalósítani egy Linux scriptel?
Azaz egy olyan program, amelyik egy argumentumként megadott fájlt fordítva (utolsó sorát elsőnek, stb.) képes megjeleníteni.
Vannak itt még apróságok h írjon hibát ha nem létezik a file, több filet is tudjon kezelni, de egyenlőre elég lenne egy kis segítség h valahogy el tudjak indulni.
Köszi.
Üdv. -
dabadab
titán
#!/bin/sh
tac ''$@''
Bocs Mondjuk nem irtad, hogy pontosan mivel is kellene (lehet, hogy siman builtinekkel is ossze lehetne hozni), de itt van pl egy sed-es megfejtes:
#!/bin/sh
for FILE in ''$@'' ; do
if [ -f ''$FILE'' ] ; then
sed '1!G;h;$!d' ''$FILE''
else
echo ''$FILE nem sima file (hanem valami mas vagy nem is letezik)'' >/dev/stderr
fi
done
[Szerkesztve]DRM is theft
-
-
dabadab
titán
Nem teljesen. A bash az eredeti sh tovabbfejlesztett valtozata, sokkal tobb feature-rel. Eleg sok modern rendszeren a /bin/sh igazabol link a bashra, viszont erre vonatkozolag semmi garancia nincs, igy ha parancsvegrehajtonak az sh-t jeloli meg az ember, akkor nem illik bash feature-oket hasznalni.
A sed meg, roviden elmagyarazva, egy stream editor Vagyis arra jo, hogy ha van egy streamed, akkor azon, a sajat scriptnyelven megadott szerkeszteseket vegre tud hajtani - a gyakorlatban az esetek nagy reszeben search'n'replace feladatokra hasznaljak, de ennel sokkal tobbet tud.DRM is theft
-
ngabor2
nagyúr
ez a szkriptelés folyton kifog rajtam...
alapszitu: [link]. első lépésben megpróbáltam volna a /var/mail/mdir/cur/1176832301.000002.mbox\:2\, nevet átalakítani, pl. csak a 2. tagot megtartani, mert csak abban különbözik.
a find . -type f -print ki is írja őket sorban, ezután fűzve a cut -d. -f3 kivágja a megfelelő részt. csakhogy nem tudom megcsinálni, hogy az eredeti név is megmaradjon, és át is tudjam nevezni.
igaz, ezzel a lényegtől kanyarodok el, procmaillel kellene ezeket a file-okat megetetni, hogy szépen helyérepakolja őket a rendszer (elég szép hosszú a .procmailrc-m...). kifogytam az ötletekből. -
[sultan]
tag
valaki tudna segíteni abban, hogyan lehet egy processzt x ideig üzenetsoron várakoztatni
ipc -
GD
őstag
üdv!
kis béna scriptemhez kérek ránézős ellenőrzést
#!/bin/sh
raid=`/sbin/mdadm --detail /dev/md0 | grep ''Failed'' |cut -c19`
if test $raid -eq 0
then echo ''a Raid1 tömb (/dev/sda + /dev/sdb) *samsung vinyók* HIBÁTLAN!!!''
else echo ''valami nem jó , ERROR!!!''
fi
kérdés: ha a 0 nem nulla, akkor az else ág biztosan lefut e? nehogy csalóka biztonságba ringassam magam...
[Szerkesztve] -
snowflake
tag
A kérdésedre a válasz igen, bár vannak néha csodák ;)
Szvsz felesleges logolni azt, ha nincs hibás diszk, érdemesebb csak a hibát, és ekkor egy mailben elküldeni a reportot is:
#!/bin/sh
raid=`/sbin/mdadm --detail /dev/md0 | grep ''Failed'' |cut -c19`
if [ $raid -ne 0 ]; then
/sbin/mdadm --detail /dev/md0 | mail -s ''RAID HIBA!'' ahova@akarod.akarmi
fi -
snowflake
tag
Új hozzászólás Aktív témák
- Eredeti Windows! Digital Doctor Számítógép Szerviz
- Bitdefender Total Security 3év/3eszköz! - "Tökéletes védelem most kedvező áron..."
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- Microsoft licencek a legolcsóbban - UTALÁSSAL IS AUTOMATIKUS KÉZBESÍTÉS - Windows és Office
- AKCIÓ! - STEAM kulcsok /Anuchard, Aragami, Children of Morta, stb. - 2024.04.17.