ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ



Σχετικά έγγραφα
Αβδέλαρου Κωνσταντίνα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ I

ΑΣΚΗΣΗ 2 -ΑΚΥΡΩΣΗ ΣΗΜΑΣΙΑΣ ΕΙΔΙΚΩΝ ΧΑΡΑΚΤΗΡΩΝ

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact:

Λειτουργικά Συστήματα

Μερικές άλλες χρήσιμες εντολές

ΜΑΘΗΜΑ: ΕΙΑΓΩΓΗ ΣΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ (UNIX) ΕΡΓΑΣΤΗΡΙΟ. 9o ΕΡΓΑΣΤΗΡΙΟ

3ο Εργαστήριο Βασικές εντολές διαχείρισης αρχείων σε LINUX

Μερικές άλλες χρήσιμες εντολές

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στο Λ.Σ. UNIX

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact:

Shell Scripts: loops / if / test

Μεταφορά Αρχείων µε χρήση της Υπηρεσίας FTP σελ. 1

ΟΛΑ ΤΑ SCRIPT files πρέπει να είναι ΕΚΤΕΛΕΣΙΜΑ: $*, : ΟΛΑ - Η λίστα (ο πίνακας) με τα ορίσματα $# πλήθος παραμέτρων. one two third parameter

Εισαγωγή στην Επιστήμη της Πληροφορικής Εργαστήριο. UNIX Μέρος 1

Εισαγωγή στα Λειτουργικά Συστήματα

Επαναληπτικές Ασκήσεις

Πως δημιουργούμε ένα νέο αρχείο κειμένου; Με τρεις τρόπους:

Λειτουργικά Συστήματα

Εισαγωγή στα Λειτουργικά Συστήματα

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη

HY555 Παράλληλα Συστήματα και Grids Χειμερινό εξάμηνο 2007 Άσκηση 3 Εξοικείωση με το EGEE GRID Environment

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

Λειτουργικά Συστήματα

Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI. Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

Εισαγωγή στην Επιστήμη της Πληροφορικής Εργαστήριο. UNIX Μέρος 2

[11] Υπολογιστικά συστήματα: Στρώματα. Περιεχόμενα. Εισαγωγή. επικοινωνία εφαρμογές λειτουργικό σύστημα προγράμματα υλικό

2ο Εργαστήριο. Εισαγωγική στο Λ.Σ. LINUX Γενικές εντολές συστήματος και χρηστών

Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI. Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης

Εισαγωγή στα Λειτουργικά Συστήματα

Εργαστήριο ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ UNIX

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στο Λ.Σ. UNIX

Λειτουργικά Συστήματα. Άσκηση Πράξη. Shell Programming

2.1. Οι λογαριασµοί χρηστών Σύνδεση (login) και αποσύνδεση (logout)

Εκφώνηση άσκησης. Η Κρεμάλα σαν παιχνίδι. Ανάλυση. Μέρος Α Αναφoρά, ανάλυση τακτικής. Υλοποίηση του παιχνιδιού «Κρεμάλα»

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ I

Λειτουργικά Συστήματα. Shell Programming

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

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Εισαγωγή στο Unix

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017

Προγραμματισμός Ι. Προεπεξεργαστής. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Εργαστήριο Λειτουργικών Συστημάτων. Shell Programming

ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ

ΤΕΙΘ ΣΤΕΦ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ (UNIX) ΕΡΓΑΣΤΗΡΙΟ. 3o ΕΡΓΑΣΤΗΡΙΟ

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems

Εισαγωγή στην Αριθμητική Ανάλυση

Linux με τη χρήση κονσόλας

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

ΣΕΛΙ Α 1 ΚΕΦΑΛΑΙΟ 1 - ΑΡΧΙΚΑ

wc -l <file1 10 ή να μετρήσω πόσες γραμμές δίνει μια οποιαδήποτε άλλη εντολή π.χ. η finger : finger wc -l 8

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Python. 1η Ομάδα Ασκήσεων

Εργαστήριο 6 Ασκήσεις: To Εργαλείo Ωφελιμότητας Awk Προγραμματισμός Κελύφους Bash

Λειτουργικά Συστήματα (ΗΥ-345) Χειμερινό Εξάμηνο

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

ΜΕΤΑΦΟΡΑ ΑΡΧΕΙΩΝ FTP

ΤΕΙΘ ΣΤΕΦ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ (UNIX) ΕΡΓΑΣΤΗΡΙΟ. 6o ΕΡΓΑΣΤΗΡΙΟ

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στο UNIX. Κωνσταντίνος Καραφασούλης ιδάσκων (Π 407) Τµήµα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστηµάτων

*? [xyz] [^xy] [!0-9] [:alpha:] [:digit:]

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

Αλληλεπίδραση με το Matlab

Πληρουορική Γ Γσμμασίοσ

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΞΙ (6)

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ

CS 150 Assignment 2. Assignment 2 Overview Opening Files Arrays ( and a little bit of pointers ) Strings and Comparison Q/A

ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ I. 1. Εισαγωγή 3 ΠΡΟΛΟΓΟΣ

ΗΥ-100: Εισαγωγή στην Επιστήμη Υπολογιστών 3η σειρά ασκήσεων

Εισαγωγή στον Προγραμματισμό

ΕΡΓΑΣΤΗΡΙΟ 2: Unix Tutorial

Δίκτυα Η/Υ στην Επιχείρηση

Προγραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

ΚΥΠΡΙΑΚΟΣ ΣΥΝΔΕΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY 21 ος ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δεύτερος Γύρος - 30 Μαρτίου 2011

Σύντομες εισαγωγικές σημειώσεις για την. Matlab

Προγραμματισμός Η/Υ (ΤΛ2007 )

Απομακρυσμένη Πρόσβαση και Εντολές Ελέγχου και Υποστήριξης

ΦΥΣ 145 Μαθηµατικές Μέθοδοι στη Φυσική. Πρόοδος 28 Μαρτίου 2009 Οµάδα 1 η

ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στην Python και στο IDLE

FTP - (File Transfer Protocol ) Πρωτόκολλο Μεταφοράς Αρχείων

1st exercise of work2 - REMARKS

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

FAIL PASS PASS οριακά

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2018 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος

ΜΑΘΗΜΑ: ΕΙΑΓΩΓΗ ΣΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ (UNIX) ΕΡΓΑΣΤΗΡΙΟ. 10o ΕΡΓΑΣΤΗΡΙΟ

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

ΣΗΜΕΙΩΣΕΙΣ. στη γλώσσα προγραμματισμού. Γκέτσιος Βασίλειος

Διαδικαστικά. Εισαγωγή στο Λειτουργικό Σύστημα UNIX. Διαδικαστικά. Τι είναι το Λειτουργικό Σύστημα

Εισαγωγή στον Προγραμματισμό Μάθημα 1: Βασική Πλοήγηση σε Linux CLI. Οκτώβριος 2016 Χ. Αλεξανδράκη

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

3 ο Εργαστήριο Μεταβλητές, Τελεστές

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

Προτεινόμενες εργασίες Προγραμματισμού Διαδικτύου

Matlab functions. Κολοβού Αθανασία, ΕΔΙΠ, Τμήμα Πληροφορικής και Τηλεπικοινωνιών, ΕΚΠΑ

Transcript:

ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Τμημα Πληροφορικης και Τηλεματικης Τσάμη Παναγιώτα ΑΜ: 20833 ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Άσκηση 1 Αθήνα 13-12-2011

Αναφορά Ενότητα 1 A Δημιουργήστε στο φλοιό 3 εντολές (alias) που η καθεμιά θα κάνει τα εξής: Να εμφανίζει τα 5 παλαιότερα κρυφά αρχεία ενός καταλόγου. Να βρίσκει όλα τα αρχεία τα οποία έχουν μέγεθος πάνω από 20000Κ (δείτε την εντολή nd) Να συνδέεται στον water.dit.hua.gr Κώδικας alias lsold='ls -1tA grep '^\.' tail -5' alias nd20m='nd / -size +20000k' alias huaconnect='ssh it20833@water.dit.hua.gr' Περιγραφή Η εντολή alias αναθέτει την εντολή που βρίσκεται μετά το = στο όνομα που γράφουμε πριν το = φτιάχνοντας έτσι μια συντομογραφία της εντολής. Η εντολή ls μας δείχνει την λίστα των περιεχομένων του καταλόγου στον οποίο βρισκόμαστε. Χρησιμοποιούμε σαν παράμετρο στην ls το 1 (ls -1) το οποίο μας εξασφαλίζει την κατακόρυφη στοίχιση των περιεχομένων του καταλόγου. Μια άλλη παράμετρος που χρησιμοποιούμε είναι το t το οποίο μας ταξινομεί χρονικά τα περιεχόμενα του καταλόγου, βάζοντας το πιο πρόσφατο στην κορυφή. Με την παράμετρο Α εμφανίζουμε και τα κρυφά αρχεία του καταλόγου εκτός από τα. και τα.. που εμφανίζονται αν βάλουμε σαν παράμετρο το α. Το περνά σαν παράμετρο στην δεξιότερη εντολή αυτά που βρίσκονται αριστερά. Το grep ψάχνει ενώ το ^ είναι regular expression και δηλώνει στο grep να ψάξει τα αρχεία που ξεκινάνε με τελεία (.). Τέλος το tail σύμφωνα με την παράμετρο του (tail - 5) μετρά από το τέλος της λίστας 5 αρχεία. Η εντολή nd βρίσκει στον συγκεκριμένο κατάλογο που του δίνεις με παράμετρο το μέγεθος τα αρχεία που έχουν μέγεθος πάνω από 20000Κ (- size +20000k).

Το ssh είναι μια εντολή που μας εξασφαλίζει σύνδεση σε ένα ασφαλές κέλυφος. Συνεπώς αν την χρησιμοποιήσουμε και έπειτα γράψουμε το username μας (πχ. It20833) και @ μπροστά από το water.dit.hua.gr, τότε θα μπορέσουμε να συνδεθούμε σε ένα ασφαλές κέλυφος εκεί πληκτρολογώντας τον κωδικό μας. B Γράψτε ένα shell script που να δείχνει τις παρακάτω πληροφορίες τον συνδεδεμένο χρήστη αυτή τη στιγμή τον τρέχοντα φλοιό το home directory την τιμή της μεταβλητής PATH τον τρέχοντα κατάλογο εργασίας πόσοι χρήστες είναι συνδεδεμένοι αυτή τη στιγμή στο μηχάνημα και να τις αποθηκεύει σε αρχείο με όνομα userinfo-1-12-2011 (το οποίο θα συμπεριλαμβάνει την τρέχουσα ημερομηνία) Κώδικας #!/bin/sh echo "- You are `whoami` - Your shell is $SHELL - Your home directory is $HOME - Your PATH environment variable is $PATH - Working directory: $PWD - There are `who wc -l` user(s) currently logged in" > userinfo-`date +%d-%m- %Y` Περιγραφή Η εντολή echo τυπώνει ό,τι βρίσκεται μέσα στα αυτάκια της. Η εντολή whoami τυπώνει το όνομα του χρήστη που είναι συνδεδεμένος στο κέλυφος. Τα `` μέσα στα οποία βρίσκεται το whoami υπάρχουν για να δηλώνουν στην echo πως ό,τι βρίσκεται μέσα σ αυτά είναι μια εντολή που εκτελείται. Η μεταβλητή περιβάλλοντος $HOME όταν καλείται τυπώνει το home μας. Η μεταβλητή περιβάλλοντος $PATH δείχνει το μονοπάτι στο οποίο βρισκόμαστε. Η μεταβλητή περιβάλλοντος $PWD μας δείχνει τον τρέχοντα κατάλογο εργασίας. Τέλος, η εντολή who μας δείχνει ποιοι χρήστες βρίσκονται συνδεδεμένοι στον συγκεκριμένο υπολογιστή, το περνά σαν παράμετρο στην

δεξιότερη εντολή αυτά που βρίσκονται αριστερά\, το wc μετρά λέξεις και το l σαν παράμετρο μετρά σειρές και το > κάνει redirect το αποτέλεσμα μιας εντολής σε ένα αρχείο με όνομα userinfo-τρέχουσα ημερομηνία την οποία παίρνει με το format -`date +%d-%m-%y`. Ενότητα 2 Δημιουργήστε ένα shell script με όνομα even_odd το οποίο να παίρνει σαν όρισμα ένα όνομα αρχείου και να δημιουργεί 2 ξεχωριστά αρχεία, τα even και odd, στα οποία θα γράφει στο πρώτο τις ζυγές γραμμές του αρχικού αρχείου και στο δεύτερο τις μονές. Θα πρέπει να κάνετε όλους τους απαραίτητους ελέγχους. Κώδικας #!/bin/sh le=$1 # Check if the le is a valid le if [ -z $le ]; then echo "Error: No input le given" exit 1 if [! -f $le ]; then echo "Error: $le is not a le" exit 2 if [! -r $le ]; then echo "Error: $le is not readable" exit 3 # Delete from $le all even lines (every 2 lines starting from 0th line) # And write the result to odd sed '0~2d' $le > odd # Delete from $le all odd lines (every 2 lines starting from 1st line) # And write the result to even sed '1~2d' $le > even echo "`cat odd wc -l` lines were written to 'odd'. `cat even wc -l` lines were written to 'even'."

Περιγραφή Αρχικά εκχωρούμε την μεταβλητή $1 στο le. Έπειτα ελέγχουμε αν το αρχείο αυτό είναι έγκυρο ανοίγοντας μια if στην οποία με την παράμετρο z βλέπουμε αν το αρχείο υπάρχει, αλλιώς τυπώνει σχετικό error. Μετά ελέγχουμε αν δεν είναι αρχείο αυτό που μας έχει δώσει ο χρήστης με την παράμετρο f και πετάμε σχετικό error. Στη συνέχεια ελέγχουμε αν το αρχείο αυτό δεν είναι αναγνώσιμο με την παράμετρο r και τυπώνει σχετικό error. Με την εντολή sed κάνουμε μετατροπή και φιλτράρισμα του κειμένου ενώ το d σβήνει τη γραμμή στην οποία βρίσκεται κάθε φορά. Το 0~2 και το 1~2 μας λέει πως η εντολή sed σβήνει κάθε σειρά του κειμένου ξεκινώντας από την σειρά 0 με βήμα 2 και ξεκινώντας από τη σειρά 1 με βήμα 2 κρατώντας τις μονές και τις ζυγές σειρές του αρχείου αντίστοιχα και τα περνάει στον φάκελο odd και even σύμφωνα με τα παραπάνω. Τέλος, τυπώνουμε το πλήθος των μονών και των ζυγών σειρών που βρέθηκαν χρησιμοποιώντας την εντολή cat με την οποία βλέπουμε το περιεχόμενο ενός αρχείου και μετρώντας τις σειρές που βρέθηκαν σε κάθε αρχείο με την εντολή wc με παράμετρο το l. Ενότητα 3 Nα δημιουργήσετε ένα shell script με ονομα synchronize, το οποίο θα συγχρονίζει με τη χρήση της εντολής rsync τα αρχεία σας από εναν υπολογιστή στον τοπικό υπολογιστή ή και το αντίστροφο. Το script θα ζητάει από το χρήστη τα εξής ορίσματα : Τον κατάλογο πηγή Τον κατάλογο στόχο Η μεταφορά απαιτεί οι δύο υπολογιστές να έχουν εγκατεστημένο το ssh και στον υπολογιστή που θα εκτελείται το script να υπάρχει η εντολή rsync. Για να καθορίσετε τον φάκελο πηγή, όταν δίνετε τα ορίσματα θα προηγείται το -from και για να καθορίσετε τον φάκελο στόχο θα προηγείται το -to. Για να καθορίσετε τον απομακρυσμένο υπολογιστή θα δίνετε είτε την IP (π.χ. 83.212.240.195) διεύθυνση είτε το hostname (π.χ. water.dit.hua.gr). Δώστε τις κατάλληλες παραμέτρους της εντολής rsync (π.χ. να εμφανίζει τη λίστα των αρχείων που συγχρονίζονται). Παράδειγμα: syncronize -from water.dit.hua.gr:/home/it20900/desktop -to /home/user/desktop θα συγχρονίζει τον φάκελο /home/it20900/desktop του απομακρυσμένου μηχανήματος με το φάκελο /home/user/desktop του τοπικού. Τέλος, θα κρατείται ένα log με τις μεταφορές που έγιναν, το οποίο θα αποθηκεύεται στο home directory του χρήστη με όνομα syncronize_log. Οι εγγραφές του log θα είναι της μορφής: Thu Dec 1 13:54:48 EET 2011 : syncronization from water.dit.hua.gr:/home/it20900/desktop to /home/user/desktop Φροντίστε να κάνετε ελέγχους και να ενημερώνετε το χρήστη σε περιπτώσεις σφάλματος.

Κώδικας #!/bin/sh while [ -n "$1" ] do if [ $1 = "-from" ]; then shift from=$1 elif [ $1 = "-to" ]; then shift to=$1 shift done if [ -z $to ] [ -z $from ]; then echo "Error: You must provide both -from and -to values" exit 1 rsync -arv $from $to echo "`date` : syncronization from $from to $to" >> ~/synchronize_log Περιγραφή Χρησιμοποιούμε μια while και λέμε πως όσο η πρώτη μεταβλητή $1 δεν είναι κενή τότε να ελέγχουμε: 1. αν η μεταβλητή έχει σαν παράμετρο το from τότε με το shift πηγαίνουμε μια θέση δεξιά στις μεταβλητές (ορίζοντας έτσι ως $1 την επόμενη μεταβλητή) και την αναθέτουμε στο from. 2. αν η μεταβλητή έχει σαν παράμετρο το to τότε με το shift πηγαίνουμε μια θέση δεξιά στις μεταβλητές (ορίζοντας έτσι ως $1 την επόμενη μεταβλητή) και την αναθέτουμε στο to. Έπειτα ελέγχουμε αν οι μεταβλητές που ανατέθηκαν στο from και στο to είναι μηδέν και πετάμε σχετικό error. Τέλος, χρησιμοπούμε την εντολή rsync η οποία συγχχρονίζει αρχεία με τις εξής μεταβλητές: 1. την a η οποία διατηρεί όλα τα δικαιώματα που υπήρχαν στα αρχεία τα οποία συγχρονίστηκαν. 2. την r η οποία συγχρονίζει και όλους τους υποκαταλόγους καθώς και τα αρχεία τους. 3. την v η οποία εμφανίζει τη λίστα των αρχείων που συγχρονίζονται.

και με την echo τυπώνουμε την ημερομηνία και τα ονόματα των φακέλων που συγχρονίστηκαν και τα προσθέτουμε με τα >> στον φάκελο synchronize_log.