Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλημέρα!

 

Όντας εντελώς αρχάριος προσπαθώ να φτιάξω ένα σκριπτάκι που να σκανάρει κάποιους συγκεκριμένους υποφακέλους, να διαβάζει τα 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 (αργότερα μπορεί να το τρέχω στον σέρβερ που δεν θυμάμαι αυτή τη στιγμή ποια έκδοση έχει αλλά δεν υπάρχει πρόβλημα στην τελική το κάνω τοπικά)

 

Ευχαριστώ πολύ εκ των προτέρων!

Δημοσ.

Ναι το είδα αυτό και τα άλλαξα, αλλά πάλι δεν τα ζιπάρει και δεν βγάζει κάποιο μήνυμα. Επίσης άλλαξα το version σε version.txt...

Δημοσ.

Από τα λίγα που ξέρω από 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.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...