Thứ Bảy, 28 tháng 6, 2014

Tìm processname từ PID và tìm PID từ processname

Từ processname, bạn có thể tìm pid theo command sau:
pidof <processname>

Có thể có nhiều kết quả trả về, ví dụ khi tôi gõ
pidof httpd
Tôi nhận được chừng 5-6 kết quả đó là vì httpd process fork thêm nhiều child process. 

Từ pid, bạn có thể tìm ra procesname bằng một trong hai cách:
Cách 1: Dùng command
sudo ps -p <PID> -o comm=

Cách 2: Truy vấn đến /proc
cat /proc/<PID>/cmdline 

PID luôn map đến một process duy nhất nên kết quả trả về luôn chỉ có một

Flush cache của varnish

Flush hay clear cache của varnish được thực hiện qua tool varnishadm. Trong varnish, hành động này gọi là "ban" để làm cho cache trở nên invalidate. Varnish có lắng nghe trên một port mặc định 6082 (Xem trong /etc/default/varnish) để nhận các yêu cầu quản trị.

Trước hết vi /etc/default/varnish để chắc chắn về interface quản trị của varnish

######################
 DAEMON_OPTS="-a :80 \
               -T localhost:6082 \
               -f /etc/varnish/default.vcl \
               -S /etc/varnish/secret \
               -s malloc,256m"
######################


Chắc chắn interface là localhost:6082, tôi tiến hành connect theo command sau:
sudo varnishadm -T 127.0.0.1:6082 -S /etc/varnish/secret

Sau đó tại dấu nhắc bạn gõ dòng sau để invalidate response cho request URL:
varnish> ban.url <URL>

Ví dụ:
ban.url /index.html

Thứ Ba, 24 tháng 6, 2014

Chia sẻ giữa virtualbox host machine và guest machine

Host machine là máy thật
Guest machine là máy ảo

Để chia sẻ dữ liệu giữa host machine và một linux guest machine, trước hết bạn thiết lập shared folder trên host machine. Sau đó trong guest machine bạn thực hiện gắn shared folder vào một mount point trên guest machine.

sudo mount -t vboxsf <shared folder> <mount point>

Để chia sẻ dữ liệu giữa host machine và một windows guest machine, bạn cũng thiết lập shared folder trên host machine. Sau đó trong guest machine bạn thiết lập dòng lệnh sau trong command line prompt

net use x: \\vboxsvr\<shared folder>

Một ổ đĩa mạng sẽ xuất hiện trên windows guest machine để chia sẻ dữ liệu.


Lọc đoạn văn bản từ dòng line1 đến dòng line2

Để lọc một đoạn văn bản theo dòng line1 đến dòng line2, bạn cần kết hợp hai lệnh head và tail.

line = line2 - line1 + 1
head -n line2 filename | tail -n line

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

Bước đầu triển khai varnish - Cơ bản

Varnish là một reverse HTTP proxy nằm trước một web server để thực hiện caching data cho web server. Tutorial này tập trung vào việc triển khai varnish trên debian Ubuntu. Varnish sẽ làm reverse proxy cho apache server.

Tìm và cài đặt theo hướng dẫn tại đây: 
https://www.varnish-cache.org/installation/debian

wget http://repo.varnish-cache.org/debian/GPG-key.txt | apt-key add -
echo "deb http://repo.varnish-cache.org/debian/ wheezy varnish-3.0" >> /etc/apt/sources.list
sudo apt-get update
sudo apt-get install varnish


Cấu hình varnish

sudo vi /etc/default/varnish
Uncomment các dòng thuộc tùy chọn "DAEMON_OPTS" thuộc Alternative 2:
DAEMON_OPTS="-a :80 \
               -T localhost:6082 \

               -f /etc/varnish/default.vcl \
               -S /etc/varnish/secret \
               -s malloc,256m"


Dòng trên cho biết varnish service sẽ lắng nghe trên port 80. Thông số cấu hình cho varnish biết nó làm reverse cho service nào nằm trong hồ sơ /etc/varnish/default.vcl


sudo vi /etc/varnish/default.vcl
Nếu file chưa có thì bổ sung:
backend default {
     .host = "127.0.0.1";
     .port = "8080";
}
Những dòng trên cho biết varnish sẽ làm reverse proxy cho web service trên port 8080

Cấu hình apache
Chỉnh sửa trong httpd.conf

Listen 127.0.0.1:8080

Sau đó restart httpd và varnishd. 

Chú ý: Varnish sẽ không cache các http request có trường cookie nên cần xóa cookie của trình duyệt trước khi kiểm tra varnish.

Cập nhật dữ liệu index cho locate

Tất cả thông tin file/directory trên hệ thống của bạn đều có thể tìm thấy qua lệnh locate. Lệnh locate thực hiện tìm kiếm qua index database nên tốc độ nhanh hơn nhiều so với find nhưng hạn chế của nó là index database có thể đã bị lỗi thời (out-of-date). Chính vì lý do bạn cần cập nhật dữ liệu locate trước khi tìm kiếm.

Cập nhật index cho locate:
updatedb

Đánh index cho apropos

apropos tương đương với man -k dùng để tìm kiếm thông tin về một ứng dụng. Nếu trên hệ thống chưa có dữ liệu index thì apropos hay man -k đều không thể hiển thị thông tin.

Thực hiện đánh index cho apropos:
makewhatis