|
| Backup-script Fra : Allan Johansen |
Dato : 01-05-02 11:20 |
|
Hej NG!
Jeg har lavet et lille backup-script, som kopierer visse conf-filer o.l.
over på et netværk-share.
Jeg har lavet det sådan at der bliver lavet en mappe for hver dag, som
henholdsvis hedder [dag][måned][år] (f.eks. 01052002). Det gør jeg med date
+%d%m%Y, hvilket fungerer fint nok.
Mit problem er så, at efterhånden bliver der jo oprettet en del mapper,
hvilket jo kommer til at fylde en del i længden.
Hvordan laver jeg en funktion, der sørger for at mapper der er en måned
gammel eller derover bliver slettet?
Evt. noget med: rm "mappe(r) der er ældre end XXXXXX"
Mvh. Allan
| |
Allan Joergensen (01-05-2002)
| Kommentar Fra : Allan Joergensen |
Dato : 01-05-02 10:55 |
|
Allan Johansen <AllanJ@post.cybercity.dk> wrote:
> Mit problem er så, at efterhånden bliver der jo oprettet en del mapper,
> hvilket jo kommer til at fylde en del i længden.
> Hvordan laver jeg en funktion, der sørger for at mapper der er en måned
> gammel eller derover bliver slettet?
find <backup dir> -maxdepth 0 -mtime 30 -type d -exec rm -rf "{}" \;
ville være mit bud, se man find for hvad de forskellige switches gør.
--
Allan Joergensen aka [DW] on eu.openprojects.net
"My personal philosophy is my music..." - Jimi Hendrix
| |
enrique (01-05-2002)
| Kommentar Fra : enrique |
Dato : 01-05-02 15:36 |
|
Yello
On Wed, 01 May 2002 11:54:33 +0200, Allan Joergensen wrote:
> Allan Johansen <AllanJ@post.cybercity.dk> wrote:
>
>> Mit problem er så, at efterhånden bliver der jo oprettet en del mapper,
>> hvilket jo kommer til at fylde en del i længden. Hvordan laver jeg en
>> funktion, der sørger for at mapper der er en måned gammel eller derover
>> bliver slettet?
Jeg har, dog _lidt_ bøvlet, lavet dette i mit backupscript:
# Set date and time vars
dato=`date --iso`
time=`date +%T`
# Set mount point of backup drive
mntpoint="/mnt/backup1/"
# Set name of subdir on the backdrive
backuppath="$mntpoint$dato"
function checkspace() {
if [[ `find $mntpoint200* -type d | grep -c '200.-..-..'` > 10 ]]; then # Find numbers of directorys matching the pattern '200*-**-**'
declare -a dirarray=(`find $mntpoint -type d -maxdepth 1 -print | grep '200*-**-**' | xargs echo`)
echo "Deleting oldest backup: ${dirarray[0]}"
rm -rf ${dirarray[0]}
if [ $? != 0 ]; then
echo "* Removeing ${dirarray[0]} failed!! exiting NOW! *"
exit 1
fi
fi
}
Men det virker ;)
--
Mvh. / Kind regards
Henrik Farre < enrique AT obel DOT auc DOT dk >
- If I were God, I would recompile the penguin with --enable-flying.
| |
John Smith (01-05-2002)
| Kommentar Fra : John Smith |
Dato : 01-05-02 16:13 |
|
> Mit problem er så, at efterhånden bliver der jo oprettet en del mapper,
> hvilket jo kommer til at fylde en del i længden.
> Hvordan laver jeg en funktion, der sørger for at mapper der er en måned
> gammel eller derover bliver slettet?
/bin/echo "Sletter alle filer aeldre end 3 dage"
/usr/bin/find /backup/unx-server/ -mtime +3 -name \* -print | /usr/bin/xargs
/bin/rm
Dog bliver mine backupfiler pakket med tar således, at backupfilerne dermed
ikke overstiger de der 3 dage. Men måske kan det kombineres med en option
mere på find med, at den kun skal kigge på biblioteker?
Mvh.
John.
| |
|
|