stavros190 Δημοσ. 29 Δεκεμβρίου 2015 Δημοσ. 29 Δεκεμβρίου 2015 1. Γράψτε ένα script με όνομα bckp1 το οποίο θα κρατά για έναν συγκεκριμένο χρήστη (το user name του οποίου θα δίνεται ως πρώτο όρισμα) εφεδρικά αντίγραφα μιας περιοχής του λογαριασμού του σε κάποια άλλη. Το script θα πρέπει να δέχεται ως δεύτερο όρισμα ένα κατάλογο (ή αρχείο), να δημιουργεί ένα προς αποθήκευση αντίγραφο του ορίσματος (χρήση tar) και να το αντιγράφει στον κατάλογο που ορίζει το τρίτο όρισμα. Αν ωστόσο το τρίτο όρισμα είναι αρχείο (και όχι κατάλογος) τότε θα πρέπει απλά να προσθέτει (append) το προς αποθήκευση αντίγραφο στο αρχείο αυτό. Κάντε όλους τους απαραίτητους ελέγχους και για τα τρία ορίσματα (καθώς και για το συνολικό αριθμό των ορισμάτων που δόθηκαν κατά την εκτέλεση). Τροποποιήστε στη συνέχεια κατάλληλα το ανωτέρω script ώστε να πραγματοποιεί το backup προγραμματισμένα (χρήση at), σε μια προκαθορισμένη ώρα που θα δίνεται ως τέταρτο όρισμα κατά την εκτέλεση (ονομάστε το νέο script prgbckp). εγω εχ κανει αυτα kwrite bckp1& #!/bin/bash until $@ do if [$1]then sed -w user.txt fi if[$2]then tar cf file.tar file cp file.tar file1 fi if [ -a file1 $3] then cat file1 >> file2 fi done παρακατω δεν ξερω πως γινεται
Oxygene Δημοσ. 29 Δεκεμβρίου 2015 Δημοσ. 29 Δεκεμβρίου 2015 Στο τέλος θα βγάλεις όλη την ακαδημαϊκή χρονιά εδώ Έτρεξες το παραπάνω script; Ρωτώ γιατί είναι τίγκα στα λάθη 2
mphxths Δημοσ. 29 Δεκεμβρίου 2015 Δημοσ. 29 Δεκεμβρίου 2015 Δεν εχω ιδεα απο scripting αλλα καταλαβαινω οτι λειπουν πολλα 1.Ελεγχος οτι οι παραμετροι ειναι 3 και οχι 1 ή 10 if [ "$# -ne 3 ]; then echo "Illegal number of parameters" exit fi 2. Ελεγχος οτι η 1η παραμετρος ειναι υπαρκτος user USER=$1 if grep -Fxq "$USER" /etc/passwd then # δεν καταλαβα τι σου λεει εδω να κανεις..να παρεις ενα μερος του $HOME?να το κανεις copy καπου αλλου μεσα στο $HOME?εφοσον ειναι υπαρκτος user , πρεπει να τσιμπησεις το πεδιο του "HOME DIR" απο το /etc/passwd , να το περασεις σε καποια μεταβλητη π.χ. USERDIR και να κανεις καποιο cp $USERDIR/blabla $USERDIR/blabla2 else echo "$USER user does not exist" exit fi 3.Πρεπει να κανεις ελεγχο αν οι παραμετροι 2 και 3 ειναι αρχεια ή καταλογοι και αν υπαρχουν. PAR2=$2 if [ -d "$PAR2" ]; then # τοτε ειναι dir else if [ -f "$PAR2" ]; then # τοτε ειναι αρχειο else #δεν υπαρχει fi Οι ιδιοι ελεγχοι πρεπει να γινουν και στην παραμετρο 3 , ωστε αν ειναι αρχειο , να κανεις append (cat >> δηλ , αν δεν υπαρχει απλα θα δημιουργησεις νεο , cat > δηλ), ενω αν ειναι folder να το γραψεις μεσα σε αυτο. Επισης πρεπει να ελεγχθει η παραμετρος 3 αν ειναι οντως υπαρκτο folder γιατι αν δεν ειναι , θα πρεπει να το δημιουργησεις και μετα να αντιγραψεις μεσα σε αυτο το αρχειο (παραμετρος 2). Παρε ολα τα παραπανω , σουλουπωσε τα και το τελευταιο με την at ειναι το μικροτερο σου προβλημα 1
visualizer Δημοσ. 29 Δεκεμβρίου 2015 Δημοσ. 29 Δεκεμβρίου 2015 Συγνώμη αλλά γιατί γράφεις με τόσο μικρά γράμματα ρε συ ..μας βγήκαν τα μάτια
kesmarag Δημοσ. 29 Δεκεμβρίου 2015 Δημοσ. 29 Δεκεμβρίου 2015 νομιζω οτι τετοια threads ειναι το λιγοτερο αστοχα 2
dragonborn Δημοσ. 29 Δεκεμβρίου 2015 Δημοσ. 29 Δεκεμβρίου 2015 Μέχρι το shebang καλά τα πας, από εκεί και μετά δεν καταλαβαίνω τι γράφεις. Αντιθέτως ο @mphxths που (ειρωνικά) λέει ότι δεν έχει ιδέα από scripting, (που να 'χες κιόλας δηλαδή) σου γράφει κάποια πραγματάκια που πρέπει να λάβεις υπόψιν σου ΠΡΙΝ ξεκινήσεις την γραφή του κυρίως script (για το backup). Μη περιμένεις από μένα φυσικά βοήθεια του στυλ "πάρε τον κώδικα έτοιμο", απλά συγκρότησε την σκέψη σου, φτιάξε τον αλγόριθμό σου, και μετά ξεκίνα και χτίζε το script. Έτσι όπως το έχεις γράψει τώρα φαίνεται σαν να έγραφες ότι σου ερχόταν στο μυαλό εκείνη την ώρα (ότι θυμόσουν από εντολές , loops..κλπ). 2
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα