Tải tập tin từ server linux

Phần này nói về xác thực bằng SSH Key, cách sử dụng chúng để nhanh chóng tạo kết nối an toàn, tiện dụng.

  • Lệnh scp
  • Ví dụ sử dụng scp

Cú pháp sử dụng scp

SCP (secure copy - sao chép an toàn) là lệnh do OpenSSH Client cung cấp, nó cho phép truyền tải file qua lại giữa máy local và remote (server), nó sử dụng giao thức SSH để truyền file. Bạn sử dụng đến lệnh scp khi muốn:

  • Copy file,thư mục, từ máy local lên server
  • Copy file,thư mục, từ máy server (remote) về local (client)
  • Copy file,thư mục, từ máy server (remote) này sang máy server (remote) khác

Cú pháp cơ bản như sau

scp [OPTION] [user_src@]src_host:]src_file [user@]desk_host:]des_file

Trong đó:

  • [user_src@]src_host:]src_file là file, thư mục nguồn, ví dụ :/home/file1.txt là file /home/file1.txt tại máy , như dấu :, nếu là tại máy local thì không cần chỉ ra user, host tức bỏ đoạn :
  • [user@]desk_host:]des_file đường dẫn file, thư mục đích muốn copy - ý nghĩa tương tự như trên
  • [OPTIONS] các thiết lập cho thêm vào nếu muốn, như cho thêm tham số -r để đệ quy copy cả thư mục, các file, thư mục con theo đường dẫn.

Ví dụ sử dụng scp

download - copy một file từ server về local

Ví dụ, có một file nằm trên server 192.168.1.99 ở đường dẫn /home/data/1.txt, có tài khoản SSH với user là root. Giờ muốn copy file đó về lưu ở máy local với đường dẫn là /mycode/1.txt, sử dụng scp như sau:

scp :/home/data/1.txt /mycode/1.txt

Tải tập tin từ server linux

File 1.txt trên server đã copy về local ở đường dẫn /mycode/1.txt

Tương tự, thử thực hiện copy file đó về máy local Windows, lưu vào C:\data\1.txt

scp :/home/data/1.txt "C:\data\1.txt"

Tải tập tin từ server linux

download - copy thư mục về máy local

Ví dụ copy thư mục /home/data từ server về lưu vào /mycode/data01

scp -r :/home/data /mycode/data01

Tải tập tin từ server linux

upload - copy file (thư mục) từ local lên server

Tham số của scp chỉ ra nguồn và đích ngược lại với download là upload. Ví dụ, upload file /mycode/3.txt lên server lưu ở /home/data/3.txt

scp /mycode/3.txt :/home/data/3.txt

Hoặc Upload cả thư mục /mycode/data/ lên server

scp -r /mycode/data :/home/data

Mục lục

  • 1. Lệnh “scp”
    • Cấu trúc câu lệnh như sau:
    • Các tùy chọn tham số cơ bản như sau:
  • 2. Lệnh “rsync”
    • Cấu trúc câu lệnh:
    • Các tùy chọn OPTION cơ bản như sau:
  • 3. Lệnh “sftp”
    • Câu lệnh kết nối:
    • Các câu lệnh:

Tải tập tin từ server linux

Khi sử dụng hệ điều hành Linux thì chỉ sử dụng lệnh command để thực hiện các việc như: copy, cut, delete… các file hoặc thư mục trên cùng một server. Vậy để copy file giữa 2 server Linux thì có thể sử dụng các phần mềm hổ trợ các giao thức SFTP, FTP,..

Ngoài việc sử dụng phần mềm hổ trợ thì có thể dùng lệnh trực tiếp trên server để copy file. Các câu lệnh thường được sử dụng là: sftp, rsync, scp, sshfs,…

Bài viết này sẽ hướng dẫn câu lệnh cơ bản của 3 lệnh thường xuyên sử dụng là: scp, rsync, sftp

1. Lệnh “scp” #

SCP là viết tắt của “Secure Copy” được sử dụng để sao chép thư mục và file giữa các server Linux một cách an toàn. Lệnh SCP cho phép sao chép giữa các server nội bộ và các server public. Nó sử dụng cùng một xác thực và bảo mật như được sử dụng trong giao thức Secure Shell (SSH). SCP được biết đến với tính đơn giản, bảo mật và tính sẵn sàng.

Cấu trúc câu lệnh như sau: #

scp [-346BCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] [[user@]host1:]file1 … [[user@]host2:]file2

Các tùy chọn tham số cơ bản như sau: #

  • scp -P port: Chọn cổng kết nối giống với cổng SSH.
  • scp -p: Giữ nguyên thời gian sửa đổi, thời gian truy cập và chế độ từ tệp gốc.
  • scp –q : Tắt việc hiển thị tiến trình sao chép.
  • scp –r : Sao chép thư mục.
  • scp –v : Bật chế độ gỡ rối.

Ví dụ:

Sao chép một file

root@debian:~# scp –P 22 /usr/src/tel4vn/config.txt :/home/centos/

Sao chép thư mục

root@debian:~# scp –P 22 -r /usr/src/tel4vn :/home/centos/

2. Lệnh “rsync” #

Rsync (Remote Sync) là một công cụ dùng để sao chép và đồng bộ file, thư mục được dùng rất phổ biến. Rsync cho phép sao chép và giữ nguyên các thông số của file, thư mục đó như: Symbolic links, Permissions, TimeStamp, Owner và Group. Rsync nhanh hơn scp vì nó chỉ đồng bộ dữ những dữ liệu thay đổi chứ không sao chép những dữ liệu đã có. Sử dụng phương pháp nén và giải nén dữ liệu nên giảm được băng thông của server.

Lệnh rsync thường được dùng chung với crontab để đồng bộ dữ liệu vào một thời điểm trong ngày.

Cấu trúc câu lệnh: #

rsync [OPTION]… SRC [SRC]… DEST

Các tùy chọn OPTION cơ bản như sau: #

  • -v: hiển thị trạng thái kết quả
  • -r: copy dữ liệu recursively, nhưng không đảm bảo thông số của file và thư mục
  • -a: cho phép copy dữ liệu recursively, đồng thời giữ nguyên được tất cả các thông số của thư mục và file
  • -z: nén dữ liệu khi transfer, tiết kiệm băng thông tuy nhiên tốn thêm một chút thời gian
  • -h: human-readable, output kết quả dễ đọc
  • –delete: xóa dữ liệu ở destination nếu source không tồn tại dữ liệu đó.
  • –exclude: loại trừ ra những dữ liệu không muốn truyền đi, nếu bạn cần loại ra nhiều file hoặc folder ở nhiều đường dẫn khác nhau thì mỗi cái bạn phải thêm –exclude tương ứng.

Ví dụ:

Copy file giữa 2 server

root@debian:~# rsync -avz /usr/src/tel4vn/phong1.tar.gz :/home/centos/

Copy thư mục

root@debian:~# rsync -avzh /usr/src/tel4vn :/home/centos/

3. Lệnh “sftp” #

File Transfer Protocol (FTP) là giao thức được sử dụng rộng rãi để truyền tệp hoặc dữ liệu từ xa ở định dạng không được mã hóa, đây là giao thức không an toàn vì dữ liệu không được mã hóa trong quá trình truyền tải.

SFTP ( Secure File Transfer Protocol ) chạy qua giao thức SSH trên cổng tiêu chuẩn 22 theo mặc định để thiết lập kết nối an toàn. SFTP đã được tích hợp vào nhiều công cụ GUI ( FileZilla, WinSCP, FireFTP,…)

Câu lệnh kết nối: #

sftp [-1246aCfpqrv] [-B buffer_size] [-b batchfile] [-c cipher]

          [-D sftp_server_path] [-F ssh_config] [-i identity_file] [-l limit]

          [-o ssh_option] [-P port] [-R num_requests] [-S program]

          [-s subsystem | sftp_server] host

Các câu lệnh: #

Hiển thị những lệnh có thể sử dụng:

sftp> ?

Available commands:

cd path                       Change remote directory to 'path'

lcd path                      Change local directory to 'path'

chgrp grp path                Change group of file 'path' to 'grp'

chmod mode path               Change permissions of file 'path' to 'mode'

chown own path                Change owner of file 'path' to 'own'

help                          Display this help text

get remote-path [local-path]  Download file

lls [ls-options [path]]       Display local directory listing

Kiểm tra thư mục hiện tại trên server và trên server ftp:

  • lpwd : in thư mục hiện tại trên server hiện tại
  • pwd : in thư mục hiện tại trên server ftp
sftp> lpwd

Local working directory: /

sftp> pwd

Remote working directory: /tel4vn/

Liệt kê các file và thư mục:

  • ls : liệt kê trên server hiện tại
  • lls : liệt kê trên server ftp

Di chuyển giữa các thư mục:

  • cd : di chuyển trên server hiện tại.
  • lcd : di chuyển trên server ftp

Tải file lên server ftp:

sftp> put tel4vn.txt

Uploading local.profile to /tel4vn/tel4vn.txt

Tải lên nhiều file:

sftp> mput *.txt

Tải về 1 file:

sftp> get tel4vn.txt

Tải về nhiều file:

sftp> mget *.xls

Để thoát khỏi SFTP dùng lệnh:

sftp> !

Thông thường sử dụng các phần mềm hổ trợ SFTP vừa tiện lợi vừa dễ sử dụng.

Thông tin khóa học Linux: tại đây

SELINUX là gì ?8 Câu lệnh SCP thông dụng nhất