banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành *nix Gặp trục trặc với Rsync + SSH  XML
  [Question]   Gặp trục trặc với Rsync + SSH 17/12/2011 09:10:58 (+0700) | #1 | 251190
[Avatar]
tranhuuphuoc
Moderator

Joined: 05/09/2004 06:08:09
Messages: 865
Location: Lầu Xanh
Offline
[Profile] [PM] [WWW]
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.
[Up] [Print Copy]
  [Question]   Gặp trục trặc với Rsync + SSH 17/12/2011 11:48:02 (+0700) | #2 | 251193
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]
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.
[Up] [Print Copy]
  [Question]   Gặp trục trặc với Rsync + SSH 17/12/2011 12:19:11 (+0700) | #3 | 251197
[Avatar]
tranhuuphuoc
Moderator

Joined: 05/09/2004 06:08:09
Messages: 865
Location: Lầu Xanh
Offline
[Profile] [PM] [WWW]
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
[Up] [Print Copy]
  [Question]   Gặp trục trặc với Rsync + SSH 17/12/2011 20:52:24 (+0700) | #4 | 251203
Kcmonline
Member

[Minus]    0    [Plus]
Joined: 05/10/2011 22:21:18
Messages: 23
Offline
[Profile] [PM]

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ồ ???
[Up] [Print Copy]
  [Question]   Gặp trục trặc với Rsync + SSH 17/12/2011 21:49:44 (+0700) | #5 | 251204
[Avatar]
Ikut3
Elite Member

[Minus]    0    [Plus]
Joined: 24/09/2007 23:47:03
Messages: 1429
Location: Nhà hát lớn
Offline
[Profile] [PM] [Yahoo!]
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
[Up] [Print Copy]
  [Question]   Gặp trục trặc với Rsync + SSH 17/12/2011 23:50:23 (+0700) | #6 | 251208
[Avatar]
tranhuuphuoc
Moderator

Joined: 05/09/2004 06:08:09
Messages: 865
Location: Lầu Xanh
Offline
[Profile] [PM] [WWW]

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.
[Up] [Print Copy]
  [Question]   Gặp trục trặc với Rsync + SSH 18/12/2011 00:06:29 (+0700) | #7 | 251210
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

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!
[Up] [Print Copy]
  [Question]   Gặp trục trặc với Rsync + SSH 18/12/2011 09:12:13 (+0700) | #8 | 251221
zero0_0
Member

[Minus]    0    [Plus]
Joined: 13/10/2011 12:21:49
Messages: 15
Offline
[Profile] [PM]
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,
[Up] [Print Copy]
  [Question]   Gặp trục trặc với Rsync + SSH 18/12/2011 12:03:49 (+0700) | #9 | 251227
[Avatar]
tranhuuphuoc
Moderator

Joined: 05/09/2004 06:08:09
Messages: 865
Location: Lầu Xanh
Offline
[Profile] [PM] [WWW]
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
[Up] [Print Copy]
  [Question]   Gặp trục trặc với Rsync + SSH 18/12/2011 14:15:57 (+0700) | #10 | 251228
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]
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.
[Up] [Print Copy]
  [Question]   Gặp trục trặc với Rsync + SSH 18/12/2011 18:50:17 (+0700) | #11 | 251237
[Avatar]
tranhuuphuoc
Moderator

Joined: 05/09/2004 06:08:09
Messages: 865
Location: Lầu Xanh
Offline
[Profile] [PM] [WWW]
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 smilie 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.
[Up] [Print Copy]
  [Question]   Gặp trục trặc với Rsync + SSH 18/12/2011 19:11:50 (+0700) | #12 | 251238
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

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 smilie 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!
[Up] [Print Copy]
  [Question]   Gặp trục trặc với Rsync + SSH 19/12/2011 03:48:47 (+0700) | #13 | 251260
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]
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.
[Up] [Print Copy]
  [Question]   Gặp trục trặc với Rsync + SSH 19/12/2011 16:59:33 (+0700) | #14 | 251298
[Avatar]
tranhuuphuoc
Moderator

Joined: 05/09/2004 06:08:09
Messages: 865
Location: Lầu Xanh
Offline
[Profile] [PM] [WWW]
Anh trai cho nhiều ví dụ hết sức quá cụ thể , em hiểu dụng ý của anh phân tích rồi và kết quả như em mong muốn, cám ơn anh và anh em khác trợ giúp, thảo luận rất nhiều.
[Up] [Print Copy]
  [Question]   Gặp trục trặc với Rsync + SSH 20/12/2011 02:46:27 (+0700) | #15 | 251316
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]

tranhuuphuoc wrote:
Anh trai cho nhiều ví dụ hết sức quá cụ thể , em hiểu dụng ý của anh phân tích rồi và kết quả như em mong muốn, cám ơn anh và anh em khác trợ giúp, thảo luận rất nhiều. 


Giải thích làm sao mà đối tượng nắm được mình muốn nói cái gì thì mới không uổng công em à smilie.
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Question]   Gặp trục trặc với Rsync + SSH 20/12/2011 11:32:47 (+0700) | #16 | 251333
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]
Anh conmale,

Em nghĩ tình huống là thế này thì sẽ lý thú hơn:

- server nguồn (A)
- server đích (B)

A có một thư mục: `/var/www/html` owner là apache, group owner là nobody.

Trên B, anh không có root's password mà chỉ có một account `cuti` với quyền `sudo`:
Code:
cuti	ALL=(ALL)	ALL

B cũng có thư mục `/var/www/html` với owner tương ứng. Làm thế nào để sync `/var/www/html` từ A sang B mà vẫn giữ được owner + permission và không được đổi root's password trên B?
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Gặp trục trặc với Rsync + SSH 20/12/2011 12:18:06 (+0700) | #17 | 251336
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]

quanta wrote:
Anh conmale,

Em nghĩ tình huống là thế này thì sẽ lý thú hơn:

- server nguồn (A)
- server đích (B)

A có một thư mục: `/var/www/html` owner là apache, group owner là nobody.

Trên B, anh không có root's password mà chỉ có một account `cuti` với quyền `sudo`:
Code:
cuti	ALL=(ALL)	ALL

B cũng có thư mục `/var/www/html` với owner tương ứng. Làm thế nào để sync `/var/www/html` từ A sang B mà vẫn giữ được owner + permission và không được đổi root's password trên B? 


Nếu trên (A) account nào đó dùng để đọc thông tin rồi sync qua (B) mà không có quyền "x" cho thư mục và quyền "r" cho files thì bó tay con gà quay vì ngay trên (A) đã không thể thực thi rồi.

Nếu trên (A) account nào đó dùng để đọc thông tin rồi sync qua (B) mà có quyền "x" cho thư mục và quyền "r" cho files và trên (B) thì có quyền sudo thì trên (B) nó chạy với quyền hạn root. Bởi thế, phải dùng options -og.

smilie
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|