Εμφάνιση 1-6 από 6

Θέμα: Cron Job - backup

  1. #1
    Εγγραφή
    13-11-2002
    Περιοχή
    Αστρίς Θάσου
    Ηλικία
    45
    Μηνύματα
    4.627
    Downloads
    37
    Uploads
    1
    Τύπος
    Other / Άλλο
    Ταχύτητα
    350/100
    ISP
    Cosmote 4G - 5G - VDSL
    DSLAM
    ΟΤΕ - ΑΣΤΡΙΔΑ ΘΑΣΟΥ
    Router
    RB LHGG & ZTE MC 8020
    όποιος θέλει να με βοηθήσει:

    θέλω το μηχάνημα να κάνει backup τον φάκελο πχ. /hdd/disk1/data στον φάκελο /hdd/disk2/backup.tar κάθε μέρα πχ στις 3 το πρωί, αλλά να δημιουργεί κάθε μέρα διαφορετικό αρχείο και ανά 3 μέρες να σβήνει το παλιό ώστε να υπάρχουν πάντα 3 αντίγραφα.

    παίζει τέτοιο σενάριο?
    RB3011 & RB LHGG & ZTE MC8020 | ucm6202 | fritzbox 7390 | HP microserver gen8 | Raspberry pi 2 tvserver | ....και αρκετά ακόμη...

  2. #2
    Εγγραφή
    06-07-2005
    Περιοχή
    Νέα Υόρκη
    Ηλικία
    49
    Μηνύματα
    11.662
    Downloads
    6
    Uploads
    2
    Τύπος
    Cable
    Ταχύτητα
    300 Mbps down/10 Mbps up
    ISP
    Spectrum
    Φυσικά, φτιάχνεις ένα bash script που να σώνει το αρχείο με timestamp στο όνομα, και να τσεκάρει τα αρχεία μέσα στο φάκελο και να σβήνει τα παλιότερα από 3 μέρες, με βάση το timestamp που θα βρίσκει στο όνομα του αρχείου. Μη χρησιμοποιήσεις την ημερομηνία τροποποίησης του αρχείου, κατά προτίμηση. Στη συνέχεια, καλείς το bash script με cron.

  3. #3
    Εγγραφή
    20-12-2005
    Μηνύματα
    3.225
    Downloads
    4
    Uploads
    0
    Τύπος
    VDSL2
    Ταχύτητα
    49997/4997
    ISP
    ΟΤΕ Conn-x
    DSLAM
    ΟΤΕ - ΞΑΝΘΗ
    Router
    Speedport W 724V
    SNR / Attn
    24,4(dB) / (dB)
    Κώδικας:
    #!/bin/bash
    
    FDATE=$(date "+%Y%m%d-%H%M")
    tar cpf /hdd/disk2/backup-${FDATE}.tar /hdd/disk1/data > /dev/null
    find /hdd/disk2 -name "backup-*.tar" -ctime +3 -delete
    Μια πολύ απλοϊκή και αδόκιμη έκδοση είναι η παραπάνω. Δεν την δοκίμασα οπότε είναι πιθανό να μου ξεφεύγει κάτι.

    Κάνεις tar τα δεδομένα στην θέση που θέλεις και τα σώζεις με format backup-2017-03-03-1442.tar.
    Έπειτα η find βρίσκει όλα τα αρχεία που πειράχθηκαν τουλάχιστον 3 ημέρες πριν (λόγω στρογγυλοποίησης βρίσκει αρχεία που πειράχθηκαν μίνιμουμ 4 ημέρες πριν) και τα σβήνει. Επειδή το cron job τρέχει 1 φορά την ημέρα, τα τρία τελευταία αρχεία θα είναι αυτά που δημιουργήθηκαν μέσα σε τρεις ημέρες.

    Όπως σου επέστησε την προσοχή ο tsigarid, αυτός ο τρόπος με την ημερομηνία δεν είναι δόκιμος για πολλούς λόγους. Μπορεί για παράδειγμα μια φορά να είναι κλειστό το pc και να μην τρέξει το cron job οπότε σε 3 ημέρες να υπάρχουν 2 αρχεία ή μπορεί να πειράξεις τις άδειες σε ένα παλιό αρχείο και να αλλάξει η ημερομηνία του και να φαίνεται ως πιο καινούριο από ό,τι είναι και άλλα τέτοια αλλά είναι το πιο απλό που μπορείς να κάνεις.
    "I like offending people, because I think people who get offended should be offended" - Linus Torvalds

    "Παλιά είχαμε φτωχούς οι οποίοι ζούσανε σε φτωχογειτονιές. Τώρα, η οικονομικά δυσπραγούσα τάξη
    κατέχει στέγες υποδεέστερης ποιότητας σε υποβαθμισμένα αστικά κέντρα" - George Carlin
    Γα.... την πολιτική ορθότητα.

  4. #4
    Εγγραφή
    11-03-2005
    Μηνύματα
    7.448
    Downloads
    24
    Uploads
    0
    Τύπος
    ADSL OTE
    Ταχύτητα
    24576/1024
    ISP
    OTEnet
    DSLAM
    ΟΤΕ - ΚΕΡΑΜΕΙΚΟΣ
    Router
    CISCO Systems K9 SMB
    Καλήμερα παιδιά ...

    Εχω ένα script bash το οποίο αφού κάνει εργασίες αρχικές αρχίζει και καλεί κάποια άλλα script αλλά σε background δηλαδή με το & στο τέλος !
    Αφού τελειώσουν τα εσωτερικά Script πρέπει να γίνουν κάποιες άλλες εργασίες.... Πριν από αυτές τις εργασίες έχω βάλει ένα wait με σκοπό να πάει παρακάτω αφού τελειώσουν τα εσωτερικά .sh ... Εϊναι σωστό ...

    Η δομή έιναι έτσι

    #!/bin/bash
    script1.sh &
    script2.sh &

    wait

    script3.sh

    Αν και δείχνει να δουλεύει εγώ δεν χαίρομαι και πολύ ότι είναι σωστό .... Υπάρχει καλύτερος εναλλακτικός τρόπος..? Σωστά το κάνω ...
    Βασικά θέλω να τρέχουν τα εσωτερικά παράλληλα και μόλις τελειώσουν όλα να πάει στο script3...

    - - - Updated - - -

    wait [n ...]
    Wait for each specified process and return its termination sta-
    tus. Each n may be a process ID or a job specification; if a
    job spec is given, all processes in that job's pipeline are
    waited for. If n is not given, all currently active child pro-
    cesses are waited for, and the return status is zero. If n
    specifies a non-existent process or job, the return status is
    127. Otherwise, the return status is the exit status of the
    last process or job waited for.

    Μάλλον είναι σωστό ...με σκέτο wait...

  5. #5
    Εγγραφή
    21-03-2008
    Ηλικία
    36
    Μηνύματα
    9.889
    Downloads
    8
    Uploads
    2
    Τύπος
    VDSL2
    Ταχύτητα
    51200/5120
    ISP
    Nova
    Router
    VMG8623-T50B & Debian
    Με το $! παίρνεις το PID της πιο πρόσφατης διεργασίας που πήγε στο background. Αυτό μπορείς να το αξιοποιήσεις έτσι:

    Κώδικας:
    #!/bin/bash
    
    script1.sh &
    pid1=$!
    
    script2.sh &
    pid2=$!
    
    wait $pid1 $pid2
    
    script3.sh
    Αλλά και το σκέτο wait φαίνεται να είναι σωστό εδώ.
    - Κάνετε τη δουλειά σας γρήγορα, αξιόπιστα, με ασφάλεια, χωρίς τεχνητούς περιορισμούς και δωρεάν με το Linux.
    - Οι δίσκοι χαλάνε! Σκεφτείτε τα αρχεία σας πριν την πατήσετε. Κάνετε τακτικά backup.

  6. #6
    Εγγραφή
    11-03-2005
    Μηνύματα
    7.448
    Downloads
    24
    Uploads
    0
    Τύπος
    ADSL OTE
    Ταχύτητα
    24576/1024
    ISP
    OTEnet
    DSLAM
    ΟΤΕ - ΚΕΡΑΜΕΙΚΟΣ
    Router
    CISCO Systems K9 SMB
    Παράθεση Αρχικό μήνυμα από Simpleton Εμφάνιση μηνυμάτων
    Με το $! παίρνεις το PID της πιο πρόσφατης διεργασίας που πήγε στο background. Αυτό μπορείς να το αξιοποιήσεις έτσι:

    Κώδικας:
    #!/bin/bash
    
    script1.sh &
    pid1=$!
    
    script2.sh &
    pid2=$!
    
    wait $pid1 $pid2
    
    script3.sh
    Αλλά και το σκέτο wait φαίνεται να είναι σωστό εδώ.
    Βασικά δεν μου έκανε κάτι λάθος σαν αποτέλεσμα ...απλά δεν είμαι σίγουρος ότι το κάνω καλά ..γιατί έχω διαβάσει διάφορα στο google και το σε σχέση με το man !

    Εσείς λέτε ότι είναι σωστό ... Πάντως παλικάρια αυτή η λογική γλυτώνει πολύ χρόνο εκτέλεσης συνολικό !

Παρόμοια Θέματα

  1. Μηνύματα: 31
    Τελευταίο Μήνυμα: 06-02-17, 21:12
  2. Microsoft Office 2016 + Facebook backup
    Από andreasp στο φόρουμ Software γενικά
    Μηνύματα: 7
    Τελευταίο Μήνυμα: 10-10-16, 23:50
  3. Backup FreePbx από sd κάρτα σε sd κάρτα
    Από Telchinios στο φόρουμ Voice over IP (VoIP) Sip/Iax Hardware
    Μηνύματα: 4
    Τελευταίο Μήνυμα: 29-09-16, 14:38
  4. Ποιό πρόγραμμα χρησιμοποιείτε για backup?
    Από NeuroN στο φόρουμ Software γενικά
    Μηνύματα: 7
    Τελευταίο Μήνυμα: 12-05-16, 00:35

Bookmarks

Bookmarks

Δικαιώματα - Επιλογές

  • Δεν μπορείτε να δημοσιεύσετε νέα θέματα
  • Δεν μπορείτε να δημοσιεύσετε νέα μηνύματα
  • Δεν μπορείτε να αναρτήσετε συνημμένα
  • Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας
  •  
  • Τα BB code είναι σε λειτουργία
  • Τα Smilies είναι σε λειτουργία
  • Το [IMG] είναι σε λειτουργία
  • Το [VIDEO] είναι σε λειτουργία
  • Το HTML είναι εκτός λειτουργίας