SSH Transfer file.


RSYNC

Để copy file thông qua SSH thì có nhiều cách, ở đây mình dùng 'rsync' để copy file hoặc thư mục.

Ví dụ ta có một máy ubuntu linux (/home/ubuntu-dt) và 1 máy arch linux(/home/dt). Ta đang đứng trên máy arch linux, ta sẽ copy file 'install_arco.txt' từ máy arch linux tới ubuntu. Cấu trúc câu lệnh như sau.

rsync file.txt user@ip:/path-in-ubuntu
[~/Desktop]$ rsync install_arco.txt ubuntu-dt@192.168.1.11:/media/ubuntu-dt/HDD_1T/SDATA/SDATA/TUTS_NOTE/ARCH_LINUX 
ubuntu-dt@192.168.1.11's password: 
[~/Desktop]$ 

Username của máy ubuntu là 'ubuntu-dt' và ip của máy ubuntu là 192.168.1.11. Và file 'install_arco.txt' sẽ được copy vào '/media/ubuntu-dt/HDD_1T/SDATA/SDATA/TUTS_NOTE/ARCH_LINUX'.

Còn muốn copy file từ ubuntu (remote) vào máy arch linux (local).

rysnc user@ip:/path-in-ubuntu/file.txt . 

Ta sẽ copy file 'install_arco.txt' từ ubuntu(remote) vào thư mục hiện tại là 'test'.

[~]$ cd test   
[~/test]$ ls   <-- hiện tại chưa có file 'install_arco.txt'
abc.txt  text.txt
[~/test]$ rsync ubuntu-dt@192.168.1.11:/media/ubuntu-dt/HDD_1T/SDATA/SDATA/TUTS_NOTE/ARCH_LINUX/install_arco.txt .    <-- copy vào . có nghĩa là thư mục hiện tại là thư mục test.
ubuntu-dt@192.168.1.11's password: 
[~/test]$ ls
abc.txt
install_arco.txt   <-- chép xong
text.txt
[~/test]$ 

Còn muốn copy thư mục từ ubuntu(remote) tới arch(local), ta thêm '-r'.

rsync -r user-ubuntu@ip-ubuntu:/path-ubuntu/folder-need-copy . 

Còn muốn copy thư mục từ arch(local) tới ubuntu(remote).

rysnc -r folder-need-copy user-ubuntu@ip-ubuntu:/path-ubuntu/folder-receive

SSHFS (SSH File System)

Để cài đặt sshfs trên arch linux.

sudo pacman -S sshfs

Ta thấy đường dẫn thư mục mình dùng khá là dài '/media/duytran/HDD_1T/SDATA/SDATA/TUTS_NOTE/ARCH_LINUX' thì ta dùng sshfs sẽ tiện lợi hơn rất nhiều.

[~/test]$ mkdir remote_ubuntu  <-- tạo thư mục gọi là remote_ubuntu trên máy arch
[~/test]$ ls
abc.txt
install_arco.txt
remote_ubuntu
text.txt
[~/test]$

Ta sẽ mount đường dẫn trên ubuntu sang thư mục remote_ubuntu.

[~/test]$ sshfs ubuntu-dt@192.168.1.11:/media/ubuntu-dt/HDD_1T/SDATA/SDATA/TUTS_NOTE/ARCH_LINUX /home/dt/test/remote_ubuntu

ubuntu-dt@192.168.1.11's password: 
[~/test]$

Bây giờ ta thử copy file 'text.txt' lên ubuntu thông qua thư mục 'remote-ubuntu'

[~/test]$ ls     
abc.txt
install_arco.txt
remote_ubuntu
text.txt   <-- file cần copy
[~/test]$ cp text.txt remote_ubuntu 
[~/test]$ 

Ta xem lại file trên máy ubuntu.

ubuntu-dt@ubuntu-dt:/media/ubuntu-dt/HDD_1T/SDATA/SDATA/TUTS_NOTE/ARCH_LINUX$ ls
install_arco.txt  text.txt

File 'text.txt' đã được chép lên máy ubuntu.

Nếu không muốn dùng nữa ta umount.

umount remote_ubuntu

GUI Filezilla

Nếu ta muốn copy file dùng giao diện đồ họa thì ta download filezilla về cài vào máy, lúc này ta chỉ cần ssh vào ubuntu với user và pass là ta có thể copy file rất dễ dàng.

Như vậy ta đã tìm hiểu một số cách chép file dùng ssh rồi nhé.