Thứ Ba, 8 tháng 7, 2014

Hướng dẫn sử dụng tmux

Tmux là một trình quản lý terminal hiệu quả. Ưu điểm:
  • Cho phép quản lý cùng lúc nhiều terminal
  • Detach/attach terminal, nhờ vậy bạn có thể lấy lại được terminal đã bị mất trong khi kết nối ssh đột ngột bị ngắt.
  • Cho phép tạo nhiều window trong một tmux session. Trong mỗi window, bạn lại có thể tạo ra nhiều pane. Pane sẽ chia nhỏ một window ra nhiều vùng theo chiều dọc hoặc chiều ngang
  • Cho phép đặt tên cho session và từng window trong session

Bài viết này chỉ hướng dẫn cách sử dụng

Để tmux nhận command, nó cần một prefix key. Mặc định prefix key này là Ctrl + b. Tôi có thể cấu hình prefix của tmux trong ~/.tmux.conf

set -g prefix C-a ### dùng ctrl + a làm phím prefix
unbind C-b
bind C-a send-prefix


Để khởi động tmux, tôi chỉ cần gõ tmux. Sau đây, tôi sẽ liệt kê một số command cần thiết: 

Các command bắt đầu bằng C-a (Ctrl + a) chỉ có tác dụng nếu tôi đang ở trong một tmux:
C-a s: Danh sách các tmux session 
C-a d: Detach tmux session hiện tại
C-a $: Đặt tên cho session hiện tại
C-a c: Tạo mới window
C-a w: Danh sách các window
C-a ,: Đặt tên cho window hiện tại
C-a &: Kill window hiện tại

exit: Thoát và kill window hiện tại

C-a %: Chia đôi window hiện tại thành hai pane theo chiều dọc
C-a ": Chia đôi window hiện tại thành hai pane theo chiều ngang
C-a [arrow key]: Di chuyển qua lại giữa các pane trên window
Chia pane rất tiện dụng khi vừa chạy chương trìn, vừa xem log của chương trình. 
C-a x: Kill pane hiện tại.

Copy paste giữa các window hoặc pane

C-a [  để vào copy mode. Dùng C -spacebar để bôi đen vùng. Dùng arrow key để di chuyển lên xuống, trái phải. Dùng Alt + w để copy. Cuối cùng dùng C-a ] để paste vào một window hoặc pane khác.

Các command sau sẽ có tác dụng khi tôi ở ngoài tmux session:
tmux list-sessions: Danh sách các tmux session.
tmux attach -t <sessionname>: Session name có thể lấy từ kết quả chạy lệnh tmux list-sessions. Bạn có thể attach lại tmux terminal qua session name
tmux kill-session -t <sessionname>: Kill một session xác định
tmux kill-server: Kill tất cả tmux session

Chủ Nhật, 6 tháng 7, 2014

Copy dữ liệu lên/từ server qua ssh

Với một system admin đây là hoạt động rất hay gặp. Để thực hiện được bạn có hai cách:
- Dùng scp
- Dùng rsync qua ssh

Cách 1: Tôi dùng scp
Copy lên server
scp <username>@<server ip>:/home/<username> <file>

Copy từ server về thư mục hiện tại
scp <username>@<server ip>:/home/<username>/<file> .

Cách 2: Tôi dùng rsync qua ssh
Copy lên server
rsync -avz <file> -e "ssh -l <username>" <server ip>:/home/<username>

Copy từ server về thư mục hiện tại
rsync -avz -e "ssh -l <username>" <server ip>:/home/<username>/<file> .

Thứ Bảy, 5 tháng 7, 2014

Truy cập nội dung file iso

Trên windows, tôi có thể dùng một số tool như power iso để ảo hóa file iso thành một ổ đĩa gắn ngoài. Ý tưởng tương tự cũng được hiện thực hóa trên linux. Tôi sẽ ảo hóa iso thành một loop device và gắn loop device đó vào một mount point trên hệ thống. Cuối cùng tôi truy cập nội dung file iso qua chính mount point đó.

sudo mount -o loop file.iso /mnt

Điều chỉnh giới hạn PID trên hệ thống

Mặc định, linux dành 15 bits cho PID. Do đó giới hạn của PID sẽ là 0..2^15 -1= 0..32767 PIDs

Để điều chỉnh thông số này, tôi thay đổi giá trị trong file:
/proc/sys/kernel/pid_max

Có hai cách để thay đổi giá trị này:

Cách 1: Bổ sung thêm một dòng vào /etc/sysctl.conf
kernel.pid_max=<Giá trị mới>
Save lại, sau đó để thay đổi được ấn định tôi dùng lệnh
sysctl -p

Cách 2: Sửa trực tiếp giá trị vào trong file /proc/sys/kernel/pid_max
Sau đó ấn định thay đổi bằng lệnh 
sysctl -p

Tôi có thể xác nhận thay đổi cho cả hai cách trên qua:

systcl kernel.pid_max
hoặc
cat /proc/sys/kernel/pid_max

Tính số CPU và số core của mỗi CPU

Để tính số CPU, tôi sẽ tìm trong file /proc/cpuinfo. Mỗi CPU sẽ được gán cho một physical id khác nhau. Tính số lượng physical id phân biệt sẽ ra số CPU

sudo cat /proc/cpuinfo | grep "physical id" | sort | uniq
physical id    : 0 -> Kết quả này cho thấy hệ thống chỉ có một CPU

Để tính số core của mỗi CPU, tôi cũng tìm trong /proc/cpuinfo. Các core của cùng một CPU sẽ có số physical id giống nhau. Thống kê số lượng physical id trên mỗi CPU sẽ cho ra số core của mỗi CPU

sudo cat /proc/cpuinfo | grep  "physical id" | sort | uniq -c
4 physical id    : 0 -> Kết quả này cho thấy CPU có physical id 0 có 4 cores.

Thứ Năm, 3 tháng 7, 2014

Lấy thông tin đĩa cứng

Các thông tin tôi có thể lấy:
- Đĩa cứng hiện tại có tổng dung lượng bao nhiêu ?
- Đĩa được hiện tại phân vùng thế nào ?
Tôi dùng lệnh sau:
sudo fdisk -l

Để biết chi tiết file system type và mức độ sử dụng dung lượng của từng phân vùng trên đĩa cứng hiện tại ? Tôi dùng lệnh sau:
df -Th

Muốn lấy thông tin chi tiết về phân vùng của đĩa cứng khác, tôi phải mount đĩa cứng đó lên một mountpoint của đĩa cứng hiện tại
sudo mount -t ext3 /dev/sdb /mnt

Kiểm tra đĩa cứng đã được mount chưa, tôi dùng lệnh:
mount

Di chuyển vào mountpoint và chạy lần lượt hai lệnh fdisk -l và df -T để lấy thông tin về đĩa cứng được mount

Sau khi hoàn thành công việc trên /dev/sdb, tôi cần unmount nó khỏi hệ thống:
sudo umount /mnt 
hoặc
sudo umount /dev/sdb