Δημοσιεύτηκε: 20 Αύγ 2008, 01:06
από sudobash
Φίλε The_Mentor, πολύ καλό το script σου... απλά έχω μια παρατήρηση... επειδή κάθε μέρα παίρνει backup με το όνομα της τρέχουσας ημέρας και έτσι αντικαθιστά το αρχείο της προηγούμενης βδομάδας ίδιας μέρας, αν κάποια μέρα προκύψει το οποιοδήποτε λάθος στο backup, εσύ θα δεις κανονικά εκεί το αρχείο αλλά δε θα ξέρεις ποιας ημερομηνίας είναι. Οπότε καλό θα ήταν στο script να προσθέτει στο όνομα την ημερομηνία και όχι την ημέρα απλά. Και στο τέλος να διαγράφει ότι αρχείο βρίσκει και είναι παλαιότερο των 7 ημερών.

Οπότε μια μικρή παραλλαγή στο script σου θα μπορούσε να είναι η εξής:

Κώδικας: Επιλογή όλων
#!/bin/sh
############################################
#
# (Info about)
#
############################################
#
# (Date Installed)
#
############################################
#
# (Other info about editing etc)
#
############################################
# files to backup.
backup_files="/home /var/www /etc /root /boot /opt"

# Where to backup to.
dest="/media/disk/backup"

# Create archive filename.
day=$(date +%Y-%m-%0e)
hostname=$(hostname -s)
archive_file="$hostname-$day.tgz"

# Print start status message.
echo "Backing up $backup_files to $dest/$archive_file"
date

# Backup the files using tar.
tar czf $dest/$archive_file $backup_files

# Print end status message.
echo "Backup finished"
date

# Delete files older than <days> days
days=7
echo "Deleting files older than $days days"
find $dest -type f -name "$hostname*.tgz" -daystart -mtime +$days -exec rm -f {} \;
echo "Deleting finished"

# Long listing of files in $dest to check file sizes.
ls -lh $dest


(Φυσικά και όλα τα credits στον The_Mentor για το αρχικό script)