Προς το περιεχόμενο

linux ερωτηση


stavros190

Προτεινόμενες αναρτήσεις

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

  παρακατω δεν ξερω πως γινεται

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δεν εχω ιδεα απο 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 ειναι το μικροτερο σου προβλημα :)

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Μέχρι το shebang καλά τα πας, από εκεί και μετά δεν καταλαβαίνω τι γράφεις.

Αντιθέτως ο @mphxths που (ειρωνικά) λέει ότι δεν έχει ιδέα από scripting, (που να 'χες κιόλας δηλαδή) σου γράφει κάποια πραγματάκια που πρέπει να λάβεις υπόψιν σου ΠΡΙΝ ξεκινήσεις την γραφή του κυρίως script (για το backup).

 

Μη περιμένεις από μένα φυσικά βοήθεια του στυλ "πάρε τον κώδικα έτοιμο",

απλά συγκρότησε την σκέψη σου, φτιάξε τον αλγόριθμό σου, και μετά ξεκίνα και χτίζε το script. Έτσι όπως το έχεις γράψει τώρα φαίνεται σαν να έγραφες ότι σου ερχόταν στο μυαλό εκείνη την ώρα (ότι θυμόσουν από εντολές , loops..κλπ).

  • Like 2
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...