Αντιγραφή αρχείων χρηστών σε νέο server

Ξεκίνησε από Δημήτρης Γκίνης, 15 Οκτ 2014, 10:36:06 ΠΜ

« προηγούμενο - επόμενο »

Δημήτρης Γκίνης

Πως μπορώ να αντιγράψω τα αρχεία των χρηστών (κάτω από το /home) από τον παλιό στον καινούργιο server?
Οι ίδιοι χρήστες υπάρχουν και στα 2 συστήματα.

gidarakos


Δημήτρης Γκίνης

Να υποθέσω ότι η σειρά είναι:
1)με  rsync από τον παλιό server σε εξωτερικό σκληρό
2)με  rsync από τον εξωτερικό σκληρό στον νέο server

Δημήτρης Γκίνης

Δοκιμάζοντας να αντιγράψω τα αρχεία του χρήστη b1-1 με
sudo rsync -a /home/b1-1 /media/My\ Passport/home
μου επιστρέφει ένα κάρο από τα παρακάτω:
rsync: chown "/media/My Passport/home/b1-1/.pulse/.002522f8d93500000000000000000000-stream-volumes.tdb.g0ddJy" failed: Operation not permitted (1)
rsync: chown "/media/My Passport/home/b1-1/Έγγραφα/.ΤΑ ΜΕΣΑ ΜΕΤΑΦΟΡΑΣ.odt.iWF6pn" failed: Operation not permitted (1)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1070) [sender=3.0.9]


Τι κάνω λάθος;

apapakL

#4
Το filesystem του εξωτερικού σου δίσκου (ntfs ή fat32 θα είναι) δεν "καταλαβαίνει" τα file permisions του ext4.

Πριν δοκιμάσεις οτιδήποτε πάρε backup το home

sudo mkdir /home2

sudo rsync -av --numeric-ids /home/ /home2/


Λύση 1η
Εκκίνησε και τα δυο μηχανήματα και κάνε δικτυακό rsync.
Θα πρέπει να έχεις εγκατεστημένο στον παλαιό και το openssh-server
sudo apt-get install openssh-server


πχ από τον νέο server δώσε

sudo -i

rsync -av --numeric-ids onoma_diaxeiristi@ip_tou_palaiou_server:/home/ /home/


Λύση 2η
βάλε τον δίσκο που περιέχει το παλαιό home στον νέο server και κάνε boot με το live cd
Έστω sda1 ο δίσκος του νέου server και sdb1 ο δίσκος του παλαιού server
sudo -i
mkdir /media/sdb1
mount /dev/sdb1 /media/sdb1
mkdir /media/sda1
mount /dev/sda1 /media/sda1
rsync -av --numeric-ids /media/sdb1/home/ /media/sda1/home/
umount /dev/sda1
umount /dev/sdb1
exit

Δημήτρης Γκίνης

Αντρέα ευχαριστώ, θα δοκιμάσω τη δικτυακή λύση που προτείνεις. Είχα καταλάβει ότι κκάτι δεν πάει καλά με τον εξωτερικό αλλά δεν σκέφτηκα ότι φταίει το fat32 και τα permissions του ext4.

Δημήτρης Γκίνης

Δίνοντας στον νέο server:
sudo -i

και μετά
rsync -av --numeric-ids administrator@10.33.63.11:/home/b1-1/ /home/b1-1

για να αντιγράψω τα αρχεία του χρήστη b1-1,
κατά την διάρκεια της αντιγραφής βγάζει τα παρακάτω μεταξύ άλλων-
rsync: opendir "/home/b1-1/.cache" failed: Permission denied (13)
rsync: opendir "/home/b1-1/.config" failed: Permission denied (13)
rsync: opendir "/home/b1-1/.dbus" failed: Permission denied (13)
rsync: opendir "/home/b1-1/.gconf" failed: Permission denied (13)
rsync: opendir "/home/b1-1/.gnome2" failed: Permission denied (13)
rsync: opendir "/home/b1-1/.googleearth" failed: Permission denied (13)
rsync: opendir "/home/b1-1/.gvfs" failed: Permission denied (13)
rsync: opendir "/home/b1-1/.local/share/Trash" failed: Permission denied (13)
rsync: opendir "/home/b1-1/.local/share/gvfs-metadata" failed: Permission denied (13)
rsync: opendir "/home/b1-1/.local/share/telepathy" failed: Permission denied (13)
rsync: opendir "/home/b1-1/.local/share/zeitgeist" failed: Permission denied (13)
rsync: opendir "/home/b1-1/.mission-control" failed: Permission denied (13)
rsync: opendir "/home/b1-1/.pulse" failed: Permission denied (13)
./
rsync: send_files failed to open "/home/b1-1/.Xauthority": Permission denied (13)
rsync: send_files failed to open "/home/b1-1/.fuse_hidden0000016400000052": Permission denied (13)
.gtk-bookmarks
rsync: send_files failed to open "/home/b1-1/.pulse-cookie": Permission denied (13)
rsync: send_files failed to open "/home/b1-1/.recently-used": Permission denied (13)
rsync: send_files failed to open "/home/b1-1/.xsession-errors": Permission denied (13)

ενώ όταν ο χρήστης προσπαθήσει να συνδεθεί:
α) αργεί να κάνει login
β) βγαίνει το παρακάτω μήνυμα:
Ο Ναυτίλος δεν μπόρεσε να δημιουργήσει τους ακόλουθους  απαιτούμενους φακέλους:
/home/b1-1/Desktop, /home/b1-1/.config/nautilus.
Πριν την εκτέλεση του Ναυτίλου, παρακαλώ δημιουργήστε αυτούς τους φακέλους ή ορίστε τα κατάλληλα δικαιώματα ώστε να μπορέσει να τους δημιουργήσει ο Ναυτίλος

και φυσικά δεν εμφανίζεται η επιφάνεια εργασίας του χρήστη παρά μόνο το Background.
Μήπως πρέπει να κάνω exclude κάποιους φακέλους ??

apapakL

#7
Πρέπει να έχεις δικαίωμα να διαβάσεις τα αρχεία από την πλευρά της πηγής... Ενεργοποίησε τον root στον παλαιό server (θα μπορούσες λογικά να χρησιμοποιήσεις αντί για τον root και τον λογαρισμό του χρήστη του οποιου θέλεις να μεταφέρεις τα αρχεία, δηλαδή τον b1-1)

sudo passwd


Μετά στο νέο server

sudo rsync -av --numeric-ids root@10.33.63.11:/home/b1-1/ /home/b1-1/


και στη συνέχεια αν υπάρχει θέμα δικαιωμάτων (που δεν πρέπει να υπάρχει αφού το -a στο rsync υλοποιεί ένα σύνολο λειτουργιών όπως η διατήρηση των permissions και του ownership)

sudo chown -R b1-1:b1-1 /home/b1-1


Μετά στον παλαιό server αν θέλεις απενεργοποίησε τον root λογαριασμό

sudo passwd -dl root


Δοκίμασε για έναν χρήστη και αν παίξει να φτιάξουμε ένα script να το κάνει για όλους...

Δημήτρης Γκίνης

Και καλά εγώ που ρωτάω, εσύ βρε Αντρέα δεν έχεις τίποτε καλύτερο να κάνεις βραδυάτικα?? :D
Εννοείται ότι......ΣΕ ΕΥΧΑΡΙΣΤΩ.

alkisg

Δείτε λίγο κι αυτό:
https://alkisg.mysch.gr/steki/index.php?topic=5974.0

...έτσι ο απομακρυσμένος δίσκος γίνεται τοπικός, οπότε μπορεί κανείς να κάνει αντιγραφή/επικόλληση αρχείων μέσα από τον Ναυτίλο (sudo nautilus /mnt), ή να κάνει clone ολόκληρο δίσκο με dd, κλπ κλπ.

Δημήτρης Γκίνης

@alkisg:Η λύση που προτείνεις εμφανίζει στο Login screen του χρήστη το ίδιο μύνημα που αναφέρω πιο πάνω (προφανώς τα permissions)
@apapakL:Δούλεψε ΟΚ για ένα χρήστη.
Για βοήθα τώρα λίγο: για να το κάνει για όλους του χρήστες του group a1 , με
ls -db /home/a1*

παίρνεις λίστα των χρηστών. Το αποτέλεσμα του προηγούμενου πως το κάνεις όρισμα στην
sudo rsync -av --numeric-ids root@10.33.63.11:/home/b1-1/ /home/b1-1/

??

apapakL

@alkisg: Σπουδαίο το aoe!!!  :D


@Δημήτρης: Το loop για το rsync θα είναι κάπως έτσι
Κώδικας: bash
    sudo -i
    cd /home
    ls
    # copy/paste όσων χρηστών θέλετε από το αποτέλεσμα της ls παραπάνω, στην παρακάτω εντολή
    for user in a1-01 a1-02 a1-03; do rsync -av --numeric-ids root@10.33.63.11:/home/$user/ /home/$user/; done
    exit

alkisg

Για επαναφορά του owner των προσωπικών φακέλων χρηστών εάν αυτά για διάφορους λόγους καταλήξουν να είναι λάθος, κάντε copy/paste τις παρακάτω εντολές:

Κώδικας: Bash
sudo -i
for dir in /home/*; do
    sog=$(stat -c "%u:%g" "$dir")
    pog=$(awk -F: '$6=="'"$dir"'" { print $3":"$4 }' /etc/passwd)
    test -z "$pog" && continue
    echo "Disk owner/group=$sog, passwd owner/group=$pog"
    if [ "$sog" != "$pog" ]; then
        echo "Changing $dir to $pog"
        chown -R "$pog" "$dir"
    fi
done
exit

Δημήτρης Γκίνης

Σε κάθε περίπτωση, για να αντιγράψεις ΟΛΟΚΛΗΡΟ το φακέλο του χρήστη (πχ /home/a1-1/) στον νέο server, θα πρέπει ο χρήστης να έχει κάνει έστω και μία φορά login στο νέο server ώστε να δημιουργηθούν οι κατάλληλοι φάκελοι. Αυτός είναι ο λόγος για την εμφάνιση του μηνύματος λάθους που ανέφερα παραπάνω.