automaatne failide kustutaja

Linuxi tarkvaraliste küsimustega seotud foorum

Moderaator: Moderaatorid

Vasta
Kasutaja avatar
kustukas
Pingviini külastaja
Pingviini külastaja
Postitusi: 34
Liitunud: 30.03.2007, 19:50

automaatne failide kustutaja

Postitus Postitas kustukas »

Olen otsinud sellist skripti jupikest, mida lasta käima cron abil ja mis kustutaks failid, mis on teatud päevi vanad. Ütleme, et kaks päeva. Seda oleks tegelikult vaja lihtsalt selleks, et backup failid automaatselt kustuksid.

Win jaoks on mul tegelikult selline exe olemas kui kellegil huvi peaks olema. Võin lahkesti jagada. Ise kirjutatud ja vabavara.
Kasutaja avatar
obundra
Vana Pingviin
Vana Pingviin
Postitusi: 1213
Liitunud: 04.08.2005, 03:00

Postitus Postitas obundra »

tmpwatch näiteks.
Kasutaja avatar
Qilaq
Vana Pingviin
Vana Pingviin
Postitusi: 1219
Liitunud: 25.10.2006, 18:58

Postitus Postitas Qilaq »

Tõlkija (Mandriva Linux, KDE, Scribus, CUPS)
Kasutaja avatar
johnsmith
Vana Pingviin
Vana Pingviin
Postitusi: 714
Liitunud: 24.07.2006, 23:33

Postitus Postitas johnsmith »

Sa tahad lihtsalt kuskilt kaustast 2 päeva vanad backupid kustutada ?
Ma lahendasin selle niimoodi, et kui mul on teatud arv backupe siis sisenen for loopi mis käib läbi kõik failid antud kaustast ja kustutab lihtsalt kõige vanema backupi ära. Kui näiteks iga päev teha backupe siis kui seda rullida cronis üle päeva siis kustub vanem fail ära.

for DATA in `ls $BACKUPID`;
do
if [ $TEMP == 0 ]
then
TEMP=$DATA
elif [ $BACKUPID/$TEMP -nt $BACKUPID/$DATA ]
then
TEMP=$DATA
fi
done
rm -f $BACKUPID/$TEMP

Kui teatud vanus on vajalik siis tuleb kasutada gnu find utiliiti. Samas tuleb arvestada, et find ei arvesta faili loomisaega vaid seda millal teda on muudetud.
Ka findi kasutades ei tohiks olla raske kirjutada sellist skripti tuleb ainult määrata ära parameetrina kust ta otsib neid faile muidu kustuvad kõik failid ära mis on 2 päeva vanad
"Thinking is the hardest work there is, which is probably the reason why so few engage in it" - Henry Ford
Kasutaja avatar
kustukas
Pingviini külastaja
Pingviini külastaja
Postitusi: 34
Liitunud: 30.03.2007, 19:50

Postitus Postitas kustukas »

Mnjah kahjuks nii tark ma veel pole, et asja ise kokku paneks teiepoolt antud võimalustest. Muidugi aitäh tele kiirete vastuste eest.

johnsmith sinu versioon täiesti sobiks kui ma veel nüüd oskaks sinu versioonile ka muutujad ette anda ja selle tööle panna. Lihtsalt cronis paneks ta vastavalt iga tehtava backup töö järel jooksma ka kustutama vana faili.
Kasutaja avatar
kalamaja
Pingviini külastaja
Pingviini külastaja
Postitusi: 21
Liitunud: 08.07.2005, 03:00

Postitus Postitas kalamaja »

Kood: Vali kõik

#!/bin/bash
find /kaust/kust/otsida -type f -mtime +2 -exec rm -r {} \; > /dev/null
Äkki sobib midagi sellist. Antud näide kustutab siis kõik failid, mis on vanemad kui 2x24 tundi.
Kasutaja avatar
margo704
Pingviini aktivist
Pingviini aktivist
Postitusi: 242
Liitunud: 30.08.2005, 03:00

Postitus Postitas margo704 »

Aga kui tahad kuupäeva järgi faile kontrollida, siis faili kuupäeva ja praeguse kuupäeva kujul aaaa-kk-pp saab teada näiteks sedasi:

Kood: Vali kõik

failikuupaev=$(stat -c %y failinimi)
failikuupaev=${failikuupaev%% *}
praegunekuupaev=$(date +%Y-%m-%d)
Kasutaja avatar
kustukas
Pingviini külastaja
Pingviini külastaja
Postitusi: 34
Liitunud: 30.03.2007, 19:50

Postitus Postitas kustukas »

Ei kontrollida pole mul vaja. Lihtsalt kustutada failid, mis on vanemad kui 2 päeva (see aeg on hetkel lihtsalt optimaalne).
kalamaja kirjutas:

Kood: Vali kõik

#!/bin/bash
find /kaust/kust/otsida -type f -mtime +2 -exec rm -r {} \; > /dev/null
Äkki sobib midagi sellist. Antud näide kustutab siis kõik failid, mis on vanemad kui 2x24 tundi.
Testin sinu antud koodi jupikest. Aga saan ma õigesti aru, et selle +2 muutmisel näiteks +30-ks kustutatakse ära failid, mis on vanemad kui 30 päeva? Küsisin seda lihtsalt juhuks, et kui näiteks on vaja suuremat päevade arvu kasutada.
Kasutaja avatar
kalamaja
Pingviini külastaja
Pingviini külastaja
Postitusi: 21
Liitunud: 08.07.2005, 03:00

Postitus Postitas kalamaja »

kustukas kirjutas: Aga saan ma õigesti aru, et selle +2 muutmisel näiteks +30-ks kustutatakse ära failid, mis on vanemad kui 30 päeva?
Just. man find on ka abiks
Kasutaja avatar
margo704
Pingviini aktivist
Pingviini aktivist
Postitusi: 242
Liitunud: 30.08.2005, 03:00

Postitus Postitas margo704 »

kustukas kirjutas:Ei kontrollida pole mul vaja. Lihtsalt kustutada failid, mis on vanemad kui 2 päeva (see aeg on hetkel lihtsalt optimaalne).
Ma mõtlesin selles mõttes, et kontrollid faili kuupäeva ja kui on vanem, kui vaja, siis kustutad ära.

Eilse kuupäeva saab näiteks käsuga: date -d '1 day ago' +%Y-%m-%d
Ja siis kontrollid, kui on vanem kui eilne, siis kustutad ära.
Kasutaja avatar
johnsmith
Vana Pingviin
Vana Pingviin
Postitusi: 714
Liitunud: 24.07.2006, 23:33

Postitus Postitas johnsmith »

Ma panen oma loomingu ka siia, et oleks valikuvõimalust

Kood: Vali kõik

BACKUPID="/mingi/directory"
TEMP=0
BACKUPIARV=`ls -l $BACKUPID | wc -l`
PIISAVALT=siia tuleb mingi arv nt 4

if [ $BACKUPIARV == $PIISAVALT ]
for DATA in `ls $BACKUPID`;
do
if [ $TEMP == 0 ]
then
TEMP=$DATA
elif [ $BACKUPID/$TEMP -nt $BACKUPID/$DATA ]
then
TEMP=$DATA
fi
done
rm -f $BACKUPID/$TEMP 
fi
krt ma ei saa küll seda <code></code> tagisid tööle või teen ma midagi valesti......
Igatahes kui ma panen <code> siis sellisena ta ka mu postituses ilmub.
Viimati muutis johnsmith, 09.05.2007, 20:37, muudetud 3 korda kokku.
"Thinking is the hardest work there is, which is probably the reason why so few engage in it" - Henry Ford
Kasutaja avatar
sander85
Vana Pingviin
Vana Pingviin
Postitusi: 4361
Liitunud: 08.08.2005, 03:00

Postitus Postitas sander85 »

johnsmith kirjutas: krt ma ei saa küll seda <code></code> tagisid tööle või teen ma midagi valesti......
Igatahes kui ma panen <code> siis sellisena ta ka mu postituses ilmub.
see peaks siiski olema [ code ] ja [ /code ]
Pilt Pilt Pilt
Kasutaja avatar
johnsmith
Vana Pingviin
Vana Pingviin
Postitusi: 714
Liitunud: 24.07.2006, 23:33

Postitus Postitas johnsmith »

sander85 kirjutas:
johnsmith kirjutas: krt ma ei saa küll seda <code></code> tagisid tööle või teen ma midagi valesti......
Igatahes kui ma panen <code> siis sellisena ta ka mu postituses ilmub.
see peaks siiski olema [ code ] ja [ /code ]
Ma oskasin seda vanasti teha küll aga nüüd enam ei õnnestu. Ole hea ja vaata mis nüüd siis valesti on.
"Thinking is the hardest work there is, which is probably the reason why so few engage in it" - Henry Ford
priit
Vana Pingviin
Vana Pingviin
Postitusi: 521
Liitunud: 04.08.2005, 03:00

Postitus Postitas priit »

Jäta tühikud vahelt ära.
[(seeontühik)code ]kood[ /code ] =>

Kood: Vali kõik

kood
Vasta