Bash | Γράφουμε το πρώτο μας script για αυτόματη αναβάθμιση του λειτουργικού συστήματος


Αφού εξοικειωθήκαμε με τις βασικές εντολές του τερματικού στο Linux, μπορούμε τώρα να τις χρησιμοποιήσουμε για να γράψουμε ένα αρχείο εντολών (script) που θα εκτελεί πολλές από αυτές μαζί. Αυτού του είδους τα προγραμματάκια ονομάζονται "Bash script" και δεν είναι τίποτα περισσότερο από ένα "φύλλο χαρτί" με απανωτές εντολές.

Θα δημιουργήσουμε λοιπόν ένα αρχείο, το οποίο θα αναβαθμίζει τις εγκατεστημένες μας εφαρμογές, είτε αυτές έχουν εγκατασταθεί παραδοσιακά, είτε αποτελούνται από "snap" ή "flatpack" πακέτα. Θα γίνεται επίσης η εγκατάσταση όλων των ενημερώσεων ασφαλείας που εκκρεμούν στο λειτουργικό σύστημα, ενώ στο τέλος θα γίνεται και μία εκκαθάριση των βιβλιοθηκών που δεν είναι πλέον απαραίτητες. Πρέπει τέλος να πούμε ότι το script που θα γράψουμε, λειτουργεί μόνο σε διανομές που έχουν ως βάση το Debian, όπως δηλαδή είναι το Ubuntu και το Raspbian.

Δημιουργία του "update" script


Ανοίγουμε λοιπόν το τερματικό μας και δημιουργούμε το αρχείο "update" με την εντολή:

touch update

Στη συνέχεια χρησιμοποιούμε τον επεξεργαστή κειμένου "nano" για να το ανοίξουμε μέσα στο τερματικό:

nano update

Σημείωση:
Μπορούμε αν θέλουμε να χρησιμοποιήσουμε κατευθείαν την εντολή "nano update", η οποία θα δημιουργήσει και θα ανοίξει το αρχείο "update" στο τερματικό μας.

Τώρα θα πρέπει να πούμε στο σύστημα ότι αυτό το αρχείο είναι ένα "bash script" για να γνωρίζει πώς θα το διαχειρίζεται. Αυτό γίνεται προσθέτοντας στην πρώτη γραμμή το εξής:

#!/bin/bash

Για να αναβαθμίσουμε ένα Debian-based σύστημα πρέπει πρώτα να "ρωτήσουμε" τα αποθετήριά μας αν έχουν κάτι σε εκκρεμότητα. Αυτό γίνεται με την εντολή:

sudo apt update

Για να εγκαταστήσουμε τώρα τα διαθέσιμα πακέτα, προσθέτουμε την εντολή:

sudo apt upgrade -y

Σημείωση:
Προσέξτε ότι στο τέλος της εντολής προσθέσαμε το δείκτη "-y". Αυτό συμβαίνει γιατί το "apt upgrade" θα μας ζητήσει να συμφωνήσουμε, αν θέλουμε όντως να προχωρήσουμε στην εγκατάσταση. Με αυτό τον τρόπο θα πάρει από πριν την απάντηση "yes" από την οποία προέρχεται το "-y" κι έτσι δε θα διακοπεί η εγκατάσταση.


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

sudo apt autoremove -y


Μέχρι στιγμής έχουμε τελειώσει με τις εφαρμογές μας που είναι παραδοσιακά εγκατεστημένες. Για να αναβαθμίσουμε και τα "snap" πακέτα που έχουμε στο σύστημά μας, προσθέτουμε την εντολή:

sudo snap refresh

Τέλος μπορεί να χρησιμοποιούμε και εφαρμογές που είναι πακεταρισμένες σε "flatpack". Για προσθέσουμε και αυτές στο script της αναβάθμισης, προσθέτουμε την εντολή:

sudo flatpak update -y

Το τελικό μας αρχείο λοιπόν, θα πρέπει να μοιάζει κάπως έτσι:

#!/bin/bash

sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y
sudo snap refresh
sudo flatpak update -y


Εγκατάσταση του script στο σύστημά μας


Το προγραμματάκι μας είναι έτοιμο και περιμένει τώρα να τοποθετηθεί στο σύστημα. Θα πρέπει λοιπόν να το βάλουμε στο φάκελο "bin" όπου βρίσκονται όλα τα βασικά προγράμματα του Debian.

Για να μπούμε στο φάκελο "bin" πρέπει πρώτα να έχουμε δικαιώματα διαχειριστή και αυτό γίνεται με την εντολή:

sudo -s

Μεταφέρουμε το αρχείο "update" στο φάκελο "bin":

mv update /usr/local/bin

Τέλος το μετατρέπουμε σε εκτελέσιμο αρχείο και είμαστε έτοιμοι:

chmod +x /usr/local/bin/update


Πώς το χρησιμοποιούμε;


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

update


Εν κατακλείδι


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

Η χρήση της τοποθεσίας /usr/bin για προσωπικά executable/scripts είναι μάλλον μια κακή επιλογή, προτιμότερες μεταξύ άλλων είναι οι /usr/local/bin ή ~/.local/bin (το δεύτερο πρέπει να βεβαιωθούμε ότι ανήκει στο PATH) .

2 Likes

Θα το τεστάρω για να αλλάξω και τις οδηγίες. Ευχαριστώ!

Έπρεπα να το είχα συμπεριλάβει στη πρώτη απάντηση, άλλα ορίστε και ένα screenshot για πάρεις μια ιδέα γιατί μπορεί να αποδειχθεί κακή/επικίνδυνη επιλογή ( η εντολή ψάχνει όλα τα πακέτα deb στα αποθετήρια που μπορεί να περιέχουν ένα συγκεκριμένο αρχείο )

2 Likes