McNulty Δημοσ. 19 Ιουλίου 2012 Δημοσ. 19 Ιουλίου 2012 Καλημέρα! Όντας εντελώς αρχάριος προσπαθώ να φτιάξω ένα σκριπτάκι που να σκανάρει κάποιους συγκεκριμένους υποφακέλους, να διαβάζει τα 6 αρχεία που είναι στον καθένα και να τα ζιπάρει (αφού διαβάσει ένα αρχείο version.txt). Μετά από βοήθεια έχω καταλήξει εδώ: >#!/bin/sh DST_DIR=/home/myname/Output/zipped SRC_DIR=/home/myname/Input/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/Proc_Sat-1-${DT}-S515-V${version}-OUNCL-P${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 # tar zcvfp Proc_Sat-1-${DT}-S515-V${version}-OUNCL.tar.gz Output/total # argotera na zipparei ola ta zipparismena se 1 tgz Αλλά δεν τα ζιπάρει. (δεν βγάζει μηνύματα λάθους, και έχω δώσει chmod 777 σε όλους) (zcvfp είτε zcvpf ίδιο αποτέλεσμα) Any ideas? To tree -p είναι αυτό αν βοηθάει (αργότερα θα έχει περισσότερα αρχεία βέβαια): >├── [drwxr-xr-x] Desktop ├── [drwxr-xr-x] Documents ├── [drwxr-xr-x] Downloads ├── [drwxrwxrwx] Parent │ ├── [drwxrwxrwx] Vol1 │ │ ├── [drwxr-xr-x] D009 │ │ │ ├── [-rw-r--r--] D009.gif │ │ │ ├── [-rw-r--r--] D009.html │ │ │ ├── [-rw-r--r--] D009.mdb │ │ │ ├── [-rw-r--r--] D009.mpp │ │ │ ├── [-rw-r--r--] D009.vsd │ │ │ ├── [-rw-r--r--] D009.xls │ │ │ └── [-rw-r--r--] version │ │ ├── [drwxr-xr-x] D010 │ │ │ ├── [-rw-r--r--] D010.gif │ │ │ ├── [-rw-r--r--] D010.html │ │ │ ├── [-rw-r--r--] D010.mdb │ │ │ ├── [-rw-r--r--] D010.mpp │ │ │ ├── [-rw-r--r--] D010.vsd │ │ │ ├── [-rw-r--r--] D010.xls │ │ │ └── [-rw-r--r--] version │ │ ├── [drwxr-xr-x] S060 │ │ │ ├── [-rw-r--r--] S060.gif │ │ │ ├── [-rw-r--r--] S060.html │ │ │ ├── [-rw-r--r--] S060.mdb │ │ │ ├── [-rw-r--r--] S060.mpp │ │ │ ├── [-rw-r--r--] S060.vsd │ │ │ ├── [-rw-r--r--] S060.xls │ │ │ └── [-rw-r--r--] version │ │ └── [drwxr-xr-x] T020 │ │ ├── [-r--r--r--] T020.gif │ │ ├── [-r--r--r--] T020.html │ │ ├── [-r--r--r--] T020.mdb │ │ ├── [-r--r--r--] T020.mpp │ │ ├── [-r--r--r--] T020.vsd │ │ ├── [-r--r--r--] T020.xls │ │ └── [-rw-r--r--] version │ ├── [drwxr-xr-x] Vol2 │ │ └── [drwxr-xr-x] D022 │ │ ├── [-rw-r--r--] D022.gif │ │ ├── [-rw-r--r--] D022.html │ │ ├── [-rw-r--r--] D022.mdb │ │ ├── [-rw-r--r--] D022.mpp │ │ ├── [-rw-r--r--] D022.vsd │ │ ├── [-rw-r--r--] D022.xls │ │ └── [-rw-r--r--] version │ ├── [drwxr-xr-x] Vol3 │ │ ├── [drwxr-xr-x] D019 │ │ │ ├── [-rw-r--r--] D019.gif │ │ │ ├── [-rw-r--r--] D019.html │ │ │ ├── [-rw-r--r--] D019.mdb │ │ │ ├── [-rw-r--r--] D019.mpp │ │ │ ├── [-rw-r--r--] D019.vsd │ │ │ ├── [-rw-r--r--] D019.xls │ │ │ └── [-rw-r--r--] version │ │ └── [drwxr-xr-x] T010 │ │ ├── [-r--r--r--] T010.gif │ │ ├── [-r--r--r--] T010.html │ │ ├── [-r--r--r--] T010.mdb │ │ ├── [-r--r--r--] T010.mpp │ │ ├── [-r--r--r--] T010.vsd │ │ ├── [-r--r--r--] T010.xls │ │ └── [-rw-r--r--] version │ └── [drwxr-xr-x] Vol4 │ ├── [drwxr-xr-x] P102 │ │ ├── [-rw-r--r--] P102.gif │ │ ├── [-rw-r--r--] P102.html │ │ ├── [-rw-r--r--] P102.mdb │ │ ├── [-rw-r--r--] P102.mpp │ │ ├── [-rw-r--r--] P102.vsd │ │ ├── [-rw-r--r--] P102.xls │ │ └── [-rw-r--r--] version │ └── [drwxr-xr-x] TTNC020 │ ├── [-rw-r--r--] Thumbs.db │ ├── [-r--r--r--] T020.gif │ ├── [-r--r--r--] T020.html │ ├── [-r--r--r--] T020.mdb │ ├── [-r--r--r--] T020.mpp │ ├── [-r--r--r--] T020.vsd │ ├── [-r--r--r--] T020.xls │ └── [-rw-r--r--] version ├── [-rwxrwxrwx] script ├── [-rwxrwxrwx] script1~ ├── [drwxrwxrwx] Output │ ├── [drwxr-xr-x] total │ └── [drwxr-xr-x] zipped Στο λάπτοπ μου που το τεστάρω τοπικά έχει ubuntu (αργότερα μπορεί να το τρέχω στον σέρβερ που δεν θυμάμαι αυτή τη στιγμή ποια έκδοση έχει αλλά δεν υπάρχει πρόβλημα στην τελική το κάνω τοπικά) Ευχαριστώ πολύ εκ των προτέρων!
prekageo Δημοσ. 19 Ιουλίου 2012 Δημοσ. 19 Ιουλίου 2012 Δε βλέπω κανένα αρχείο που να ταιριάζει στο "*_v${version}".
McNulty Δημοσ. 19 Ιουλίου 2012 Μέλος Δημοσ. 19 Ιουλίου 2012 Ναι το είδα αυτό και τα άλλαξα, αλλά πάλι δεν τα ζιπάρει και δεν βγάζει κάποιο μήνυμα. Επίσης άλλαξα το version σε version.txt...
Apatewna Δημοσ. 19 Ιουλίου 2012 Δημοσ. 19 Ιουλίου 2012 Από τα λίγα που ξέρω από UNIX scripting: α) είσαι σιγουρος ότι το !#/bin/sh σε καλύπτει? Μήπως δηλαδή κάποιες εντολές δεν εκτελούνται στο κέλυφος αυτό β) >tar zcvfp $DST_DIR/Proc_Sat-1-${DT}-S515-V${version}-OUNCL-P${dirpath}-${cleanname}.tgz $f > /dev/null 2>&1 Αυτό " > /dev/null 2>&1 " σημαίνει ότι παιρνει το Standard Output και το Standard Error και τα στέλνει στο /dev/null δηλαδή εξαφανίζει οτιδήποτε μηνύματα πιθανόν να εμφανίζει το "tar". Σε πρώτη φάση μπορείς να αφαιρέσεις αυτή την ανακατεύθυνση και να τρέξεις το script φυσιολογικά για να δεις κάποια μηνύματα. γ) Αν θυμάμαι καλά το tar δεν δημιουργεί συμπιεσμένο αρχείο εαν δεν έχει σωστό input.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα