@akounadis
Το cron τα σπάει σε συστήματα με μεγάλο uptime. Ο χρήστης από ότι καταλαβαίνω δεν έχει 24/7 το pc ανοιχτό αλλά θέλει όταν ξεπεραστεί ένα χρονικό όριο να εκτελεί πάση θησία ένα script.
Μπορείς να βάλεις στην αρχή του script ένα χρονικό έλεγχο και να κρατά την τελευταία ώρα που εκτελέστηκε στο script ή να υπολογίζει την ώρα που θα εκτελεστεί την επόμενη φορά. Καλύτερα το δεύτερο να κάνεις.
Μετά στο ~/.bashrc στο τέλος μπορείς να βάλεις την εντολή που εκτελεί το script.
Έτσι κάθε φορά θα εκτελείτε το script θα ελέγχει αν ήρθε η ώρα να εκτελεστεί και θα εκτελείτε.
Τον έλεγχο μπορείς να το κάνεις στην αρχή του script βασιζόμενο σε αυτό (με την προϋπόθεση ότι είναι bash):
http://www.cyberciti.biz/faq/shell-scri ... ifference/Και στην εντολή:
- Κώδικας: Επιλογή όλων
date
Ο Αργόριθμος έχει ως εξής:
- Διάβασε ένα αρχείο που έχεις αποθηκευμένο την τελευταία φορά που εκτελέστηκε το script.
- Αν η διαφορά ώρας της ώρας που διάβασες με την τρέχουσα ώρα είναι θετική ή ίση με 0 τότε πάρε backup ειδάλλως μην πάρεις.
- Εφόσον πήρες το backup τότε υπολόγισε τον νέον χρόνο εκτέλεσης.
Έτσι κάθε φορά που κάνεις login στον χρόνο που θές (είτε τον έχει ξεπεράσει ή όχι) εκτελεί το script και αυτό αποφασίζει αν θα εκτελέσει το script.
Τον παραπάνω Αλγόριθμο μπορείς να το σπάσεις σε κομμάτια:
- Στο script που θα εκτελέι το backup
- Στο script που θα ελέγχει τον χρόνο και θα εκτελεί το πρώτο script.
Έτσι σου δίνει επέκταση και για άλλα πράγματα. Πχ. να ελέγχεις πότε θα εκτελεστούν critical scripts σε x χρόνο. Καθώς το script 2 να είναι σε άλλη γλώσσα από το script 1. πχ. το πρώτο σε bash και το δεύτερο σε php και στο .bsashrc καλείς στο δεύτερο.