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

System tar & restore Project


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

Δημοσ.

ναι με το χερι παιζει.

 

το script ομως δεχεται μια εισοδο, η οποια απο arguments την δινουμε με quotes αν ειναι πολλα τα options.

 

backup.sh -u "--acls --xattrs ..."

 

πως θα το εβαζες μεσα στα πολλα για να παιξει? πχ

 

backup.sh -u "--acls --xattrs --exclude=/'ko ko'"

 

και παλι δεν επαιζε.

 

ακομα και με την read που εδινα:

 

--exclude=/"ko ko"

 

παλι δεν το επαιρνε

 

σε ολες τις περιπτωσεις επαιρνε: --exclude=/ko

  • Απαντ. 1,6k
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Δημοσ.

Γιατί δεν υποστηρίζεις τα options --include και --exclude απευθείας στο interface των backup.sh και restore.sh; Πιο απλό δεν θα είναι έτσι;

 

Έχει φυσικά το μειονέκτημα ότι θα μπορείς να ορίσεις τα ίδια args των *tar με διαφορετικούς τρόπους αλλα δεν θα χρειάζονται τέτοιες αλχημείες.

Δημοσ.

backup.sh -u "--acls --xattrs ..."

 

πως θα το εβαζες μεσα στα πολλα για να παιξει? πχ

 

backup.sh -u "--acls --xattrs --exclude=/'ko ko'"

 

και παλι δεν επαιζε.

 

ακομα και με την read που εδινα:

 

--exclude=/"ko ko"

 

παλι δεν το επαιρνε

 

σε ολες τις περιπτωσεις επαιρνε: --exclude=/ko

Δεν έχω κοιτάξει το πρότζεκτ και δεν ήξερα ότι το τρέχεις έτσι. Μια λύση που μπορεί να παίξει είναι με την eval αλλά δεν μου αρέσει αυτός ο τρόπος κλήσης (ειδικά το bash είναι προβληματικό σε αυτό το θέμα με τα quotes).

 

% tree foo 
foo
├── d1
│   └── f2
├── f1
└── la la
    ├── f3
    └── lo lo
        └── f4

3 directories, 4 files
% cat t3.sh 
#!/bin/bash

eval tar "$1"

% ./t3.sh "cvf ll.tar --exclude=\"la la\" foo" 
foo/
foo/d1/
foo/d1/f2
foo/f1
% ./t3.sh "cvf ll2.tar --exclude='la la' foo"  
foo/
foo/d1/
foo/d1/f2
foo/f1
Δεν το προτείνω βέβαια γιατί eval => Here be Dragons. Ίσως θα ήταν καλύτερα μια διαφορετική μέθοδος κλήσης όπως είπε και ο pmav99.
Δημοσ.

Γιατί δεν υποστηρίζεις τα options --include και --exclude απευθείας στο interface των backup.sh και restore.sh; Πιο απλό δεν θα είναι έτσι;

 

Έχει φυσικά το μειονέκτημα ότι θα μπορείς να ορίσεις τα ίδια args των *tar με διαφορετικούς τρόπους αλλα δεν θα χρειάζονται τέτοιες αλχημείες.

γιατι ηδη εχουμε κατι που κανει αυτη την δουλεια, μια εισοδο που δεχεται οτιδηποτε option μπορει να μπει.

 

θα ηταν extra κωδικας για το τιποτα πιστευω.

 

με ελαχιστο κωδικα μετατρεπει το // σε space μεσα στο array και κανει την δουλεια του. Αν δεν υπαρχει // δεν ασχολειται.

 

τι το κακο εχει αυτος ο τροπος?

 

αν το κανω οπως λετε, θελουμε extra ερωτησεις, extra variables, extra arguments... :P

Δημοσ.

Και αν κάποιος έχει όνομα με «//» πως θα τον κάνεις escape :P

 

το / δεν ειναι απαγορευμενος χαρακτηρας?

 

για αυτο εβαλα // και οχι κατι αλλο :P

 

δοκιμασε να φτιαξεις αρχειο/φακελο με // στο ονομα

 

ο thunar δεν με αφηνει

Δημοσ.

έβαλα επιτέλους τον ssd στο laptop

επειδή δε μπορούσε να κάνει boot από τον παλιό δίσκο που τον έβαλα στη θέση του dvd έβαλα ένα live usb crunchbang

έκανα chroot στην παλιά μου εγκατάσταση και με το transfer τη μετέφερα στον ssd

δούλεψε μια χαρά και τελείωσε σε ~15 λεπτά

 

restore.log

 

 

====================System Tar & Restore 4.5 {22-10-2014-21:49:18}====================

::SUMMARY
PARTITIONS:
root partition: /dev/sda2 ext4  80.8G discard
swap partition: /dev/sda3

BOOTLOADER:
Grub (i386-pc)
Location: /dev/sda

PROCESS:
Mode:     Transfer
Home:     Only hidden files and folders
System:   Debian based x86_64

RSYNC OPTIONS:
--exclude=/run/*
--exclude=/dev/*
--exclude=/sys/*
--exclude=/tmp/*
--exclude=/mnt/*
--exclude=/proc/*
--exclude=/media/*
--exclude=/var/run/*
--exclude=/var/lock/*
--exclude=/home/*/.gvfs
--exclude=lost+found
--exclude=/home/*/[^.]*

::TAR/RSYNC STATUS
System transferred successfully

::GENERATED FSTAB
# /dev/sda2
UUID=ad742fe9-3dec-4b2a-8530-e8a6848266c2  /  ext4  discard  0  1

# /dev/sda3
UUID=674f734e-8e90-4b6b-8dcb-a913828b61ee  none  swap  defaults  0  0

::PREPARING CHROOT ENVIROMENT
Binding /run
Binding /dev
Binding /dev/pts
Mounting /proc
Mounting /sys

::REBUILDING INITRAMFS IMAGES
update-initramfs: Generating /boot/initrd.img-3.14-2-amd64
modprobe: ERROR: ../libkmod/libkmod.c:557 kmod_search_moddep() could not open moddep file '/lib/modules/3.2.0-4-amd64/modules.dep.bin'
W: intel-microcode: cpuid kernel driver missing
W: intel-microcode: disabling IUCODE_TOOL_SCANCPUS option

::GENERATING LOCALES
Generating locales (this might take a while)...
  el_GR.UTF-8... done
  en_US.UTF-8... done
Generation complete.

::INSTALLING AND UPDATING GRUB2 IN /dev/sda
Installing for i386-pc platform.
grub-install: warning: Sector 32 is already in use by the program `FlexNet'; avoiding it.  This software may cause boot or other problems in future.  Please ask its authors not to store data in the boot track.
Installation finished. No error reported.
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.14-2-amd64
Found initrd image: /boot/initrd.img-3.14-2-amd64
Found Windows 7 (loader) on /dev/sdb3
done

 

 

έβγαλε ένα error που ακόμα δεν το έχω ψάξει τι είναι, αλλά το σύστημα δουλεύει κανονικά

B) :cool:

  • Like 1
Δημοσ.

chroot στο chroot δηλαδη :-D

 

ωραιος, αυτο δεν το ειχα σκεφτει καν.

 

δεν εβαλες και noatime?

 

επισης πες μου οτι πριν κανεις chroot απο το livecd στο debian εκανες bind τα dev proc sys εσυ γιατι αλλιως δεν παιζει να δουλεψε με αδεια αυτα....

Δημοσ.

χμμμ τα default, noatime έλεγε οτι τα βάζει default

εγώ πρόσθεσα το discard

 

το chroot εννοείται, όπως κάνεις και για grub restore

Δημοσ.

οχι, ελεγε: (Leave blank for defaults,noatime)

 

δηλαδη αν δεν βαλεις τιποτα θα βαλει defaults,noatime.

 

οτι αλλο βαλεις γραφεται αυτο

 

οποτε μπορουσες να βαλεις: defaults,noatime,discard

 

αλλα οκ, το αλλαζεις και μετα αυτο.

 

thanks για το feedback.

Δημοσ.

εκανα μια ενημερωση το readme

 

πισετυω ειναι πιο καθαρο/ευαναγνωστο ετσι

 

παρατηρησεις/προτασεις καλοδεχουμενα.

  • Like 1
Δημοσ.

Υπαρχει τροπος να κανουμε force την select να τα δειχνει καθετα?

 

τελικα ναι, COLUMNS=1

 

:-D

 

COLUMNS

Used by the select builtin command to determine the terminal width when printing selection lists. Automatically set upon receipt of a SIGWINCH.

 

οποτε πλεον τα scripts δειχνουν τις λιστες (partitions, options κλπ) μονιμα καθετα στο cli interface.

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

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

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

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

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

Σύνδεση

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

Συνδεθείτε τώρα

  • Δημιουργία νέου...