pmav99 Δημοσ. 27 Οκτωβρίου 2013 Δημοσ. 27 Οκτωβρίου 2013 Όχι. Αλλά γενική αρχή όταν γράφεις ένα regex είναι να κάνεις match τα ελάχιστα δυνατά. 1
pmav99 Δημοσ. 27 Οκτωβρίου 2013 Δημοσ. 27 Οκτωβρίου 2013 Τρίτωνα, για δοκίμασε μου μία αυτό. Πρέπει να βρίσκει τα ονόματα και τα μεγέθη από κανονικούς σκληρούς, από RAID και από lvm. import os import re import shlex import subprocess from pprint import pprint def get_disks(): get_size = lambda disk: subprocess.check_output(shlex.split("lsblk -d -n -o size %s" % disk)) pattern = re.compile( r"^/dev/[sh]d[a-z]\d+$|^/dev/md\d+$|^/dev/mapper/\w+-\w+$") potential_disks = ["/dev/" + path for path in os.listdir("/dev/")] +\ ["/dev/mapper/" + path for path in os.listdir("/dev/mapper/")] disks = [disk for disk in potential_disks if pattern.match(disk)] return {disk: get_size(disk) for disk in disks} pprint(get_disks()) Βασικά τρίτωνα, το df -h γιατί δεν μας κάνει; This manual page documents the GNU version of df. df displays the amount of disk space available on the file system con taining each file name argument. If no file name is given, the space available on all currently mounted file systems is shown. Disk space is shown in 1K blocks by default, unless the environment variable POSIXLY_CORRECT is set, in which case 512-byte blocks are used. If an argument is the absolute file name of a disk device node containing a mounted file system, df shows the space available on that file system rather than on the file system containing the device node (which is always the root file system). This version of df cannot show the space available on unmounted file systems, because on most kinds of systems doing so requires very nonportable intimate knowledge of file system structures. δώσε μία και το output από ένα σκέτο lsblk
tritonas00 Δημοσ. 28 Οκτωβρίου 2013 Μέλος Δημοσ. 28 Οκτωβρίου 2013 βγαζει: Μπορεις να τα κανεις και sort? Να γινει ευαναγνωστη η λιστα. Χρησιμοποιουμε lsblk γιατι μονος σου εδωσες την απαντηση: This version of df cannot show the space available on unmounted file systems. Δεν θελουμε μονο τα mounted partitions, θελουμε ολα τα διαθεσιμα. Το script τα κανει mount αναλογα, εκει που πρεπει, οπως πρεπει, με την σειρα που πρεπει. Με κυρος και σεβασμο στον χρηστη. Σκετη lsblk βγαζει:
pmav99 Δημοσ. 29 Οκτωβρίου 2013 Δημοσ. 29 Οκτωβρίου 2013 Να βάλουμε τουλάχιστον μια γραμμή ακόμα για τα excluded folders, ώστε ο χρήστης να γράφει μόνο τα paths και να γλυτώνει τα "--exclude="; 1
tritonas00 Δημοσ. 29 Οκτωβρίου 2013 Μέλος Δημοσ. 29 Οκτωβρίου 2013 Εχουμε νεο τροπο επιλογης partitions στο dialog interface. Πλεον εχουμε ολες τις επιλογες μαζεμενες σε εναν dialog και επιλεγουμε οτι θελουμε. Ετσι αποφευγεται το μαρτυριο να περναμε απο ολες τις ερωτησεις. Επισης μας δειχνει και το filesystem, με χρηση της blkid. O dialog ενημερωνεται real time και μας δειχνει τι επιλεξαμε, διπλα σε καθε option. -------------------------------------------------- pmav, οντως ειναι πολυ βολικο τελικα. Να σου πω, μπορεις να βαλεις και την info screen? Στο backup ειναι: This script will make a tar backup image of this system.==>Make sure you have enough free space.==>Also make sure you have GRUB or SYSLINUX packages installed.GRUB PACKAGES:->Arch: grub-bios->Debian: grub-pc->Fedora: grub2SYSLINUX PACKAGES:->Arch: syslinux->Debian: syslinux extlinux->Fedora: syslinux syslinux-extlinux
pmav99 Δημοσ. 29 Οκτωβρίου 2013 Δημοσ. 29 Οκτωβρίου 2013 βασικά θέλει και κάποιου τύπου validation. Να τσεκαρει δηλαδή αν τα directories υπάρχουν κτλ
tritonas00 Δημοσ. 29 Οκτωβρίου 2013 Μέλος Δημοσ. 29 Οκτωβρίου 2013 βασικά θέλει και κάποιου τύπου validation. Να τσεκαρει δηλαδή αν τα directories υπάρχουν κτλ Oποιοδηποτε error της tar παει στο log και εμφανιζει σχετικο message το script. Επισης το --exclude ειναι και για αρχεια, οχι μονο dirs. Oποτε μπορεις να το κανεις ξερω γω Excluded directories/files
pmav99 Δημοσ. 29 Οκτωβρίου 2013 Δημοσ. 29 Οκτωβρίου 2013 Oποιοδηποτε error της tar παει στο log και εμφανιζει σχετικο message το script. Ναι αλλά γιατί να περιμένεις να εκτελεστεί το script? Να ανοιξεις το xterm δηλαδή, να δώσεις sudo κτλ. Το νόημα του validation είναι να το κάνεις πριν τρέξεις το πρόγραμμα ώστε κατευθείαν να σου πει ότι έχεις λάθος. Σκέψου τις forms στις ιστοσελίδες. Σου λένε ότι το password θέλει πχ τουλάχιστον 8 γράμματα. Τον έλεγχο τον κάνουν locally στον client (δηλαδή στο browser). Δεν κανουν POST στον server και περιμένουν από αυτόν να τους πει ότι είναι λάθος. Γενικός κανόνας είναι «Try to fail early» Αν θες ποσταρε μου το τμήμα που κάνεις validation στο bash να δω τι κάνεις. Επίσης βρήκα τρόπο να βάλω και tooltips οπότε να μπορούμε να γράψουμε πιο αναλυτικά μηνύματα βοήθειας (όχι ότι χρειάζονται τρελά αλλά οκ).
tritonas00 Δημοσ. 29 Οκτωβρίου 2013 Μέλος Δημοσ. 29 Οκτωβρίου 2013 Μωρε σωστα τα λες, αλλα αν πεις οτι κανεις validation απο πριν, στο restore ειδικα, αιμα. To μεγαλυτερο μερος του check στο restore το κανει η check_input Στο backup ok ειναι λιγοι οι ελεγχοι. Eλεχγει: 1. Destination path 2. Αν ειναι εγκατεστημενη η bsdtar αν αυτη επιλεχθει. 3. Αν η tar/bsdtar εκτελέστηκε σωστα η οχι ωστε να βγαλει σχετικο μηνυμα στο τελος.
tritonas00 Δημοσ. 29 Οκτωβρίου 2013 Μέλος Δημοσ. 29 Οκτωβρίου 2013 Αρχισα την ενωση. git clone https://github.com/tritonas00/system-tar-and-restore -b unifiedΣτην αρχη ρωταει να επιλεξουμε Mode. Επισης αναλογα με τα arguments που δινουμε, μπαινει και στο αντιστοιχο Mode αυτοματα. Αν δωσουμε arguments απο διαφορα modes ταυτοχρονα, θα βγαλει αναλογο error. Λιγες δοκιμες που εκανα, επαιξαν σωστα. Οποιος μπορει ας δοκιμασει λιγο τα arguments.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα