[Question] Gặp trục trặc với Rsync + SSH |
17/12/2011 09:10:58 (+0700) | #1 | 251190 |
|
tranhuuphuoc
Moderator
|
Joined: 05/09/2004 06:08:09
Messages: 865
Location: Lầu Xanh
Offline
|
|
Tôi gặp trục trặc với việc đồng bộ dữ liệu qua RSYNC nhờ bà con giúp đở cái lỗi, tôi dùng bài viết sau để đồng bộ http://www.howtoforge.com/mirroring_with_rsync
Tôi có 2 con server :
- Ở con A (chính) có dùng WHM/CPanel, trên con server này SELINUX đã được tắt, trong con A có thư mục /home chứa thông tin của khách hàng, do đó thư mục này là thư mục mà tôi cần chuyển tất cả những thư mục con, tập tin con trong thư mục này sang con B ở đường dẫn /var/www chẳng hạn
- Ở con B (dự phòng) không dùng WHM/CPanel trên con server này SELINUX chưa được tắt
Khi tôi chạy dòng sau trên con B
Code:
#rsync -avz --delete --exclude=**/stats --exclude=**/error --exclude=**/files/pictures -e "ssh -p 6567 -i /root/rsync/mirror-rsync-key" phuoc@IP của con A:/home /var/www/
Trong đó : 6567 là cổng SSH của con server A
phuoc : tên tài khoản mà tôi tạo trên con A
/home : thư mục mà tôi muốn đồng bộ sang con B
/var/www : thư mục trên con B mà tôi muốn đây là nơi mà nó lưu trữ từ con A
Thì nó báo lỗi như thế này ở thư mục /home
Code:
receiving incremental file list
rsync: opendir "/home" failed: Permission denied (13)
Permission thư mục /home trên con A
Code:
drwxr-xr-x 5 root root 4096 Mar 21 2011 .cpan/
drwxr-xr-x 3 root root 4096 Dec 15 23:55 .cpanm/
drwx------ 6 root root 4096 Dec 15 23:55 .cpcpan/
drwx------ 3 root root 4096 Oct 17 2009 cpeasyapache/
drwxr-xr-x 3 root root 4096 Nov 30 2010 cprubybuild/
drwxr-xr-x 3 root root 4096 Nov 30 2010 cprubygemsbuild/
drwx--x--x 13 tan tan 4096 Apr 9 2010 tan/
drwx--x--x 10 nghia nghia 4096 Jan 29 2011 nghia/
Thông tin log trên con A
Dec 16 13:13:59 server su: pam_unix(su:session): session closed for user phuoc
Dec 16 21:01:22 server sshd[32758]: Accepted publickey for phuoc from IP của con B ssh2
Tôi thử xây dựng mô hình lab khác (không dùng Cpanel) thì mọi việc tiến hành bình thường mà không gặp trục trặc gì hết.
Cám ơn bà con đã đọc. |
|
|
|
|
[Question] Gặp trục trặc với Rsync + SSH |
17/12/2011 11:48:02 (+0700) | #2 | 251193 |
|
conmale
Administrator
|
Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
|
|
User "phuoc" làm gì có quyền thay đổi thư mục /home đâu em? Em rsync xuyên qua SSH bằng user "phuoc"? |
|
What bringing us together is stronger than what pulling us apart. |
|
|
|
[Question] Gặp trục trặc với Rsync + SSH |
17/12/2011 12:19:11 (+0700) | #3 | 251197 |
|
tranhuuphuoc
Moderator
|
Joined: 05/09/2004 06:08:09
Messages: 865
Location: Lầu Xanh
Offline
|
|
Chào anh,
Vâng đúng là em xuyên qua SSH bằng user mang tên là "phuoc" , Em tìm được câu trả lời bằng cách dùng chown
Cám ơn anh trợ giúp |
|
|
|
|
[Question] Gặp trục trặc với Rsync + SSH |
17/12/2011 20:52:24 (+0700) | #4 | 251203 |
Kcmonline
Member
|
0 |
|
|
Joined: 05/10/2011 22:21:18
Messages: 23
Offline
|
|
tranhuuphuoc wrote:
Chào anh,
Vâng đúng là em xuyên qua SSH bằng user mang tên là "phuoc" , Em tìm được câu trả lời bằng cách dùng chown
Cám ơn anh trợ giúp
Mình cũng đang tiến hành thực nghiệm rsync giữa 2 server.
Nhưng mình chỉ có thể đồng bộ source data, có cách nào khác hay rsync có thể đồng bộ mysql database luôn không bồ ??? |
|
|
|
|
[Question] Gặp trục trặc với Rsync + SSH |
17/12/2011 21:49:44 (+0700) | #5 | 251204 |
|
Ikut3
Elite Member
|
0 |
|
|
Joined: 24/09/2007 23:47:03
Messages: 1429
Location: Nhà hát lớn
Offline
|
|
Hello Kcmonline
Mình nhớ rsync có thể đồng bộ được 2 database Mysql, với điều kiện cấu hình theo mô hình Master - Slave . Bạn tham khảo ở đây
MySQL has a nice feature called replication that usually keeps a slave database in sync with a master. Except when it doesn't
http://mah.everybody.org/docs/mysql-rsync |
|
|
|
|
[Question] Gặp trục trặc với Rsync + SSH |
17/12/2011 23:50:23 (+0700) | #6 | 251208 |
|
tranhuuphuoc
Moderator
|
Joined: 05/09/2004 06:08:09
Messages: 865
Location: Lầu Xanh
Offline
|
|
Kcmonline wrote:
Mình cũng đang tiến hành thực nghiệm rsync giữa 2 server.
Nhưng mình chỉ có thể đồng bộ source data, có cách nào khác hay rsync có thể đồng bộ mysql database luôn không bồ ???
- Thì kiếm 1 cái script backup database sau đó nhét qua cron tab dùng rsync đẩy nó qua bên server B.
- Dùng MySQL Replication khi có sự thay đổi dữ liệu ở A thì MySQL ở nơi nào đó sẽ thay đổi giống như A
Các cách khác xin bổ sung. |
|
|
|
|
[Question] Gặp trục trặc với Rsync + SSH |
18/12/2011 00:06:29 (+0700) | #7 | 251210 |
|
quanta
Moderator
|
Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
|
|
Kcmonline wrote:
có cách nào khác hay rsync có thể đồng bộ mysql database luôn không bồ ???
Tham khảo: http://dev.mysql.com/doc/refman/5.1/en/drbd-mysql-replication-scale.html |
|
Let's build on a great foundation! |
|
|
|
[Question] Gặp trục trặc với Rsync + SSH |
18/12/2011 09:12:13 (+0700) | #8 | 251221 |
zero0_0
Member
|
0 |
|
|
Joined: 13/10/2011 12:21:49
Messages: 15
Offline
|
|
Bồ thừ dùng quyền root backup thư mục /home/ về /var/www sau đó dùng rsync chuyển qua con server backup thử dc không ?
Regards,
|
|
|
|
|
[Question] Gặp trục trặc với Rsync + SSH |
18/12/2011 12:03:49 (+0700) | #9 | 251227 |
|
tranhuuphuoc
Moderator
|
Joined: 05/09/2004 06:08:09
Messages: 865
Location: Lầu Xanh
Offline
|
|
Nếu dùng rsync qua SSH với account root thì không nói gì, tuy nhiên nếu dùng rsync để đồng bộ qua SSH với 1 user chẳng hạn mang tên là phuoc thì sẽ gặp nhiều vấn đề.
- Trên server có nhiều account thì phải chown lại cho nó hết
- Trên server có nhiều dịch vụ như FTP, MAIL (Webmail) thì cũng phải chown lại cho nó, sau khi chown lại phải chmod lại thư mục public_home của từng user thì visitor ở bên ngoài họ mới truy cập được vào website của từng người dùng trong public_home
Ý tưởng" của mình lúc này sẽ "nâng" account "phuoc" lên...root (thay đổi trong /etc/passwd thành 0 cho UID và GID cũng là 0 hoặc sudo) sau đó làm lại các bước như trong bài hướng dẫn từ http://www.howtoforge.com/mirroring_with_rsync như thế không biết có thể thực thi được không, mình chưa thử qua cách làm này.
Nếu server A người có quyền quản trị họ change password root hay người dùng "phuoc" thì việc rsync có thực hiện diễn ra hay không ?
Cám ơn anh em theo dỏi
|
|
|
|
|
[Question] Gặp trục trặc với Rsync + SSH |
18/12/2011 14:15:57 (+0700) | #10 | 251228 |
|
conmale
Administrator
|
Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
|
|
Phước ơi,
Có 2 chuyện em cần xét:
1. Sở hữu thư mục trên máy chủ có đích để sync.
2. Tài khoản để ssh xuyên qua rsync.
Để sync từ A đến B thì từ A em phải ssh bằng account có chủ quyền sử hữu thư mục trên máy đích. Nếu không, không thể sync bởi vì trên B nó không có đủ chủ quyền để write.
rsync có chức năng bảo tồn owner (option -o) và group (option -g). Tất nhiên account nào đó dùng để sync vẫn phải có chủ quyền write trên thư mục ở máy chủ đích.
Ví dụ,
Server A có thư mục /home/ và dưới /home là x, y và z (/home/x, /home/y, /home/z) do user x, user y và user z làm chủ.
Server B cũng tương tự như server A.
Muốn sync trọn bộ từ /home của A sang /home của B thì:
- phải có chủ quyền write trên tất cả cả sub-directories trên B
- áp dụng -o và -g trong command để rsync
|
|
What bringing us together is stronger than what pulling us apart. |
|
|
|
[Question] Gặp trục trặc với Rsync + SSH |
18/12/2011 18:50:17 (+0700) | #11 | 251237 |
|
tranhuuphuoc
Moderator
|
Joined: 05/09/2004 06:08:09
Messages: 865
Location: Lầu Xanh
Offline
|
|
Em có quyền write trên tất cả máy nguồn A lẫn máy đích B do vậy em rsync qua SSH thành công nhưng em lại không hiểu như thế này khi em dùng 1 tài khoản user non-root như user "phuoc" . Em thử dùng chown -R phuoc /home/cuti
Lúc này thì thông tin permission của /home/cuti kể cả sub-directories ở trong nó như sau
Code:
drwx--x--x 11 phuoc cuti 4096 Apr 9 2010 cuti/
Lúc này em rsync ở /home/cuti đến máy B chứa dữ liệu chẳng hạn em quy định đường dẫn /var/www thì thành công .
Tuy nhiên khi đó trên server dùng WHM/Cpanel các dịch vụ FTP, Web đều bị ảnh hưỡng (người dùng không truy cập được Webmail hoặc Upload/Download thông qua FTP-lỗi permission) mặc dù thông tin permission cũng xuất hiện tương tự như trên cho các sub-directories do đó em thử chmod 755 cho public_html thì bình thường trở lại. Trong khi đó em dùng 2 máy tính khác để làm LAB thì bình thường (không hiểu lý do tại vì sao phải thêm bước chmod).
Mặc dù em rsync thành công nhưng em không muốn dùng tài khoản root mà dùng 1 tài khoản nào đó ví dụ như non-root , em nãy sinh ra "tối kiến"-chưa được thử nghiệm, chỉ là phán đoán là điều chỉnh trong visudo ví dụ như
Code:
ibmthinkpad ALL=(ALL) ALL
Thì vẫn có thể đồng bộ và lấy tất cả các người dùng trong /home mà không cần phải "sở hữu" thư mục đó ! Mục đích cuối cùng của em, hạn chế sử dụng root ở mức thấp nhất. Mong anh trai cho ý kiến để em út về phần này. |
|
|
|
|
[Question] Gặp trục trặc với Rsync + SSH |
18/12/2011 19:11:50 (+0700) | #12 | 251238 |
|
quanta
Moderator
|
Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
|
|
tranhuuphuoc wrote:
Tuy nhiên khi đó trên server dùng WHM/Cpanel các dịch vụ FTP, Web đều bị ảnh hưỡng (người dùng không truy cập được Webmail hoặc Upload/Download thông qua FTP-lỗi permission) mặc dù thông tin permission cũng xuất hiện tương tự như trên cho các sub-directories do đó em thử chmod 755 cho public_html thì bình thường trở lại.
FTP của anh chạy dưới quyền user nào? FTP users là system user (có trong /etc/passwd) hay virtual users? Thông báo lỗi chính xác như nào? Khi bị lỗi thì public_html đang có permission là bao nhiêu? 711?
tranhuuphuoc wrote:
Mặc dù em rsync thành công nhưng em không muốn dùng tài khoản root mà dùng 1 tài khoản nào đó ví dụ như non-root , em nãy sinh ra "tối kiến"-chưa được thử nghiệm, chỉ là phán đoán là điều chỉnh trong visudo ví dụ như
Code:
ibmthinkpad ALL=(ALL) ALL
Thì vẫn có thể đồng bộ và lấy tất cả các người dùng trong /home mà không cần phải "sở hữu" thư mục đó !
Thế này thì vẫn không được anh à, vì owner là người khác và khi rsync với `ibmthinkpad` anh có dùng được `sudo` gì đâu.
Ý tưởng" của mình lúc này sẽ "nâng" account "phuoc" lên...root (thay đổi trong /etc/passwd thành 0 cho UID và GID cũng là 0 hoặc sudo) sau đó làm lại các bước như trong bài hướng dẫn từ http://www.howtoforge.com/mirroring_with_rsync như thế không biết có thể thực thi được không, mình chưa thử qua cách làm này.
Nhưng như này thì lại được. Đây cũng là một "dirty trick" khi muốn rsync sang một thư mục mà user mình đang dùng không phải là owner (hoặc không có quyền write). |
|
Let's build on a great foundation! |
|
|
|
[Question] Gặp trục trặc với Rsync + SSH |
19/12/2011 03:48:47 (+0700) | #13 | 251260 |
|
conmale
Administrator
|
Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
|
|
Hãy đưa ra một ví dụ cụ thể như sau.
- Sever có nguồn dữ liệu (A)
- Server cần được sync (B)
- Server A có: /home/cuti (do account cuti owns), /home/cuteo (do account cuteo owns) và /home/caihim (do acount caihim owns).
- Server B cũng có: /home/cuti (do account cuti owns), /home/cuteo (do account cuteo owns) và /home/caihim (do acount caihim owns).
Có 2 cách thực hiện để sync.
Cách 1: sync từ cronjob của mỗi account "cuti", "cuteo" và "caihim" từ /home/cuti đến /home/cuti, từ /home/cuteo đến /home/cuteo và từ /home/caihim đến /home/caihim.
$ rsync -avz --delete --exclude=**/stats --exclude=**/error --exclude=**/files/pictures -e "ssh -p 6567 -i /home/cuti/mirror-rsync-key" /home/cuti cuti@IP:/home/cuti/
$ rsync -avz --delete --exclude=**/stats --exclude=**/error --exclude=**/files/pictures -e "ssh -p 6567 -i /home/cuteo/mirror-rsync-key" /home/cuteo cuteo@IP:/home/cuteo/
$ rsync -avz --delete --exclude=**/stats --exclude=**/error --exclude=**/files/pictures -e "ssh -p 6567 -i /home/caihim/mirror-rsync-key" /home/caihim caihim@IP:/home/caihim/
Không cần chmod hay chown gì hết vì từ A sang B nếu thực thi đúng account thì nó sẽ viết data xuống được và giữ nguyên chủ quyền.
Cách 2: sync từ cronjon của root từ /home đến /home và áp dụng -o -g cho rsync command:
$ rsync -avzog --delete --exclude=**/stats --exclude=**/error --exclude=**/files/pictures -e "ssh -p 6567 -i /root/rsync/mirror-rsync-key" /home/ root@IP:/home/
Tránh chown, chgrp vì rất phiền nếu sub-directories có những thư mục và files do nhiều người làm chủ.
Cũng có thể thực hiện cách 1 ở trên bằng root account nhưng thay đổi một tí, ví dụ:
su - cuti -c "rsync -avz --delete --exclude=**/stats --exclude=**/error --exclude=**/files/pictures -e "ssh -p 6567 -i /home/cuti/mirror-rsync-key" /home/cuti cuti@IP:/home/cuti/"
Phần su - cuti -c "" là phần root thực thi rsync với user "cuti". |
|
What bringing us together is stronger than what pulling us apart. |
|
|
|
|