1. leht 1-st
automaatne failide kustutaja
Postitatud: 08.05.2007, 22:45
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.
Postitatud: 08.05.2007, 22:52
Postitas obundra
tmpwatch näiteks.
Postitatud: 08.05.2007, 22:53
Postitas Qilaq
Postitatud: 08.05.2007, 23:48
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
Postitatud: 09.05.2007, 08:25
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.
Postitatud: 09.05.2007, 09:02
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.
Postitatud: 09.05.2007, 09:51
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)
Postitatud: 09.05.2007, 10:01
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.
Postitatud: 09.05.2007, 10:54
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
Postitatud: 09.05.2007, 11:28
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.
Postitatud: 09.05.2007, 13:17
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.
Postitatud: 09.05.2007, 13:30
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 ]
Postitatud: 09.05.2007, 15:02
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.
Postitatud: 09.05.2007, 15:40
Postitas priit
Jäta tühikud vahelt ära.
[(seeontühik)code ]kood[ /code ] =>