I. Introduction
Làm việc với remote server là một phần quan trọng không thể thiếu nếu bạn là web developer chuyên nghiệp, các nghiệp vụ cơ bản có thể kể đến như thêm/đồng bộ hóa các tâp tin từ local lên remote server hay kéo file dump từ remote server về máy tính của bạn.. Với cách làm thông thường thì chúng ta sẽ dùng command như scp, sftp, rsync.. hay một phần mềm bên ngoài như Filezilla, WinSCP.. Tuy nhiên trong quá trình sử dụng qua nhiều công cụ khác nhau thì mình nhận ra rằng việc dùng command thì tương đối mất thời gian mà dùng phần mềm bên ngoài thì cũng không cần thiết, tốn chi phí cài cắm, làm quen.. cho nên trong bài viết này mình sẽ đưa ra một cách tiếp cận khác giúp cho quá trình làm việc với file trên server trở nên đơn giản hơn rất nhiều. Đó chính là sử dụng Nautilus (default file manager for the GNOME DE such as Ubuntu, Debian..).
II. Usage
Sau khi mở Nautilus các bạn có thể chọn Other Locations ở dưới cùng bên trái và nhập link sftp server vào để connect.
Ví dụ.
sftp://logbasex@192.168.5.10/home/secret
Còn như mình hay dùng phím tắt thì sử dụng tổ hợp phím Ctrl + L (enter location) rồi sau đó nhập link sftp server vào và nhấn Enter.
Bùm !! Server đã được connect thành công.
Đến đây thì bạn có thể làm việc với files trên server y hệt như làm việc với files trong một thư mục thông thường trong máy tính của bạn, chỉ khác là việc transfer files giữa local và server sẽ sử dụng sftp protocol mà thôi. Vừa đơn giản vừa quen tay mà không phải học thêm bất cứ phần mềm nào bên ngoài cả.
III. Tips and tricks
Trong quá trình làm việc thì mình thường có các tab terminal đã access sẵn vào server cho nên sẽ xảy ra tình huống là mình đang muốn lấy một tập tin từ server về như db dump chẳng hạn nhưng lại không biết đang đứng tại con server nào, bây giờ đi check thì cũng phiền mà mục đích chính của mình chỉ là muốn lôi file dump kia về máy, vậy thì phải làm thế nào? Sau một thời gian tìm hiểu thì mình đã viết được một đoạn script để tạo ra sftp uri đến thư mục mình đang đứng tại server như sau.
if curl -s --max-time 1 http://169.254.169.254/latest/meta-data/ &>/dev/null; then ip_address=$(curl -s http://169.254.169.254/latest/meta-data/public-ipv4)
else ip_address=$(hostname -I | awk '{print $1}')
fi echo "sftp://$(whoami)@$ip_address$(pwd)" # Đoạn script trên có 3 phần
# 1. Lấy username của server sử dụng câu lệnh whoami
# 2. Lấy public ip address của server (ec2 instance/local)
# 3. Lấy đường dẫn của thư mục hiện tại
Onliner version
if curl -s --max-time 1 http://169.254.169.254/latest/meta-data/ &>/dev/null; then ip_address=$(curl -s http://169.254.169.254/latest/meta-data/public-ipv4); else ip_address=$(hostname -I | awk '{print $1}'); fi && echo "sftp://$(whoami)@$ip_address$(pwd)"
Sau đó thì vào Nautilus sử dụng như đã bình thường 😊😊.
Thanks for reading.