Πώς να προγραμματίσετε εργασίες στο Linux με Cron και Crontab

Πώς να προγραμματίσετε εργασίες στο Linux με Cron και Crontab

Ξέρατε ότι Blade Runner έχει οριστεί το 2019; Τρία χρόνια από τώρα! Για να μην πω Επιστροφή στο μέλλον 2 , όπου ταξιδεύουν στο χρόνο μέχρι το 2015. Ωστόσο, δεν έχουμε ιπτάμενα αυτοκίνητα και δεν υπάρχουν αναπαραγωγικά μεταξύ μας (από όσο γνωρίζω).





Είναι εύκολο να απογοητευτείτε από την τρέχουσα τεχνολογία όταν τη συγκρίνουμε με φανταστικές απεικονίσεις του μέλλοντος. Ακόμα, αυτές τις μέρες τα τηλέφωνα, οι υπολογιστές μας, ακόμη και τα σπίτια μας μπορούν να κάνουν εκπληκτικά πράγματα. Η ικανότητα αυτοματοποίησης εργασιών είναι μία από αυτές.





Κάθε χρήστης Linux μπορεί να επωφεληθεί από τον προγραμματισμό εργασιών, είτε σχετίζονται με το σύστημα (όπως ο καθαρισμός παλιών αρχείων καταγραφής και ενημέρωση πακέτων ) ή εξυπηρέτηση του χρήστη (έλεγχος email, λήψη podcasts ...). Οι χρήστες Windows διαθέτουν Task Scheduler από τα Windows 95. Το βοηθητικό πρόγραμμα που κάνει την ίδια δουλειά στο Linux ονομάζεται cron και εδώ θα εξηγήσουμε πώς να το χρησιμοποιήσετε.





πώς μπορώ να διαγράψω το ιστορικό αναζητήσεων Google

Τι είναι το Cron;

Το Cron είναι μια υπηρεσία συστήματος που εκτελείται στο παρασκήνιο, ελέγχει για προγραμματισμένες εργασίες και τις εκτελεί εάν εντοπίσει. Οι εργασίες - που ονομάζονται επίσης «εργασίες cron» - ορίζονται σε ειδικά αρχεία διαμόρφωσης (crontabs), τα οποία σαρώνουν το cron κάθε λεπτό. Διάφορες εκδόσεις του cron μπορούν να βρεθούν σε διαφορετικές διανομές Linux. Για παράδειγμα, το πιρούνι του cron της Fedora ονομάζεται cronie , και υπάρχουν επίσης fcron , bcron , και dcron Το Ορισμένα έχουν επιπλέον δυνατότητες, ενώ άλλα εστιάζουν περισσότερο στην ασφάλεια, αλλά όλα βασίζονται στην ίδια ιδέα.

Αυτός ο οδηγός είναι γραμμένος για το vixie-cron, που είναι η πιο διαδεδομένη έκδοση του cron και αυτή που θα βρείτε στο Ubuntu και τα παράγωγά του. Ενώ οι περισσότερες οδηγίες ισχύουν και για άλλες εφαρμογές cron, ενδέχεται να υπάρχουν μικρές διαφορές, οπότε ελέγξτε τα εγχειρίδια τους εάν αποφασίσετε να αλλάξετε.



Τι είναι το Crontab;

Εάν ασχολείστε σοβαρά με τη διαχείριση του χρόνου σας, πιθανότατα έχετε κάποιο ημερολόγιο - μια εφαρμογή ή τουλάχιστον ένα κομμάτι χαρτί. Το Crontab μοιάζει πολύ με το ημερολόγιο του υπολογιστή σας. Διατηρεί τις πληροφορίες σχετικά με τις προγραμματισμένες εργασίες, λέγοντας στο cron ποιες εντολές πρέπει να εκτελεστούν σε ποια ώρα.

Στην πραγματικότητα, υπάρχουν πολλά crontab στο σύστημά σας. Κάθε χρήστης έχει το δικό του crontab, συμπεριλαμβανομένου του root (ο διαχειριστής). Τα crontabs των χρηστών αποθηκεύονται στο





/var/spool/cron/crontabs/

Το ο

crontab -l

εντολή θα εμφανίσει το αρχείο crontab για τον τρέχοντα χρήστη. Μπορείτε να ελέγξετε τη ρίζα crontab με





sudo crontab -l

Το

Επιπλέον, υπάρχει το αρχείο crontab συστήματος

/etc/crontab

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

/etc/cron.hourly/

,

/etc/cron.daily/

,

/etc/cron.weekly/

, και

/etc/cron.monthly/

φακέλους, και σε ορισμένες διανομές, το

/etc/cron.d/

φάκελο επίσης. Σε γενικές γραμμές, δεν θα πρέπει να ασχοληθείτε με αυτές τις εργασίες, καθώς οι περισσότερες από αυτές δημιουργούνται αυτόματα από εγκατεστημένες εφαρμογές.

Πώς να προγραμματίσετε εργασίες με το Cron

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

crontab -e

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

sudo crontab -u root -e
sudo crontab -u username -e

Το αρχείο crontab έχει δύο ενότητες. Το πρώτο περιέχει μεταβλητές περιβάλλοντος που ρυθμίζονται αυτόματα. Μπορείτε να αλλάξετε με ασφάλεια τις μεταβλητές PATH, HOME και SHELL και να τροποποιήσετε τη μεταβλητή MAIL.

Το δεύτερο μέρος του αρχείου είναι το πραγματικό «χρονοδιάγραμμα» με τις προγραμματισμένες εργασίες σας. Κάθε εργασία καταλαμβάνει μια γραμμή (γραμμή) στον πίνακα, με τις στήλες να αντιπροσωπεύουν τις ακόλουθες τιμές:

Για να προγραμματίσετε με επιτυχία εργασίες, πρέπει να γνωρίζετε λίγα λόγια για τη σύνταξη crontab:

  • Οι αριθμοί πρέπει να είναι ακέραιοι (ακέραιοι αριθμοί) και μπορείτε να χρησιμοποιήσετε τον αστερίσκο (*) σε οποιαδήποτε από τις στήλες ως μπαλαντέρ, που σημαίνει «κάθε λεπτό/ημέρα/μήνα ...».
  • Στη στήλη 'Ημέρα του μήνα', προσέξτε να μην ορίσετε μια ημερομηνία που δεν εμφανίζεται τον μήνα που καθορίζεται στη στήλη 'Μήνας' (για παράδειγμα, 30 Φεβρουαρίου).
  • Και οι δύο στήλες 'Μήνας' και 'Ημέρα της εβδομάδας' δέχονται σύντομα ονόματα για μήνες και ημέρες, αντίστοιχα, και δεν έχουν διάκριση πεζών -κεφαλαίων.
  • Στη στήλη 'Ημέρα της εβδομάδας', τόσο το 0 όσο και το 7 αντιπροσωπεύουν την Κυριακή. Η στήλη 'ourρα' απαιτεί τη μορφή 'στρατιωτικός χρόνος' (24 ώρες), αλλά δεν μπορείτε να χρησιμοποιήσετε τον αριθμό 24-αντίθετα, το 0 σημαίνει 12 π.μ. Αυτό συμβαίνει επειδή ξεκινούν οι τιμές για λεπτό, ώρα και ημέρα της εβδομάδας στο 0 αντί για 1.
  • Τα δευτερόλεπτα δεν υποστηρίζονται, επομένως δεν μπορείτε να προγραμματίσετε μια εργασία σε ένα συγκεκριμένο δευτερόλεπτο.

Αυτό που μπορείτε να κάνετε είναι να προγραμματίσετε χρονικά εύρη χωρίς παύλα (14-22 στην ενότητα 'oursρες' θα εκτελεί την εργασία συνεχώς από τις 2 μ.μ. έως τις 10 μ.μ.) ή να εκτελείτε μια εργασία αρκετές φορές, καθορίζοντας μια λίστα διαχωρισμένη με κόμματα (1, 3,5 στο «Ημέρα της Εβδομάδας» θα εκτελέσει το έργο τη Δευτέρα, την Τετάρτη και την Παρασκευή).

Εν τω μεταξύ, οι τιμές βημάτων αντιπροσωπεύονται από μια κάθετο προς τα εμπρός (/) και αυτές υποδεικνύουν το ποσό των παραλείψεων εντός ενός εύρους. Για παράδειγμα, το 3-20/3 στο «oursρες» θα εκτελεί την εργασία κάθε τρεις ώρες από τις 3 το πρωί έως τις 8 το βράδυ. Αυτό είναι χρήσιμο όταν θέλετε να επαναλαμβάνετε εργασίες κάθε X ώρες, επειδή μπορείτε να συνδυάσετε έναν αστερίσκο και ένα βήμα (*/X). Μπορείτε να συνδυάσετε εύρη με λίστες και βήματα με εύρη εφόσον χρησιμοποιείτε αριθμούς. Με άλλα λόγια, δεν επιτρέπονται συνδυασμοί όπως 'jan-mar' ή 'Tue, Fri-Sun'.

Εναλλακτικά, αντί να ορίσετε μια τιμή για κάθε στήλη, μπορείτε απλώς να γράψετε @weekly, @yearly, @monthly, @daily ή @hourly στην αρχή μιας σειράς, ακολουθούμενη από μια εντολή. Προγραμματισμένες έτσι, οι εργασίες θα εκτελούνται στην πρώτη δυνατή εμφάνιση, οπότε το @weekly θα εκτελείται τα μεσάνυχτα την πρώτη ημέρα της εβδομάδας. Εάν θέλετε να εκτελέσετε μια εργασία αμέσως μόλις ξεκινήσει το σύστημα, χρησιμοποιήστε την εντολή @reboot.

Σε αυτό το παράδειγμα, έχουμε προγραμματίσει ένα αντίγραφο ασφαλείας κάθε μέρα στις 08:20 και 20:20. Η ταπετσαρία αλλάζει αυτόματα κάθε τρεις ημέρες στις 19:00 και ένα σενάριο θα ελέγχει για νέα podcast κάθε Δευτέρα στις 10:20 και 20:20. Η υπενθύμιση γενεθλίων έχει οριστεί για τις 25 Μαρτίου και εκτελείται κάθε 30 λεπτά εντός του καθορισμένου χρονικού πλαισίου. Τέλος, ένα σενάριο ελέγχει το email κάθε 15 λεπτά από τις 8 έως τις 20, αλλά μόνο τις εργάσιμες ημέρες. Είστε ελεύθεροι να οργανώσετε το crontab σας με κενά και καρτέλες μεταξύ των στηλών, αλλά όχι μέσα σε αυτά (μην τοποθετείτε κενά μεταξύ κόμματος, παύλων και παύλων).

Εάν όλα αυτά ακούγονται πολύ περίπλοκα, μην ανησυχείτε - μπορείτε πάντα να βασίζεστε στο διαδίκτυο. Εργαλεία όπως Crontab Generator , Crontab.guru , και το Corntab σάς βοηθούν να δημιουργήσετε εργασίες cron χωρίς να γνωρίζετε σύνταξη crontab. Σας δείχνουν πότε θα εκτελεστεί η εργασία στη συνέχεια και παρέχουν πρότυπα για εκφράσεις που χρησιμοποιούνται συνήθως. Το Crontab.guru είναι το καλύτερο από τη δέσμη, επειδή σας επιτρέπει να δοκιμάσετε τη σύνταξη crontab, ώστε να μπορείτε να δείτε αμέσως πώς οι αλλαγές σας θα επηρεάσουν το πρόγραμμα.

Πώς να ελέγξετε εάν εκτελούνται εργασίες Cron

Ο Cron υποτίθεται ότι λειτουργεί αθόρυβα στο παρασκήνιο και σας αφήνει να εργάζεστε ανενόχλητοι ενώ αναλαμβάνει τις εργασίες σας. Αλλά πώς μπορείτε να βεβαιωθείτε ότι λειτουργεί πραγματικά;

Το Cron διαθέτει μια ενσωματωμένη δυνατότητα ειδοποίησης ηλεκτρονικού ταχυδρομείου, αλλά αυτό απαιτεί τη ρύθμιση τουλάχιστον ενός απλού τοπικού διακομιστή αλληλογραφίας. Δεν είναι πολλοί οι οικιακοί χρήστες πρόθυμοι να το διαμορφώσουν και δεν το παρέχουν πολλές διανομές από προεπιλογή (για παράδειγμα, το Ubuntu δεν το κάνει). Ο πιο γρήγορος τρόπος για να ελέγξετε το cron είναι να σαρώσετε το αρχείο καταγραφής συστήματος με αυτήν την εντολή:

cat /var/log/syslog | grep -i cron

Η επιλογή -i καθιστά το ερώτημά μας χωρίς διάκριση πεζών -κεφαλαίων. Είναι πιθανό ότι το cron θα έχει το δικό του αρχείο καταγραφής κάπου μέσα

/var/log/

, οπότε κοιτάξτε εκεί αν αυτή η εντολή δεν αποφέρει χρήσιμα αποτελέσματα.

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

30 * * * * /usr/bin/yourcommand > /home/username/logfile.txt

Χρησιμοποιώντας ένα μόνο σύμβολο> θα αντικαταστήσετε το αρχείο κάθε φορά που εκτελείται η εντολή. Για να το αποφύγετε, χρησιμοποιήστε >> αντί αυτού - προσθέτει την έξοδο στο υπάρχον αρχείο.

Τι γίνεται αν το Cron δεν λειτουργεί;

Ενδέχεται να έχετε προσθέσει κάποιες εργασίες, να ελέγξετε τα αρχεία καταγραφής συστήματος και να διαπιστώσετε ότι δεν εκτελούνται όπως θα έπρεπε. Εδώ είναι μερικά πράγματα που πρέπει να λάβετε υπόψη - και να είστε προσεκτικοί - όταν προσπαθείτε να διορθώσετε το πρόβλημα.

Λειτουργεί η υπηρεσία cron;

Όπως γνωρίζετε, ο δαίμονας cron πρέπει να εκτελείται στο παρασκήνιο. Βεβαιωθείτε ότι αυτό ισχύει πραγματικά. Η υπηρεσία είτε ονομάζεται crond είτε απλά cron.

Για διανομές που χρησιμοποιούν systemd:

systemctl status cron

Για διανομές που χρησιμοποιούν το Upstart:

service cron status

Εάν η διανομή σας χρησιμοποιεί την «παλιά» προσέγγιση System V init, παραθέστε όλες τις υπηρεσίες με:

Windows 10 απροσδόκητη παγίδα λειτουργίας πυρήνα
initctl list

και δείτε αν το cron παρατίθεται.

Επιτρέπεται καν να έχετε αρχείο crontab;

Ελέγξτε το δικό σας

/etc

φάκελο για ονόματα αρχείων

cron.allow

και

cron.deny

Το Στο Ubuntu, κανένα από τα δύο δεν πρέπει να υπάρχει, πράγμα που σημαίνει ότι όλοι οι χρήστες έχουν τη δυνατότητα να διαχειρίζονται εργασίες cron. Ωστόσο, εάν υπάρχει ένα

λόγους για τους οποίους τα μέσα κοινωνικής δικτύωσης είναι καλά
cron.allow

αρχείο, πρέπει να περιέχει το όνομα χρήστη σας. Αντιστρόφως, εάν το

cron.deny

το αρχείο υπάρχει, το όνομα χρήστη σας δεν πρέπει να υπάρχει σε αυτό. Αφήνοντας το

cron.deny

κενό αρχείο σημαίνει ότι μόνο το root και οι χρήστες που αναφέρονται στο

cron.allow

μπορεί να έχει αρχεία crontab.

Οι μεταβλητές σας έχουν ρυθμιστεί σωστά;

Το Crontab ορίζει αυτόματα τη μεταβλητή SHELL σε

/bin/sh

Το Ωστόσο, εάν το κέλυφος της επιλογής σας είναι το ψάρι ή bash, θα πρέπει να αλλάξετε τη μεταβλητή SHELL

Το Ομοίως, η μεταβλητή PATH περιέχει μόνο μερικούς καταλόγους από προεπιλογή. Εδώ το crontab αναζητά εντολές Linux. Εάν η εργασία cron αποτυγχάνει να εκτελεστεί, μπορεί να οφείλεται στο γεγονός ότι το crontab δεν 'βλέπει' την εντολή που χρησιμοποιήσατε. Για να αποφευχθεί αυτό, προσθέστε καταλόγους που περιέχουν τις εντολές στη μεταβλητή PATH, χωρισμένες με άνω και κάτω τελεία:

PATH =/opt/myapp/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Εάν δεν θέλετε να το επεξεργαστείτε στο crontab, μπορείτε να ορίσετε αυτές τις μεταβλητές στο σενάριο που θέλετε να εκτελεστεί ως εργασία cron.

Μήπως το crontab είναι επιτόπου μορφοποιημένο;

Η σύνταξη του Crontab δεν είναι ακριβώς ομαλή. Ακόμα κι αν το επαληθεύσετε με διαδικτυακά εργαλεία που αναφέραμε προηγουμένως, ένα μικρό λάθος θα μπορούσε να αποτρέψει την εκτέλεση των εργασιών σας από τη cron. Προσοχή:

  • προσθέστε μια κενή γραμμή στο τέλος του αρχείου crontab
  • ξεφύγετε από το σύμβολο % με ανάστροφο αν η εντολή σας το περιλαμβάνει
  • γράψτε σχόλια ως ξεχωριστές γραμμές που ξεκινούν με #. Μην γράφετε σχόλια στην ίδια γραμμή με τις μεταβλητές περιβάλλοντος ή δίπλα στις εντολές cron job.

Πρέπει πραγματικά να χρησιμοποιήσετε το τερματικό;

Με τίποτα. Οι χρήστες του KDE μπορούν να προγραμματίσουν εργασίες cron με το KCron, το οποίο είναι προσβάσιμο από το Ρυθμίσεις συστήματος> Χρονοδιάγραμμα εργασιών μονάδα μέτρησης. Με μια απλή διεπαφή που σας επιτρέπει να επιλέξετε και να προσαρμόσετε τα πάντα σε λίγα μόνο κλικ του ποντικιού, το KCron είναι ευχάριστο στη χρήση.

Αν προτιμάτε το GNOME, τότε Πρόγραμμα GNOME ειναι για σενα. Η προσέγγιση είναι παρόμοια, αν και η διεπαφή είναι, αναμενόμενα, ελαφρώς διαφορετική. Προσφέρει μια προηγμένη λειτουργία για λεπτομερείς τροποποιήσεις και συνοδεύεται από μια μικροεφαρμογή πίνακα από την οποία μπορείτε να διαχειριστείτε εργασίες απευθείας.

Θα πρέπει να γνωρίζετε άλλες λύσεις, όπως Crontab-UI και Minicron Το Είναι πιο κατάλληλα για χρήστες που διαχειρίζονται πολλαπλές μηχανές και εργασίες cron, και ένα από τα πιο ωραία χαρακτηριστικά τους είναι η διεπαφή που βασίζεται στον ιστό.

Υπάρχουν εναλλακτικές λύσεις Cron;

Ενώ το cron είναι σχεδόν ο τυπικός προγραμματιστής εργασιών για Linux, σίγουρα δεν είναι το μόνο. ο κατά την εντολή είναι ιδανικό για γρήγορες, εφάπαξ εργασίες που μπορούν να προγραμματιστούν απευθείας από τη γραμμή εντολών, χωρίς ειδικά αρχεία διαμόρφωσης. Αν χρειάζεστε περισσότερα, υπάρχει GNUbatch , η οποία εισάγει την έννοια της εξάρτησης. Με το GNUbatch, μπορείτε να ορίσετε συγκεκριμένες προϋποθέσεις για κάθε εργασία ή να κάνετε μια προγραμματισμένη εργασία να εξαρτάται από μια προηγούμενη. Κάτι παρόμοιο μπορεί να επιτευχθεί με χρονοδιακόπτες συστήματος Το Αν και λιγότερο πρακτικό στη ρύθμιση παραμέτρων από το cron, τα χρονομετρημένα συστήματα μπορούν να θυμούνται εάν μια εργασία έχασε το πρόγραμμά της ενώ ο υπολογιστής ήταν απενεργοποιημένος και να την εκτελέσουν την επόμενη φορά που θα είναι ενεργοποιημένη.

Αυτό είναι κάτι που ο cron δεν μπορεί να κάνει μόνο του. Ως εκ τούτου, είναι κατάλληλο για διακομιστές και υπολογιστές που λειτουργούν συνεχώς, αλλά δεν θα εκτελέσει μια εργασία που είχε προγραμματιστεί ενώ ο υπολογιστής ήταν απενεργοποιημένος. Εδώ είναι που ανακρον μπαίνει στο παιχνίδι. Δεν είναι τεχνικά μια «εναλλακτική» ή αντικατάσταση του cron. Αντ 'αυτού, το anacron συμπληρώνει το cron και πρέπει να χρησιμοποιείται παράλληλα με αυτό, πράγμα που συμβαίνει σε πολλές διανομές Linux, συμπεριλαμβανομένων των προϊόντων με βάση το Ubuntu και το Ubuntu. Το Anacron καταγράφεται κατά την τελευταία εκτέλεση μιας εργασίας και ελέγχει εάν υπήρχαν τυχόν αναπάντητες περιπτώσεις κατά την απενεργοποίηση του συστήματος. Θα τα εκτελέσει όταν ενεργοποιήσετε ξανά τον υπολογιστή, αλλά κάθε εργασία μπορεί να εκτελεστεί μόνο μία φορά την ημέρα.

Ορισμένες εκδόσεις του cron, όπως το fcron, προσφέρουν από προεπιλογή τις δυνατότητες του anacron. Οι προχωρημένοι χρήστες μπορεί να θέλουν να κοιτάξουν Hcron ή SuperCron , τα οποία φέρνουν πολλές βελτιώσεις στις βασικές συναρτήσεις cron, αλλά είναι επίσης κάπως δύσκολο να διαχειριστούν.

Τι γίνεται με σένα; Πώς οργανώνετε τις ψηφιακές σας εργασίες; Ποιες εργασίες προγραμματίζετε στο Linux; Μοιραστείτε τις ιστορίες και τις συμβουλές σας για τη χρήση του cron στα σχόλια.

Πίστωση εικόνας: πίνακας προγραμματισμού από τον Gonzalo Aragon μέσω του Shutterstock

Μερίδιο Μερίδιο Τιτίβισμα ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ 12 ιστότοποι βίντεο που είναι καλύτεροι από το YouTube

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

Διαβάστε Επόμενο
Σχετικά θέματα
  • Linux
  • Linux
Σχετικά με τον Συγγραφέα Ιβάνα Ισαντόρα Ντέβτσιτς(Δημοσιεύθηκαν 24 άρθρα)

Η Ivana Isadora είναι ανεξάρτητη συγγραφέας και μεταφράστρια, λάτρης του Linux και φανατική του KDE. Υποστηρίζει και προωθεί δωρεάν λογισμικό ανοιχτού κώδικα και αναζητά πάντα νέες, καινοτόμες εφαρμογές. Μάθετε πώς μπορείτε να έρθετε σε επαφή εδώ Το

Περισσότερα από την Ivana Isadora Devcic

Εγγραφείτε στο newsletter μας

Εγγραφείτε στο ενημερωτικό μας δελτίο για τεχνικές συμβουλές, κριτικές, δωρεάν ebooks και αποκλειστικές προσφορές!

Κάντε κλικ εδώ για εγγραφή
Κατηγορία Linux