Δημοσιεύτηκε: 16 Ιούλ 2012, 10:55
clepto έγραψε:κάπου χάνομαι...κάθε φάκελος έχει έξι αρχεία; είναι standard αυτό;
οπότε εσύ θες για κάθε φάκελο/υποφάκελο που υπάρχει πχ στον /Documents/ να βρίσκεις τα αρχεία και να συμπιέζει;
Ακριβώς. Έξι αρχεία συν το version.txt (αν καταλήξω ότι με βολεύει περισσότερο από το να δημιουργώ filename_v2, filename_v3 etc.)
Qdata έγραψε:Θέλεις να συμπιέζεις μόνο τα 6 αρχεία που υπάρχουν μέσα στο Documents/Vol1/A/Finalfolder1_v1; Επίσης θέλεις να συμπιέζεις μόνο τα αρχεία με την μεγαλύτερη έκδοση; Δηλαδή αν υπάρχουν πολλά filename_v1 και πολλά filename_v2, θέλεις να συμπιέζεις μόνο τα v2;
Μπορώ να σε βοηθήσω αν θέλεις με ένα python script.
Ακριβώς. Συμπιέζω μόνο τα 6 αρχεία. Και στο τέλος θα συμπιέσω και όλα τα συμπιεσμένα σε ένα και μοναδικό .tgz πάλι (έτσι θέλουν).
Κάθε βοήθεια δεκτή
pmav99 έγραψε:Βασικά το script που θες γιατί το χρειάζεσαι? Δουλειά, εργασία στη σχολή, άλλο?
Έχεις περιορισμούς στο τι γλώσσα πρέπει να γραφεί?
Άνέβασε και τον κώδικα που έχεις γράψει.
Δεν έχει περιορισμούς στη γλώσσα, απλά θα βόλευε περισσότερο το script σε UNIX. Το θέμα είναι αν προλαβαίνω (ως απόλυτα αρχάριος) να το κάνω σε δύο βδομάδες (έχει και άλλα δύο βήματα, πιο δύσκολα).
Για δουλειά το θέλω, δεν ασχολούμαι με προγραμματισμό, ούτε οι άλλοι στο γραφείο, απλά είπα να ψάξω μήπως μπορώ να το κάνω αυτό γιατί θα βοηθήσει πάρα πολύ μια παράδοση που έχουμε σε δύο βδομάδες.
Μία άλλη βοήθεια που εισέπραξα είναι το παρακάτω:
- Κώδικας: Επιλογή όλων
#!/bin/sh
DST_DIR=/tmp/Parent/backup
SRC_DIR=/tmp/Parent/Vol*/*
VERSION_FILE=version.txt
DT=`date +%Y%m%d%H`
for d in $SRC_DIR; do
cd $d
if [ -e $VERSION_FILE ]; then
version=`cat $VERSION_FILE`
if [ "$version" != "" ]; then
for f in `find . -path "*_v${version}"`; do
dirpath=`echo $d | rev | cut -d / -f1,2 | rev | sed 's/\//-/'`
cleanname=`echo $f | cut -d / -f 2 | cut -d _ -f 1`
tar zcvfp $DST_DIR/PR-1-${DT}-V${version}-${dirpath}-${cleanname}.tgz $f > /dev/null 2>&1
if [ $? -ne 0 ]; then
echo "error in backup" # add better error handling here
fi
done
fi
fi
done
Ευχαριστώ και πάλι για τα σχόλιά σας!