Friday, 27 December 2013

tcpdump - làm sao không quên?

nếu không thường xuyên sử dụng, bạn sẽ quên syntax của tcpdump.

Cách nhớ dễ nhất là hiểu nó

Tài liệu sử dụng nội dung của man 1 tcpdump

       tcpdump [ -AbdDefhHIJKlLnNOpqRStuUvxX ] [ -B buffer_size ] [ -c count ]
               [ -C file_size ] [ -G rotate_seconds ] [ -F file ]
               [ -i interface ] [ -j tstamp_type ] [ -m module ] [ -M secret ]
               [ -P in|out|inout ]
               [ -r file ] [ -V file ] [ -s snaplen ] [ -T type ] [ -w file ]
               [ -W filecount ]
               [ -E spi@ipaddr algo:secret,...  ]
               [ -y datalinktype ] [ -z postrotate-command ] [ -Z user ]
               [ expression ]

Format lệnh tcpdump gồm các option và theo sau cùng là expression

Wednesday, 25 December 2013

[emacs] basic moving

dùng emacs không có gì là khó khăn cả, nếu bạn từng là một CLI ninja múa may quay cuồng trong bash shell thì bạn cũng đã quen với một vài tổ hợp phím của Emacs. (do bash dùng emacs binding làm default)

Phiên bản mới nhất của emacs là 24.x http://www.gnu.org/software/emacs/

Để đơn giản cho lúc mới bắt đầu, bài này sẽ chỉ nói đến việc view / di chuyển trong 1 file.

Các emacs command thường là tổ hợp của các phím CTRL (CONTROL) hoặc ALT (hay còn gọi là META, có thể dùng ESC thay thế) với phím ký tự.

Để kết thúc Emacs session, dùng C-x C-c (Ctrl x rồi Ctrl c). Nếu đọc đến đây bạn vẫn chưa đóng được emacs có vẻ như bạn đã có vấn đề :D.

Các command di chuyển cơ bản.
C-v: View next screen. Xem "màn hình" tiếp theo. (chữ v trông như mũi tên xuống dưới)
M-v: View previos screen. Ngược lại với C-v 

Sunday, 22 December 2013

[scheme] define, lambda, cond

Với  car, cdr, cons, ở bài trước ta đã có thể làm rất nhiều thứ với Scheme, bài này sẽ giới thiệu cú pháp của "define", "lambda" và "cond", để bạn có thể thỏa sức tưởng tượng với function.

"define" để gán một cái tên cho một "object".
Ví dụ:
scheme@(guile-user)> (define lat '(ga bo heo))

Gán cho "list" '(ga bo heo) cái tên là lat (viết tắt của : list of atoms)

Hãy chơi lại với car, cdr, cons
scheme@(guile-user)> (car lat)
$2 = ga
scheme@(guile-user)> (cdr lat)
$3 = (bo heo)
scheme@(guile-user)> (cons (car lat) (cdr lat))
$4 = (ga bo heo)

"null?" là function để kiểm tra list đầu vào có phải là list rỗng không.
scheme@(guile-user)> (null? lat) 
$5 = #f
scheme@(guile-user)> (null? '())
$6 = #t

Danh sách các package manager của các ngôn ngữ lập trình

Các package manager chính là một phần không nhỏ làm nên thành công của các ngôn ngữ lập trình hiện đại. Nó giúp lượng thư viện trở nên khổng lồ, cần gì có nấy, và cách dùng chúng khá giống nhau :D

1,Pip - Python

Cài đặt một package:

pip install package_name

2. Gem - Ruby
gem install package_name

3. NPM - Node.js
npm install package_name

Saturday, 21 December 2013

Docker - Giới thiệu Docker và sử dụng

Home page: http://docs.docker.io
Các bài viết khác về docker: http://www.familug.org/search/label/Docker

Giới thiệu về docker

Docker là gì?
docker, the Linux Container Runtime, runs Unix processes with strong guarantees of isolation across servers. Your software runs repeatably everywhere because its Container includes any dependencies.
Ngắn gọn lại, nếu các bạn biết đến các file portable trên Windows [1], thì docker cũng làm 1 nhiệm vụ tương tự như vậy, container docker chứa application đã deploy, sau khi `đóng gói` có thể mang đi chạy ở các môi trường khác nhau ở các máy khác nhau ( Hiện nay mới chỉ support Ubuntu, Arch, Fedora... ), mà ko mất công deploy lại.

Các thuật ngữ được sử dụng:

- File system: http://docs.docker.io/en/latest/terms/filesystem/
- Layer: http://docs.docker.io/en/latest/terms/layer/
- Image: http://docs.docker.io/en/latest/terms/image/
- Container: http://docs.docker.io/en/latest/terms/container/

Trong phạm vi bài giới thiệu, mình không đi quá sâu sẽ gây nhàm chán. Nên bạn muốn tìm hiểu thì vào link để đọc, document đã ghi khá rõ. Cơ bản thành phần cấu tạo nên Container được mô tả như hình dưới:


Centralized Backup with BackupPC

BackupPC (BPC) là 1 software viết bằng Perl, cung cấp giải pháp Backup tập trung cho các server.
Bạn có thể backup toàn bộ server hoặc thư mục chỉ định, và restore lại khi cần thiết.

BPC thực hiện việc tranfer files qua: FPT, rsync, hoặc Samba ...
User có thể lên lịch backup hoặc backup thủ công (kích hoạt bằng tay)
BPC có sẵn trong Ubuntu default source list, nên cài đặt đơn giản chỉ bằng:

sudo apt-get update
sudo apt-get install backuppc

Sunday, 15 December 2013

[scheme] car, cdr và cons

car, cdrcons là 3 primitive của scheme

Từ mới, bạn CHƯA cần phải cố hiểu chúng, cứ đọc nó như một từ mới thôi:
  • car
  • cdr
  • cons
  • primitive
  • S-expression


Hãy mở #guile lên và gõ vào rồi sẽ hiểu:
CHÚ Ý: dấu single quote trước (1.

scheme@(guile-user)> (define li '(1 2 3 4 5))
scheme@(guile-user)> (car li)
$8 = 1

Monday, 2 December 2013

[Monitoring] iostat - hiển thị các thông tin thống kê về CPU và I/O

Bài này hướng đến một cuộc thảo luận hơn là một bài tut.
TODO: bài về mount, fstab (mặc dù những thứ này không thú vị cho lắm nhưng đã dùng Linux là phải biết, đặc biệt là đối với các sysadmin)

NOTE một lần nữa, nội dung bài này không thú vị, nhưng là cần thiết với các sysadmin

Bài viết thực hiện trên:
 $ uname -a
Linux archhvn 3.10.9-1-ARCH #1 SMP PREEMPT Wed Aug 21 13:49:35 CEST 2013 x86_64 GNU/Linux #đã lâu rồi không upgrade :D

nội dung có thể áp dụng tương tự cho các Linux based distro khác như Ubuntu ...

Vài thuật ngữ
IO: input/output (for devices and partitions)

report: mỗi output của iostat gọi là một report

iostat là một chương trình nằm trong package sysstat
 $ pacman -Qs iostat
local/sysstat 10.2.0-1
    a collection of performance monitoring tools (iostat,isag,mpstat,pidstat,sadf,sar)

Để cài đặt package này, dùng câu lệnh để cài tương ứng trên OS của bạn. Trên Ubuntu có thể là:
sudo apt-get install -y sysstat

Format câu lệnh iostat:
iostat  [-options ] [ interval [ count ] ]

Vài ví dụ