Các lệnh cơ bản khi làm việc với server

Sau một thời gian được động vào server, từ staging đến production mình thấy có vài lệnh cơ bản nên nắm vững và một số lệnh nên tránh sử dụng vì nếu dùng không cẩn thật sẽ rất dễ dẫn đến lỗi, đặc biệt là trên production.

1. SCP

SCP là gì?

  • SCP (Secure Copy – Sao chép an toàn) là một ứng dụng sử dụng SSH để mã hóa toàn bộ quá trình chuyển tập tin.
  • SCP là lệnh dùng để di chuyển file dữ liệu giữa các máy tính chạy hệ điều hành Linux từ xa chỉ cần biết địa chỉ ip
  • SCP dùng ssh để di chuyển dữ liệu, có chế độ bảo mật giống như ssh.

Cài đặt scp

Scp có sẵn trong các bản dis của hệ điều hành Linux.Nếu chưa có , cài đặt như sau :

- Ubuntu/Debian : sudo apt-get install scp -y
- Fedora/RedHat/Centos: yum install scp -y

Cài đặt gói ssh trên các máy cần trao đổi dữ liệu:(ubuntu server 12.04,Desktop 12.04)

sudo apt-get install -y openssh-server

Sử dụng scp

Cú pháp

Trên hệ điều hành linux:(Ubuntu 12.04): cú pháp sử dụng chuẩn:

scp [-pqrvBC46 ] [-F ssh_config ] [-S program ] [-P port ] [-c cipher ] [-i identity_file ] [-o ssh_option ] [[[email protected] ] host1 : file1 ] [... ] [[[email protected] ] host2 : file2 ]

Options:

 -c  : Chọn thuật toán mã hóa để sử dụng cho việc mã hóa việc truyền dữ liệu.

 -i  : Lựa chọn các tập tin mà từ đó nhận dạng (khóa riêng) cho RSA xác thực được đọc
 
 -p : backup lại file gốc.
 
 -r : sao chép lại toàn bộ thư mục.
 
 -C : nén  file trong khi thực hiện:
    
 -v : cung cấp thông tin chi tiết của quá trình.
 
 -1 : Forces scp to use protocol 1.

 -2 : Forces scp to use protocol 2.

Ví dụ:

Thông tin số các thiết bị:

* Máy local :
OS Ubuntu-12.04 Desktop
ip 192.168.1.14/24
* Máy remote: 
OS Ubuntu-12.04 Server
ip 192.168.1.15/24

Đẩy file "example.txt" lên máy Remote /root:

 scp example.txt [email protected]'192.168.1.xxx':/root

Copy file "example.txt" từ remote host sang máy local/home/Desktop

scp  [email protected]:example.txt  /home/Desktop

Copy toàn bộ thư mục backup về /home/Desktop

scp -r [email protected]:/root/backup /home/Desktop

Copy file "example.txt" từ máy local host sang máy remote host sử dụng port 2264:

scp -P 2264 example.txt [email protected]:/home/remote/

2. Tail

Sử dụng tail để làm gì?

Dùng để liệt kê các dòng cuối cùng trong một file. Trong trường hợp của tôi, tôi dùng nó để hiện thị file log server.

Cú pháp

tail -f log/log.txt

Lệnh này sẽ thấy được phần cuối của file và thấy cả phần thay đổi khi file được ghi thêm mới.

Vì sao nên dùng tail

Thay vì mở file một cách bình thường, ta nên sử dụng tail khi:

  • File quá lớn mà ta chỉ muốn xem phần cuối.
  • Cần xem cả phần sẽ được ghi thêm sau khi mở file.

3. Cat

Lệnh cat là gì?

Câu lệnh cat (viết tắt của từ tiếng anh concatenate) được dùng để hiển thị nội dung tập tin ra màn hình hoặc nối các tập tin với nhau và chuyển sang một tập tin khác.

Cú Pháp

Câu lệnh cat có cú pháp như sau:

cat [OPTION] [FILE]

Ví dụ: Hiển thị nội dung file send_mail.log:

$ cat log/send_mail.log

Hiển thị nội dung nhiều file:

$ cat log/send_mail_1.log log/send_mail_2.log

Hiện thi nội dung file cùng số dòng:

$ cat -n log/send_mail.log

Vì sao nên sử dụng cat

Ta nên sử dụng cat thay vì các lệnh vi khi:

  • Chỉ muốn xem nội dung mà không cần chỉnh sửa file.
  • Tránh những sai sót gây thay đổi file.

4.TUYỆT ĐỐI KHÔNG sử dụng 'rails c --sandbox' trên server.

Như các bạn đã biết, rails hỗ trợ mở rails console dưới hình thứ sandbox, tức là mọi câu lệnh gây thay đổi dữ liệu đều sẽ được rollback khi thoát khỏi rails console. Trên môi trường development thì đây là một câu lệnh rất hữu ích, để ta tránh những thay đổi không mong muốn hoặc muốn thử một vài câu lệnh trong rails console mà chưa biết nó sẽ chạy như thế nào. Tuy nhiên, để có thể thực hiện việc rollback toàn bộ khi thoát khỏi rails console --sandbox, câu lệnh này cũng thực hiện khóa các kết nối đến cơ sở dữ liệu từ các đường khác. Tức là ta chỉ có thể tác động đến cơ sở dữ liệu khi đang ở trong chính rails console. Các đường khác đều bị chặn. Chính vì thế sẽ dẫn đến ảnh hưởng rất nghiêm trọng là người dùng không thể tác động đến cơ sở dữ liệu. Đồng nghĩa với việc các chức năng thêm sửa xóa sẽ bị lỗi.