Μάθε παιδί μου Linux | Τρέχουμε αυτόματα εντολές και εφαρμογές με τη βοήθεια του Cron


Στο τελευταίο άρθρο μάθαμε πώς να γράφουμε script εντολών για να αυτοματοποιήσουμε τις καθημερινές μας εργασίες και είπαμε ότι "ο καλός ο Λινουξάς από τα script του φαίνεται". Όταν όμως φτάσουμε στο σημείο να έχουμε καμιά δεκαριά από αυτά, πρέπει πλέον να θυμόμαστε να τα τρέχουμε σε τακτά χρονικά διαστήματα. Εδώ λοιπόν έρχεται το Cron να μας λύσει τα χέρια, η δουλειά του οποίου είναι να προγραμματίζει αυτόματα την εκτέλεσή τους.

Με το Cron μπορούμε να τρέξουμε από μία εντολή έως ένα ολόκληρο script και να κάνουμε από μία επανεκκίνηση, έως ένα πλήρες backup των αρχείων μας σε εξωτερικό σκληρό δίσκο. Το μόνο λοιπόν που χρειάζεται να κάνουμε είναι να δηλώσουμε την εντολή που θέλουμε να τρέξει και να του δώσουμε τις χρονικές παραμέτρους που θέλουμε.

Η λογική του Cron


Τα Cronjob μοιάζουν κάπως έτσι:

* * * * * εντολή

Στους πέντε αστερίσκους βάζουμε τις χρονικές προδιαγραφές και στη συνέχεια την εντολή ή το script που θέλουμε να τρέξουμε. Ένα παράδειγμα είναι αυτό:

58 16 15 8 *  /home/pi/backup.sh

Εδώ το script "backup.sh" που βρίσκεται στο φάκελο "home" του χρήστη "pi", θα τρέξει στις 15 Αυγούστου στις 16:58 η ώρα.

  • Το πρώτο νούμερο (58) λοιπόν είναι το λεπτό στο οποίο θα τρέξει η εντολή και δέχεται αριθμούς από το 0 έως το 59.
  • To δεύτερο (16) είναι η ώρα και δέχεται αριθμούς από το 0 έως το 23.
  • Το τρίτο (15) είναι η μέρα του μήνα και δέχεται αριθμούς από το 1 έως το 31.
  • Το τέταρτο (8) είναι ο μήνας και δέχεται αριθμούς από το 1 έως το 12.
  • Το πέμπτο το οποίο δεν το έχουμε ορίσει (*) είναι η μέρα της εβδομάδας και δέχεται αριθμούς από το 0 έως το 7 (το 1 και το 7 είναι η Κυριακή).


Διαφήμιση


Γνωρίζοντας λοιπόν όλα τα παραπάνω, αν θέλουμε να τρέχει το script μας κάθε μέρα στις δύο η ώρα το πρωί, θα δώσουμε το εξής:

0 2 * * * /home/pi/backup.sh 

Αν θέλουμε να τρέχει μία φορά την εβδομάδα και συγκεκριμένα κάθε Κυριακή στις έξι το απόγευμα, δίνουμε το εξής:

0 18 * * 7 /home/pi/backup.sh

Τέλος αν θέλουμε να τρέχει μία φορά το μήνα και συγκεκριμένα την πρώτη του μηνός και στις τρεις το πρωί, δίνουμε το εξής:

0 3 1 * * /home/pi/backup.sh

Πώς χρησιμοποιούμε το Cron στον υπολογιστή μας;


Αφού μάθαμε τι είναι το Cron πρέπει τώρα να δούμε πώς θα το ρυθμίσουμε στο σύστημά μας. Ο εύκολος τρόπος είναι να εγκαταστήσουμε το "Gnome Schedule" με την εντολή:

sudo apt install gnome-schedule

Θα το βρούμε στη λίστα των εφαρμογών μας ως "Scheduled Tasks" και πραγματικά είναι πολύ απλό στη χρήση.


Διαφήμιση


Όσοι προτιμούμε το τερματικό στον υπολογιστή μας ή είμαστε αναγκασμένοι να το χρησιμοποιήσουμε λόγω απομακρυσμένης SSH σύνδεσης, θα πρέπει να επεξεργαστούμε το "crontab" (cron table) για να προσθέσουν τα δικά μας cronjob. Ανοίγουμε λοιπόν ένα τερματικό και δίνουμε την εντολή:

crontab -e

Προσθέτουμε το cronjob που θέλουμε, για παράδειγμα:

0 2 * * * /home/pi/update.sh

Αποθηκεύουμε και κλείνουμε το τερματικό. Για να δούμε τέλος μία λίστα με τα cronjob που έχουμε ήδη φτιάξει, δίνουμε την εντολή:

crontab -l

#Pro tip:
Αν θέλουμε να τρέχουμε μία συγκεκριμένη εντολή σε κάθε επανεκκίνηση, μπορούμε να αντικαταστήσουμε τους αριθμούς που και τους αστερίσκους με το "@reboot". Για παράδειγμα:

@reboot /home/pi/update.sh

#Pro tip 2:
Αν θέλουμε η εντολή μας να τρέχει στο παρασκήνιο, χρειάζεται απλά να προσθέσουμε ένα "&" στο τέλος της. Για παράδειγμα:

@reboot /home/pi/update.sh &

Σχόλια

Δείτε επίσης...

Ubuntu Touch 2020 review | Μια πραγματική mobile GNU/Linux διανομή έτοιμη για καθημερινή χρήση

Docker | Τι είναι και πώς το εγκαθιστούμε στον υπολογιστή μας;

Android Basics | Τι είναι το ADB, πώς το χρησιμοποιώ και ποιες είναι οι βασικές εντολές του

Home Assistant | Πώς δημιουργούμε αυτοματισμούς στο smart home server μας

Raspberry Pi | Φτιάχνουμε το δικό μας smart home server και ενώνουμε όλες τις έξυπνες συσκευές μας σε μία εφαρμογή!

Android | Παίξε τα παιχνίδια του PlayStation στο Android smartphone ή tablet σου με το PS4 Remote Play!

Android | Χρήσιμα tip για να βγάζουμε εξαιρετικές φωτογραφίες με το κινητό μας

Raspberry Pi | Φτιάξε τις δικές σου κάμερες ασφαλείας με το motionEyeOS

Home Assistant | Πώς ενεργοποιούμε τις ειδοποιήσεις στον smart home server μας

Android Basics | Τι είναι το Fastboot και πώς χρησιμοποιούμε τις εντολές του;