Προγραματισμένη εκτέλεση Script  Το θέμα επιλύθηκε

...εγκαταστάσεις, αναβαθμίσεις, διαχείριση partitions, boot-loader, κλπ

Συντονιστής: adem1

Κανόνες Δ. Συζήτησης
Στην ενότητα αυτή γράφουμε θέματα/ προβλήματα μόνο για το UBUNTU ή τα παράγωγά του.

Προγραματισμένη εκτέλεση Script

Δημοσίευσηαπό RadwanGR » 08 Νοέμ 2015, 20:43

Xαίρετε, έχω φτιάξει ένα script το οποίο κάνει back-up τα αρχεία μου απ' το dropbox, και θέλω να το εκτελώ μια φορά τον μήνα.

Μιά λύση ήταν το Crontab το οποίο όμως, απ' ότι έχω καταλάβει, εκτελεί το script μόνο αν είναι ανοιχτός εκείνη την στιγμή ο Η/Υ. Εμένα όμως δεν με ενδιαφέρει η στιγμή που θα εκτελείται το script αλλά η συχνότητα, δηλαδή πχ. μια φορά την βδομάδα, όποια μέρα και αν τύχει να ανοίξει ο υπολογιστής.

Παρακαλώ πολύ όποιος μπορεί ας βοηθήσει!!! :D
Εμπειρία : ★★★☆☆ Αγγλικά : ★★★☆☆ Προγ/σμός: python
Spoiler: show
OS : Ubuntu 14.04.3 LTS / win 7
CPU : AMD A4-5300 APU - 2xCore 3,4 GHz FM2
GPU : ATI (Radeon) HD 6570 2G
RAM : 4GB DDR3
HDD : SEAGATE 500GB SATA3 16MB
Άβαταρ μέλους
RadwanGR
babeTUX
babeTUX
 
Δημοσιεύσεις: 72
Εγγραφή: 05 Αύγ 2014, 01:45
Εκτύπωση

Re: Προγραματισμένη εκτέλεση Script

Δημοσίευσηαπό akounadis » 09 Νοέμ 2015, 12:36

Δηλαδή ένα cron job έτσι δε σου κάνει;
Πχ
Κώδικας: Επιλογή όλων
# +---------------- λεπτό (0 - 59)
# | +------------- ώρα (0 - 23)
# | | +---------- ημέρα του μήνα (1 - 31)
# | | | +------- μήνας (1 - 12)
# | | | | +---- μέρα της εβδομάδας (0 - 7)
# | | | | |
* * * * * εντολή που θα εκτελεστεί


Για δες καλύτερα εδώ https://forum.ubuntu-gr.org/viewtopic.php?f=4&t=829
Intel Core i7-7700HQ CPU @ 2.80GHz ‖ RAM 7617 MiB ‖ Dell Inc. 065C71 - Dell Inc. Inspiron 15 7000 Gaming
Intel Device [8086:591b] {i915} ⋮ nVidia Device [10de:1c8c] {nouveau}
wlp3s0: Intel Wireless 3165 [8086:3165] (rev 79) ⋮ enp2s0: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15)
Συναντήσεις φίλων του Ubuntu-gr σε πόλεις της Ελλάδας
Άβαταρ μέλους
akounadis
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1050
Εγγραφή: 23 Δεκ 2009, 17:40
Τοποθεσία: Πειραιάς
Launchpad: akounadis
Εκτύπωση

Re: Προγραματισμένη εκτέλεση Script

Δημοσίευσηαπό RadwanGR » 09 Νοέμ 2015, 14:14

akounadis έγραψε:Δηλαδή ένα cron job έτσι δε σου κάνει;
Πχ
Κώδικας: Επιλογή όλων
# +---------------- λεπτό (0 - 59)
# | +------------- ώρα (0 - 23)
# | | +---------- ημέρα του μήνα (1 - 31)
# | | | +------- μήνας (1 - 12)
# | | | | +---- μέρα της εβδομάδας (0 - 7)
# | | | | |
* * * * * εντολή που θα εκτελεστεί


Για δες καλύτερα εδώ https://forum.ubuntu-gr.org/viewtopic.php?f=4&t=829


Θα εκτελείται αργότερα εάν ο υπολογιστής είναι κλειστός εκείνη την στιγμή ; Εγώ θέλω να εκτελείτε μια φορά την βδομάδα, γενικά, δηλαδή μπορεί εγώ να ανοίξω τον υπολογιστή την Δευτέρα και όχι την Κυριακή.. Οποιαδήποτε στιγμή να 'ναι αρκεί δηλαδή να εκτελείται μια φορά την βδομάδα.
Εμπειρία : ★★★☆☆ Αγγλικά : ★★★☆☆ Προγ/σμός: python
Spoiler: show
OS : Ubuntu 14.04.3 LTS / win 7
CPU : AMD A4-5300 APU - 2xCore 3,4 GHz FM2
GPU : ATI (Radeon) HD 6570 2G
RAM : 4GB DDR3
HDD : SEAGATE 500GB SATA3 16MB
Άβαταρ μέλους
RadwanGR
babeTUX
babeTUX
 
Δημοσιεύσεις: 72
Εγγραφή: 05 Αύγ 2014, 01:45
Εκτύπωση

Re: Προγραματισμένη εκτέλεση Script

Δημοσίευσηαπό akounadis » 09 Νοέμ 2015, 16:11

Πχ θα εκτελεί την εντολή συνεχώς ανά μια ώρα στο 15ο λεπτό της ώρας

Κώδικας: Επιλογή όλων
15 * * * * command


Ο αστερίσκος είναι μπαλαντέρ. Γενικά "παίζεις" με το τι θέλεις.

ΥΓ Αυτή η εντολή συνήθως χρησιμοποιείται για εκτέλεση αρχείου php σε ιστοσελίδα. :idea:
Intel Core i7-7700HQ CPU @ 2.80GHz ‖ RAM 7617 MiB ‖ Dell Inc. 065C71 - Dell Inc. Inspiron 15 7000 Gaming
Intel Device [8086:591b] {i915} ⋮ nVidia Device [10de:1c8c] {nouveau}
wlp3s0: Intel Wireless 3165 [8086:3165] (rev 79) ⋮ enp2s0: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15)
Συναντήσεις φίλων του Ubuntu-gr σε πόλεις της Ελλάδας
Άβαταρ μέλους
akounadis
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1050
Εγγραφή: 23 Δεκ 2009, 17:40
Τοποθεσία: Πειραιάς
Launchpad: akounadis
Εκτύπωση

Re: Προγραματισμένη εκτέλεση Script

Δημοσίευσηαπό RadwanGR » 09 Νοέμ 2015, 20:35

δεν μου κάνει, το σκρίπτ που έχω (κάνει backup τα αρχεία του dropbox μου) είναι πολύ βαρύ για να το εκτελώ καθημερινά, για αυτό θέλω ανα βδομάδα/μήνα
Εμπειρία : ★★★☆☆ Αγγλικά : ★★★☆☆ Προγ/σμός: python
Spoiler: show
OS : Ubuntu 14.04.3 LTS / win 7
CPU : AMD A4-5300 APU - 2xCore 3,4 GHz FM2
GPU : ATI (Radeon) HD 6570 2G
RAM : 4GB DDR3
HDD : SEAGATE 500GB SATA3 16MB
Άβαταρ μέλους
RadwanGR
babeTUX
babeTUX
 
Δημοσιεύσεις: 72
Εγγραφή: 05 Αύγ 2014, 01:45
Εκτύπωση

Re: Προγραματισμένη εκτέλεση Script  Το θέμα επιλύθηκε

Δημοσίευσηαπό pc_magas » 09 Νοέμ 2015, 23:47

@akounadis
Το cron τα σπάει σε συστήματα με μεγάλο uptime. Ο χρήστης από ότι καταλαβαίνω δεν έχει 24/7 το pc ανοιχτό αλλά θέλει όταν ξεπεραστεί ένα χρονικό όριο να εκτελεί πάση θησία ένα script.

Μπορείς να βάλεις στην αρχή του script ένα χρονικό έλεγχο και να κρατά την τελευταία ώρα που εκτελέστηκε στο script ή να υπολογίζει την ώρα που θα εκτελεστεί την επόμενη φορά. Καλύτερα το δεύτερο να κάνεις.

Μετά στο ~/.bashrc στο τέλος μπορείς να βάλεις την εντολή που εκτελεί το script.

Έτσι κάθε φορά θα εκτελείτε το script θα ελέγχει αν ήρθε η ώρα να εκτελεστεί και θα εκτελείτε.

Τον έλεγχο μπορείς να το κάνεις στην αρχή του script βασιζόμενο σε αυτό (με την προϋπόθεση ότι είναι bash):
http://www.cyberciti.biz/faq/shell-scri ... ifference/
Και στην εντολή:
Κώδικας: Επιλογή όλων
date


Ο Αργόριθμος έχει ως εξής:
  1. Διάβασε ένα αρχείο που έχεις αποθηκευμένο την τελευταία φορά που εκτελέστηκε το script.
  2. Αν η διαφορά ώρας της ώρας που διάβασες με την τρέχουσα ώρα είναι θετική ή ίση με 0 τότε πάρε backup ειδάλλως μην πάρεις.
  3. Εφόσον πήρες το backup τότε υπολόγισε τον νέον χρόνο εκτέλεσης.

Έτσι κάθε φορά που κάνεις login στον χρόνο που θές (είτε τον έχει ξεπεράσει ή όχι) εκτελεί το script και αυτό αποφασίζει αν θα εκτελέσει το script.

Τον παραπάνω Αλγόριθμο μπορείς να το σπάσεις σε κομμάτια:
  1. Στο script που θα εκτελέι το backup
  2. Στο script που θα ελέγχει τον χρόνο και θα εκτελεί το πρώτο script.

Έτσι σου δίνει επέκταση και για άλλα πράγματα. Πχ. να ελέγχεις πότε θα εκτελεστούν critical scripts σε x χρόνο. Καθώς το script 2 να είναι σε άλλη γλώσσα από το script 1. πχ. το πρώτο σε bash και το δεύτερο σε php και στο .bsashrc καλείς στο δεύτερο.
My blog|Κυπριακή Κοινότητα Ελευθέρου Λογισμικού Λογισμικού ανοικτού Κώδικα
Γνώσεις Linux:Ποτέ αρκετές|Προγραμματισμός: Php, javascript, nodejs, python, bash |Aγγλικά:Καλά
Οι υπολογιστές μου:
Spoiler: show
Ubuntu 16.04 64 bit σεIntel(R) Pentium(R) CPU G4400 @ 3.30GHz, 16Gib Ram, 500Gib Hard Disk, και κάρτα γραφικών Nvidia Geforce GT610
Lubuntu 14.04 σε Dell Inspiron mini 10(1010) intel Atom Z500 1Gb ram και gma500 (εδώθη σε άλλον)
Kubuntu 16.04 Lenovo G70 Intel i5 Nvidia Grapgics Card, Intel Graphics card (έχει 2) με Nouveau, 16Gb RAM, 126GB SSD Σκληρό Δίσκο
Άβαταρ μέλους
pc_magas
powerTUX
powerTUX
 
Δημοσιεύσεις: 2599
Εγγραφή: 12 Απρ 2009, 18:55
Τοποθεσία: Αχαρναί Αττικής
Launchpad: pc_magas
IRC: pc_magas
Εκτύπωση

Re: Προγραματισμένη εκτέλεση Script

Δημοσίευσηαπό RadwanGR » 11 Νοέμ 2015, 00:08

αυτό θα κάνω.. ευχαριστώ πολύ!!!
Εμπειρία : ★★★☆☆ Αγγλικά : ★★★☆☆ Προγ/σμός: python
Spoiler: show
OS : Ubuntu 14.04.3 LTS / win 7
CPU : AMD A4-5300 APU - 2xCore 3,4 GHz FM2
GPU : ATI (Radeon) HD 6570 2G
RAM : 4GB DDR3
HDD : SEAGATE 500GB SATA3 16MB
Άβαταρ μέλους
RadwanGR
babeTUX
babeTUX
 
Δημοσιεύσεις: 72
Εγγραφή: 05 Αύγ 2014, 01:45
Εκτύπωση

Re: Προγραματισμένη εκτέλεση Script

Δημοσίευσηαπό the_eye » 18 Νοέμ 2015, 23:59

Όσο λιγότερο κλειστό λογισμικό έχεις, τόσα λιγότερα προβλήματα.
1 Γνώσεις ⇛ Linux: Καλό ┃ Προγραμματισμός: Ναι PHP, MySQL ┃ Αγγλικά: Καλά
2 Ubuntu 24.04.2
3 Intel Core i5-6500 CPU @ 3.20GHz ‖ RAM 7836 MiB ‖ Gigabyte B150M-HD3 DDR3-CF - Gigabyte B150M-HD3 DDR3
4 Intel HD Graphics 530 [8086:1912] {i915}
5 enp1s0: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15)
Άβαταρ μέλους
the_eye
Διαχειριστής
Διαχειριστής
 
Δημοσιεύσεις: 11720
Εγγραφή: 16 Μαρ 2010, 17:19
Launchpad: ntoulasd
IRC: the_eye_
Εκτύπωση


Επιστροφή στο Λειτουργικό Σύστημα