Το Στέκι των Πληροφορικών

Γενικά => Τεχνική υποστήριξη => Linux => Μήνυμα ξεκίνησε από: Δημήτρης Γκίνης στις 15 Οκτ 2014, 10:36:06 ΠΜ

Τίτλος: Αντιγραφή αρχείων χρηστών σε νέο server
Αποστολή από: Δημήτρης Γκίνης στις 15 Οκτ 2014, 10:36:06 ΠΜ
Πως μπορώ να αντιγράψω τα αρχεία των χρηστών (κάτω από το /home) από τον παλιό στον καινούργιο server?
Οι ίδιοι χρήστες υπάρχουν και στα 2 συστήματα.
Τίτλος: Απ: Αντιγραφή αρχείων χρηστών σε νέο server
Αποστολή από: gidarakos στις 15 Οκτ 2014, 10:53:54 ΠΜ
Μήπως θα σε βοηθούσε αυτό το θέμα; Μεταφορά των λογαριασμών των χρηστών σε άλλο δίσκο (https://alkisg.mysch.gr/steki/index.php?topic=5754.0)
Τίτλος: Απ: Αντιγραφή αρχείων χρηστών σε νέο server
Αποστολή από: Δημήτρης Γκίνης στις 15 Οκτ 2014, 01:04:34 ΜΜ
Να υποθέσω ότι η σειρά είναι:
1)με  rsync από τον παλιό server σε εξωτερικό σκληρό
2)με  rsync από τον εξωτερικό σκληρό στον νέο server
Τίτλος: Απ: Αντιγραφή αρχείων χρηστών σε νέο server
Αποστολή από: Δημήτρης Γκίνης στις 15 Οκτ 2014, 01:20:45 ΜΜ
Δοκιμάζοντας να αντιγράψω τα αρχεία του χρήστη 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]


Τι κάνω λάθος;
Τίτλος: Απ: Αντιγραφή αρχείων χρηστών σε νέο server
Αποστολή από: apapakL στις 16 Οκτ 2014, 12:21:30 ΠΜ
Το 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
Τίτλος: Απ: Αντιγραφή αρχείων χρηστών σε νέο server
Αποστολή από: Δημήτρης Γκίνης στις 16 Οκτ 2014, 09:55:47 ΠΜ
Αντρέα ευχαριστώ, θα δοκιμάσω τη δικτυακή λύση που προτείνεις. Είχα καταλάβει ότι κκάτι δεν πάει καλά με τον εξωτερικό αλλά δεν σκέφτηκα ότι φταίει το fat32 και τα permissions του ext4.
Τίτλος: Απ: Αντιγραφή αρχείων χρηστών σε νέο server
Αποστολή από: Δημήτρης Γκίνης στις 20 Οκτ 2014, 11:23:17 ΠΜ
Δίνοντας στον νέο 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 κάποιους φακέλους ??
Τίτλος: Απ: Αντιγραφή αρχείων χρηστών σε νέο server
Αποστολή από: apapakL στις 20 Οκτ 2014, 09:02:55 ΜΜ
Πρέπει να έχεις δικαίωμα να διαβάσεις τα αρχεία από την πλευρά της πηγής... Ενεργοποίησε τον 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 να το κάνει για όλους...
Τίτλος: Απ: Αντιγραφή αρχείων χρηστών σε νέο server
Αποστολή από: Δημήτρης Γκίνης στις 20 Οκτ 2014, 09:23:54 ΜΜ
Και καλά εγώ που ρωτάω, εσύ βρε Αντρέα δεν έχεις τίποτε καλύτερο να κάνεις βραδυάτικα?? :D
Εννοείται ότι......ΣΕ ΕΥΧΑΡΙΣΤΩ.
Τίτλος: Απ: Αντιγραφή αρχείων χρηστών σε νέο server
Αποστολή από: alkisg στις 21 Οκτ 2014, 07:56:06 ΠΜ
Δείτε λίγο κι αυτό:
https://alkisg.mysch.gr/steki/index.php?topic=5974.0

...έτσι ο απομακρυσμένος δίσκος γίνεται τοπικός, οπότε μπορεί κανείς να κάνει αντιγραφή/επικόλληση αρχείων μέσα από τον Ναυτίλο (sudo nautilus /mnt), ή να κάνει clone ολόκληρο δίσκο με dd, κλπ κλπ.
Τίτλος: Απ: Αντιγραφή αρχείων χρηστών σε νέο server
Αποστολή από: Δημήτρης Γκίνης στις 21 Οκτ 2014, 09:18:09 ΠΜ
@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/
??
Τίτλος: Απ: Αντιγραφή αρχείων χρηστών σε νέο server
Αποστολή από: apapakL στις 21 Οκτ 2014, 10:29:34 ΠΜ
@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
Τίτλος: Απ: Αντιγραφή αρχείων χρηστών σε νέο server
Αποστολή από: alkisg στις 21 Οκτ 2014, 10:32:32 ΠΜ
Για επαναφορά του 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
Τίτλος: Απ: Αντιγραφή αρχείων χρηστών σε νέο server
Αποστολή από: Δημήτρης Γκίνης στις 22 Οκτ 2014, 11:46:50 ΠΜ
Σε κάθε περίπτωση, για να αντιγράψεις ΟΛΟΚΛΗΡΟ το φακέλο του χρήστη (πχ /home/a1-1/) στον νέο server, θα πρέπει ο χρήστης να έχει κάνει έστω και μία φορά login στο νέο server ώστε να δημιουργηθούν οι κατάλληλοι φάκελοι. Αυτός είναι ο λόγος για την εμφάνιση του μηνύματος λάθους που ανέφερα παραπάνω.