pmav99 Δημοσ. 26 Οκτωβρίου 2013 Δημοσ. 26 Οκτωβρίου 2013 κλεισε και το destination path με ' ' και ειναι κομπλε τα arguments. done Επίσης γιατί δεν έχει sudo μπροστά; Done Αλλά στην γραμμή του execute θεωρεί ότι το backup είναι στο /usr/bin Ό,τι είναι στο PATH. Άμα θέλετε μπορούμε να το βάζουμε να το διαλέγει βάζοντας σαν default το αποτέλεσμα του "which backup.sh"
pmav99 Δημοσ. 26 Οκτωβρίου 2013 Δημοσ. 26 Οκτωβρίου 2013 Μήπως είναι πιο απλό να συγχωνευτούν τα url και file; Ουσιαστικά σε ενδιαφέρει να έχεις ένα path. Το αν θα είναι στον τοπικό δίσκο ή στο δίκτυο μικρή σημασία έχει. Μετά μέσα από το script τσεκάρεις αν υπάρχει το http στην αρχή του path. https://en.wikipedia.org/wiki/Uniform_resource_identifier Μου βγάζει backup.sh not found. Δεν το έχεις εγκατεστημένο;
tritonas00 Δημοσ. 26 Οκτωβρίου 2013 Μέλος Δημοσ. 26 Οκτωβρίου 2013 Μήπως είναι πιο απλό να συγχωνευτούν τα url και file; Ειναι ξεχωριστα arguments + το url εχει και αλλα arguments για optional username και password + για το file υπαρχει και ελεγχος: 1. Αν το αρχειο οντως υπαρχει 2. Αν ειναι οντως archive Απλα μπορεις να βαλεις το -f να ακυρωνει τα -u -n -p και τουμπαλιν Η μπορεις να μη βαλεις τιποτα, ασε τον χρηστη να βαζει οτι θελει και να αναλαβει το script το error handling.
mask2011 Δημοσ. 26 Οκτωβρίου 2013 Δημοσ. 26 Οκτωβρίου 2013 Το κατεβάζω από το github. Δεν το έχω βάλει από το AUR. Για το default terminal μήπως θα έπρεπε με έναν τρόπο να αναγνωρίζει πρώτα το DE/WM; Δεν κρατάνε κάπου κάποιο αρχείο με τα defaults τα De ή ο WM; Θα μπορούσες να το βρεις από εκεί. Αν είναι κοτσάνα αυτό που είπα μην με λιντσάρετε.
pmav99 Δημοσ. 26 Οκτωβρίου 2013 Δημοσ. 26 Οκτωβρίου 2013 Ειναι ξεχωριστα arguments + το url εχει και αλλα arguments για optional username και password + για το file υπαρχει και ελεγχος: 1. Αν το αρχειο οντως υπαρχει 2. Αν ειναι οντως archive Απλα μπορεις να βαλεις το -f να ακυρωνει τα -u -n -p και τουμπαλιν Η μπορεις να μη βαλεις τιποτα, ασε τον χρηστη να βαζει οτι θελει και να αναλαβει το script το error handling. Δεν λέω αυτό. Εννοώ ότι πιθανά μπορούν να απλοποιηθούν τα arguments που δίνει ο χρήστης. Δηλαδή το script να ζητάει απλά ένα URI. To URI ας είναι ότι θέλει: Πχ /path/to/foo/whatever http://domain.com/path/to/foo/whatever ftp://domain.com/path/to/foo/whatever Το script μετά θα ελέγχει τι τύπος ειναι το path, θα κάνει και τους υπόλοιπους ελέγχους και θα πράττει ανάλογα. Πιο λίγα arguments, πιο ευχάριστο user experience Τώρα ελέγχει για την ύπαρξη του sudo. To θέμα είναι ότι το su -c θέλει μετά την εντολή που ακολουθεί σε quotes. Προκύπτει δηλαδή κάτι τέτοιο (nested quotes): xterm -hold -e su -c 'backup.sh -d '/home/faramir' -a tar -c gzip -u 'asdfasdf' -i cli -q' Μπορούμε να βάλουμε κάπου άλλο τύπο quote (πχ " ... ") ή υπάρχει πρόβλημα; Για το terminal ίσως να μπορούμε να παίρνουμε το output του echo $TERM αλλά δεν ξέρω πόσο universal είναι
tritonas00 Δημοσ. 26 Οκτωβρίου 2013 Μέλος Δημοσ. 26 Οκτωβρίου 2013 ναι στα arguments μπορεις να βαλεις και " " τα δεχεται κανονικα. οντως δεν δειχνει σωστα η $TERM, μου βγαζει rxvt, ενω το εκτελεσιμο του terminal ειναι urxvt μπορει να το κοιταξω το URI απο εβδομαδα, αλλα θα ειναι massive code change αν υλοποιηθει και ειμαι της αποψης οτι δουλευει δεν το πειραζουμε να φανταστεις την install_bootloader πχ δεν την εχω ξαναγγιξει απο την 3.3 και μετα.
mask2011 Δημοσ. 26 Οκτωβρίου 2013 Δημοσ. 26 Οκτωβρίου 2013 Σε μένα λέει rxvt-unicode-256color και σε ένα lubuntu στο vbox λέει xterm αν και υπάρχει το lxterminal που ανοίγει από default.
tritonas00 Δημοσ. 26 Οκτωβρίου 2013 Μέλος Δημοσ. 26 Οκτωβρίου 2013 παντως στο xterm ειχα βαλει " " και στα arguments ' '
pmav99 Δημοσ. 26 Οκτωβρίου 2013 Δημοσ. 26 Οκτωβρίου 2013 μπορει να το κοιταξω το URI απο εβδομαδα, αλλα θα ειναι massive code change αν υλοποιηθει και ειμαι της αποψης οτι δουλευει δεν το πειραζουμε Οκ. Λογικά οι αλλαγές δεν θα είναι τόσο τραγικά μεγάλες. Παίρνεις το path. Ελέγχεις αν έχει το http στην αρχή. Αν όχι είναι αρχείο και κάνεις ότι έκανες και τώρα για το -file. Αν το έχει τσεκάρεις κάνεις ότι έκανες μέχρι τώρα για το -url. Κάτι άλλο. i) Τα root, home, boot, swap να τα βάλουμε να τα δίνουν μόνοι τους γράφοντας το κείμενο; ii) Να διαλέγουν μέσα από dialog ένα αρχείο (πχ το /dev/sda2) iii) Mέσω combobox να εμφανίζουμε τα /dev/sd* και /dev/hd*;
tritonas00 Δημοσ. 26 Οκτωβρίου 2013 Μέλος Δημοσ. 26 Οκτωβρίου 2013 Καλο ειναι να εμφανιζει λιστα με τα διαθεσιμα partitions και να επιλεγει ο χρηστης, οποτε combobox. Στο script χρησιμοποιουμε για τα απλα: for f in /dev/[hs]d[a-z][0-9]; do echo -e "$f $(lsblk -d -n -o size $f)"; doneγια lvm: for f in $(find /dev/mapper/ | grep '-'); do echo -e "$f $(lsblk -d -n -o size $f)"; doneγια raid: for f in $(find /dev -regex "/dev/md[0-9].*"); do echo -e "$f $(lsblk -d -n -o size $f)"; done
pmav99 Δημοσ. 27 Οκτωβρίου 2013 Δημοσ. 27 Οκτωβρίου 2013 Χμ... νομίζω ότι έτσι όπως το έχεις, στους απλούς δίσκους δε θα βρίσκει τα partitions όταν πας sda10 και πάνω. Επίσης νομίζω ότι τα globs δεν υποστηρίζουν το "+" οπότε καλύτερα να το κάνεις και αυτό με regex. Ναι οριακή περίπτωση αλλά οκ. for f in $(find /dev -regex "^/dev/[hs]d[a-z][0-9]+$"); do echo -e "$f $(lsblk -d -n -o size $f)"; done Πιθανότατα το ίδιο γίνεται και στο RAID. Ερωτήσεις 0. Βγάζουν και οι 3 εντολές output της ίδιας μορφής; 1. Ποια είναι η μορφή των LVM? /dev/mapper/ τι? Κάποιος που έχει μπορεί να ποστάρει το output της εντολής του τρίτωνα; 2. Η lsblk δείχνει το output όλων των δίσκων ανεξαρτήτως του τύπου; Bγάζει δηλαδή και RAID και LVM? Μήπως είναι πιο εύκολο να κάνουμε parse το output της, αντί να ψάχνουμε για καθε τύπο ξεχωριστά; Αν κάποιος έχει lvm/raid ας ποστάρει μία να δω τι βγάζει. Επίσης, κάποιος που έχει RAID, ας ποστάρει μία το output αυτού: import os import re pattern = re.compile(r"^[sh]d[a-z]\d+$|^md\d+\.\w+$") disks = [disk for disk in os.listdir("/dev/") if pattern.search(disk)] print disks https://www.debuggex.com/r/1tZw_dETm5rtF_XE
tritonas00 Δημοσ. 27 Οκτωβρίου 2013 Μέλος Δημοσ. 27 Οκτωβρίου 2013 Χμ... νομίζω ότι έτσι όπως το έχεις, στους απλούς δίσκους δε θα βρίσκει τα partitions όταν πας sda10 και πάνω. Επίσης νομίζω ότι τα globs δεν υποστηρίζουν το "+" οπότε καλύτερα να το κάνεις και αυτό με regex. Ναι οριακή περίπτωση αλλά οκ. for f in $(find /dev -regex "^/dev/[hs]d[a-z][0-9]+$"); do echo -e "$f $(lsblk -d -n -o size $f)"; done Ναι, το ξερω αλλα λεω θα υπαρχει ανθρωπος με πανω απο 10 partitions σε ενα δισκο? Θα το βαλω παντως οπως το εκανες, με regex. Πιθανότατα το ίδιο γίνεται και στο RAID. Με regex ειναι το raid, δειχνει κανονικα και 3ψηφια νουμερα. 0. Βγάζουν και οι 3 εντολές output της ίδιας μορφής; Ναι: partition-μεγεθος 1. Ποια είναι η μορφή των LVM? /dev/mapper/ τι? Κάποιος που έχει μπορεί να ποστάρει το output της εντολής του τρίτωνα; Eιναι της μορφης /dev/mapper/VolumeGroup-LogicalVolume. H - παντα υπαρχει, την βαζει το ιδιο το lvm οταν τα δημιουργεις 2. Η lsblk δείχνει το output όλων των δίσκων ανεξαρτήτως του τύπου; Bγάζει δηλαδή και RAID και LVM? Μήπως είναι πιο εύκολο να κάνουμε parse το output της, αντί να ψάχνουμε για καθε τύπο ξεχωριστά; Αν κάποιος έχει lvm/raid ας ποστάρει μία να δω τι βγάζει. Ναι κανονικα/raid/lvm. Ειναι συνοδευτικη βασικα και δειχνει απλα το μεγεθος των partitions. Μπορεις και να μην την βαλεις. Οι εντολες για lvm και raid βγαζουν: Και πως τα δειχνει το script: To output αυτου που εβαλες:
pmav99 Δημοσ. 27 Οκτωβρίου 2013 Δημοσ. 27 Οκτωβρίου 2013 Ευχαριστώ. Τώρα που το ξανακοιτάω, το regex στα RAID πρακτικά κάνει match σε πάρα πολλά που μάλλον δεν θα έπρεπε. Ουσιαστικά κάνει match σε "/dev/md", μετά ένα αριθμό υποχρεωτικά και μετά οποιοδήποτε πλήθος, οποιουδήποτε χαρακτήρα. Κοίτα εδώ. To "σωστό" regex είναι το ακόλουθο ^/dev/md[0-9]+$ https://www.debuggex.com/r/ZdefB9lxGyUwkEyo Για τα υπόλοιπα θα τα δω.
tritonas00 Δημοσ. 27 Οκτωβρίου 2013 Μέλος Δημοσ. 27 Οκτωβρίου 2013 Γινεται ποτε στο /dev να υπαρξουν: /dev/md0asdf/dev/md112asdf/dev/md1/asdf/23/asdf/23/dev/md2.asdfasdf/dev/md12.23 ?
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα