Πως μπορώ να αντιγράψω τα αρχεία των χρηστών (κάτω από το /home) από τον παλιό στον καινούργιο server?
Οι ίδιοι χρήστες υπάρχουν και στα 2 συστήματα.
Μήπως θα σε βοηθούσε αυτό το θέμα; Μεταφορά των λογαριασμών των χρηστών σε άλλο δίσκο (https://alkisg.mysch.gr/steki/index.php?topic=5754.0)
Να υποθέσω ότι η σειρά είναι:
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]
Τι κάνω λάθος;
Το 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 κάποιους φακέλους ??
Πρέπει να έχεις δικαίωμα να διαβάσεις τα αρχεία από την πλευρά της πηγής... Ενεργοποίησε τον 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
Εννοείται ότι......ΣΕ ΕΥΧΑΡΙΣΤΩ.
Δείτε λίγο κι αυτό:
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/
??
@alkisg: Σπουδαίο το aoe!!! :D
@Δημήτρης: Το loop για το rsync θα είναι κάπως έτσι
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
Για επαναφορά του owner των προσωπικών φακέλων χρηστών εάν αυτά για διάφορους λόγους καταλήξουν να είναι λάθος, κάντε copy/paste τις παρακάτω εντολές:
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 ώστε να δημιουργηθούν οι κατάλληλοι φάκελοι. Αυτός είναι ο λόγος για την εμφάνιση του μηνύματος λάθους που ανέφερα παραπάνω.