Hướng dẫn chuyển file giữa hai server bằng câu lệnh SSH

Trong chuyển host, cách nhanh nhất không phải là tải file clone về rồi up ngược lên mà nên để 2 máy chủ (host cũ & host mới) trực tiếp giao tiếp với nhau. Bạn sẽ giảm được 30 – 70% thời gian nhờ cách làm này & nó cũng giảm tối đa rủi ro kết nối internet tại nhà riêng có vấn đề khi tải hoặc/và up ngược file lên.

Plugin rất tốt để giúp bạn chuyển host theo kiểu “gần như trực tiếp” là Migrate Guru (hoàn toàn miễn phí), nhưng để làm phong phú thêm các biện pháp, tôi viết hướng dẫn này (biết đâu trong trường hợp hiếm gặp nào đó plugin lại không dùng được hoặc các website quá lớn sẽ rất tốn thời gian khi dùng plugin).

Tôi đã viết một số bài liên quan đến SSH:

Trong các bài viết đó, máy tính cá nhân vẫn là trung gian để chứa file nén tải xuống rồi up ngược lên thông qua Filezilla (hoặc bất cứ công cụ FTP tương tự nào khác). Tốc độ cũng rất tốt, nhưng khó mà bằng cách để 2 server trò chuyện với nhau, nhất là trên website lớn cỡ từ 5 – 7GB đổ lên.

Tài nguyên: có thể bạn muốn tham khảo thêm 25 câu lệnh SSH phổ biến dành cho WordPress.

Kịch bản

Giả sử tôi có file zip trên thư mục gốc của web speed.family (chẳng hạn có IP: 206.189.37.81), và giờ tôi muốn chuyển file này vào thư mục gốc của website unzip.ducanhplus.com (chẳng hạn có IP: 165.22.251.237).

Đầu tiên tôi phải đăng nhập vào server đích (165.22.251.237), rồi nhập vào dòng lệnh sau:

scp -r tên_user@ip_chứa_file_nguồn_của_bạn:/thư_mục_web_site/file_nguồn.zip /thư_mục_chứa_file_đích/

Với trường hợp của tôi, 165.22.251.237 là IP server đích (nơi file cần chuyển đến), sau khi đăng nhập server này và ở thư mục gốc (thư mục chứa các website) tôi nhập dòng lệnh sau:

scp -r root@206.189.37.81:/home/speed.family/chimcatwp.zip /home/unzip.ducanhplus.com/

Đầu tiên nó sẽ hỏi bạn có muốn kết nối không, bạn nhấn yes, rồi nhập mật khẩu của VPS nguồn (IP: 206.189.37.81).

  • root thường là user của VPS;
  • 206.189.37.81 là IP của server chứa file nguồn;
  • /home/chimcat/net/chimcatwp.zip là đường dẫn chứa file zip nguồn;
  • /home/unzip.ducanhplus.com là đường dẫn thư mục sẽ chứa file cần chuyển đến (host mới);

Cái dễ sai trong câu lệnh SSH hóa ra không phải là dùng lệnh gì mà nhiều khi vấn đề lại nằm ở chỗ bạn chọn sai thư mục, đường dẫn. Một điều nữa cần lưu ý là nhập nhầm chỉ cần một dấu thôi lệnh sẽ không chạy.

Tôi hơi ngạc nhiên về tốc độ chuyển file: những hơn 100MB/s (trong bài test trên tôi chỉ hết 3s để chuyển hơn 300MB dữ liệu), tức là gấp 10 – 20 lần cách chuyển thông thường (5 – 10MB/s trong điều kiện mạng tốt). Tuy nhiên đây là 2 sever thuộc về cùng công ty và cùng vị trí địa lý (Singapore). Lúc nào đó tôi sẽ test trên các máy chủ ở vị trí khác nhau và khác công ty xem tốc độ như thế nào.

Câu lệnh chuyển file là lệnh SSH có công dụng nhất về mặt tốc độ khi bạn muốn chuyển host bằng SSH.

Nén hay giải nén bằng SSH không có tốc độ nhanh hơn đáng kể so với dùng control panel, nhưng chuyển file giữa hai server bằng SSH thì nhanh hơn dùng FTP để tải xuống rồi tải lên rất nhiều lần.