Tuesday, 19 February 2013

tmux - scripting

Basic: http://www.familug.org/2013/02/tmux.html

Một điểm rất mạnh của tmux là khả năng hỗ trợ script. Nếu như bạn có thể bấm phím tắt, gõ các lệnh điều khiển tmux (tạo cửa sổ, pane, ...) thì bạn hoàn toàn có thể viết 1 bash script để làm những việc ấy. Các lệnh tmux hỗ trợ cũng chính là các command bạn có thể tìm thấy trong `man tmux`

Dưới đây là 1 ví dụ tớ thiết lập 1 tmux session với 3 window.

#!/bin/bash

FRONTEND=tmux # this can be changed to byobu - a frontend of tmux
#đoạn này để lấy interface đang sử dụng, thường là eth0 hoặc wlan0 (wifi)
ACTIVE_IFACE=$(ip li | grep 'state UP' | head -n 1 | awk '{print $2}' | tr -d ':')

$FRONTEND new -d -s hvn
$FRONTEND neww -t hvn:1 -n 'mon' 'top'
$FRONTEND splitw -t hvn:1 'tail -f /var/log/syslog | ccze'
$FRONTEND neww -t hvn:2 -n 'iftop' "sudo iftop -i $ACTIVE_IFACE"
$FRONTEND selectw -t hvn:0

$FRONTEND -2 attach -t hvn

window 1 đặt tên là mon[itor], chia làm 2 pane để chạy lệnh top và theo dõi syslog
window 2 đặt tên là iftop, để theo dõi các kết nối thực hiện tới interface máy đang sử dụng.
`ccze` là chương trình làm cho log có màu mè
 `iftop` không có sẵn trên máy, phải cài thêm.


Như vậy mỗi lần bật máy hay vào server, tớ chỉ cần chạy script này là có 1 môi trường làm việc xùy tin hiện đại. Khỏi phải lần nào cũng hì hục tạo cửa sổ...

Đó là sức mạnh của tmux, mọi thứ còn lại là dựa vào trí tưởng tượng của bạn.

PS: nếu thay FRONTEND=byobu, bạn sẽ có 1 session với byobu. byobu sử dụng hệ thống phím tắt và có các cài đặt ban đầu thân thiện hơn tmux.