sziasztok.
abszolut nem tanulok és nem is tanultam sosem programozást, illetve semmi ehhez hasonlót.
saját magam sórakoztatom néha ezzel.
most egy olyan próblémába ütköztem, ami elég triviális, de mégsem tudom megoldani.
a lényeg az, hogy logokat különböző fájlokra bontok le, kulcsszó alapján. ezzel nincs is semmi probléma.
viszont szeretném, ha x idő múltán a régebbi fájlok törlődnének. ezt nem tudom megoldani.
többféleképpen próbálkoztam, de nem jártam eredménnyel.
az alaphelyzet:
#!/bin/bash
set -e
DATE_LOG=`date +%Y%m%d`
# sshd log
cat /var/log/auth.log | grep sshd 2>&1 > /home/sumo/sec/log/sshd_auth_${DATE_LOG}.log
a legutolsó próbálkozásom ez volt:
DATE_RM=`expr ${DATE_LOG} - 7`
így megkapom ugyan eredménynek $DATE_LOG - 7 -et helyesen (legalábbis az echo $DATE_RM kiírja az értéket), de a $DATE_RM változót mégsem tudom használni. egyszerűen létre szerettem volna hozni próbaképp egy fájlt így:
touch /home/sumo/sec/log/teszt_${DATE_RM}.txt
de nem ment.
legyetek szívesek elindítani a helyes irányba:)
előre is köszi: sumo
- 4672 megtekintés
Hozzászólások
Az új szabvány szerint a visszafeléaposztrofok (AltGr+7) helyett a $(KIFEJEZES)-et használjuk. Egyébként nem kell a ${} a DATE_RM köré:
DATE_RM=$(expr $DATE_LOG - 7)
____________________________________________________________
Slackware 12/current - linux-2.6.23.12-olorin - KDE 3.5.8
- A hozzászóláshoz be kell jelentkezni
grrr lol, milyen új szabvány, miről maradtam le?
jó az a sor úgy, ahogy van.
- A hozzászóláshoz be kell jelentkezni
Nem azt mondtam, hogy nem jó csak elavult:
Lemaradtál. A POSIX szabvány a $(command) szintaxisú kifejezés:
bash obsolete scripting syntax
Üdv!
____________________________________________________________
Slackware 12/current - linux-2.6.23.12-olorin - KDE 3.5.8
- A hozzászóláshoz be kell jelentkezni
a test és a [ is beépített parancs, pedig szerintem - nem emlékszem biztosan - a 2.05b-ben még nem volt az. Ha
deprecated, akkor miért builtin? Minden rendszeren ott van a /bin/ vagy a /usr/bin/ könyvtárban...
Ez nem is a bash hivatalos oldala, nem a man page... Valaki szerint deprecated. Na és?
- A hozzászóláshoz be kell jelentkezni
ok, köszi ez rendben is volna, de az alaphelyzet még mindig nem változik:)
::sumo.conf::
- A hozzászóláshoz be kell jelentkezni
Szia!
Nekem ment úgy, ahogyan Te írtad.
- A hozzászóláshoz be kell jelentkezni
Egy lehetseges megoldas...
# letrehozza a sajat fajlodat
grep "sshd" /var/log/auth.log >"/home/sumo/sec/log/sshd_auth_$(date +%Y%m%d).log"
# torli az 5 napnal regebbi fajlokat
find /home/sumo/sec/log -name "sshd_auth_*" -mtime +5 -exec rm {} \;
--
maszili
- A hozzászóláshoz be kell jelentkezni
köszi szépen, ez tökéletesen működik.
::sumo.conf::
- A hozzászóláshoz be kell jelentkezni
Ha elfogadsz tolem egy jotanacsot...
A datum egy komplikalt adat! :) Ha szeretnel egy korabbi vagy kesobbi datum ertekevel szamolni akkor azt sohasem ugy ahogy fentebb probaltad.
Mert mi van akkor ha...
20080103 elott 5 nappal?
echo $((20080103-5))
20080098 = 2008-00-98 ??? nulladik ho 98-adika?
Itt egy pelda hogyan vonjunk ki egymasbol helyesen ket datumot...
echo $( date +%d -d @$(( $(date +%s -d 2008-01-08) - $(date +%s -d 2008-01-03) )) )
ez egyben pelda arra is, hogy erdemesebb a $(parancs) megoldast hasznalni mert igy egymasba agyazhatok a parancsok kimenetei.
--
maszili
- A hozzászóláshoz be kell jelentkezni
köszi az útbaigazítást, sokat segített:)
::sumo.conf::
- A hozzászóláshoz be kell jelentkezni
A másik is egymásba ágyazható: echo `ls -l \`ls -A | head -n1\` `
Viszont nem szeretem, mert nem elég átlátható (önmagában is átláthatatlan, így meg még inkább az)
- A hozzászóláshoz be kell jelentkezni
Sziasztok
Ezt lehet szebben csinálni?
AFA="127"
echo "$(echo "scale=0; 1000 * $AFA/100" | bc) Ft"
1270 Ft
Egyébként:
AFA="1.27"
echo "$(echo "scale=0; 1000 * $AFA" | bc) Ft"
1270.00 Ft
Gondolom az 1.27 miatt lesz két tizedesjegy.
Ezen a scale=0 sem segít.
Ilyenkor nem lehet lebeszélni a .00 -ról?
- A hozzászóláshoz be kell jelentkezni
Nagyon undorito leszek.
AFA=1.27
echo $AFA | awk '{ print $1 * 1000 " Ft" }'
AFA=127
echo $AFA | awk '{ print 1000 * $1 / 100 " Ft" }'
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Óh, tényleg, az awk. 1-2x használtam már így, de most nem jutott eszembe. :)
Köszi
- A hozzászóláshoz be kell jelentkezni
printf %5.0f $(bc <<<"1000 * 1.27")
- A hozzászóláshoz be kell jelentkezni