• Xin chào

    Blog Leo chủ yếu về Linux và conputer science.
  • a

  • Số lượng xem

    • 2,664 hits

livechung.wordpress.com

Không hiểu lý do tại sao dạo này không vô được livechung.wordpress.com.
Và một thời gian dài không post bài.

Chắc kiểu này chuyển qua http://my.opera.com/livetime

Security: exploit, vunnerability

http://www.milw0rm.com/

http://www.securityfocus.com/

http://www.packetstormsecurity.com/

http://www.zone-h.com/

Làm thế nào để thiết lập mySQL replication

Mình đi theo step by step cho nó dễ làm một chút.
Một cách ngắn gọn: MySQL replication cho phép bạn có một bản copy của database chính (master) trên một server phụ (slave) và tất cả mọi update của master server thì lập tức được sao chép sang slave server. Vì thế sẽ có sự đồng bộ giữa master và slave server. Dĩ nhiên cần phân biệt rằng MySQL replication không phải là backup vì một câu lệnh delete của MySQL cũng thực hiện trên slave.
MySQL replication làm cho hệ thống high availability.
Ta có tesdb tại server master có ip=192.168.1.2 và muốn tạo bản sao của nó

1. Phần master

Trước hết comment dòng sau , trong file /etc/mysql/my.cnf

#skip-networking
#bind-address = 127.0.0.1

Và thêm vài dòng sau vào /etc/mysql/my.cnf

log-bin = /var/log/mysql/mysql-bin.log
binlog-do-db=testdb
server-id=1

File log này để xem những thay đổi của master trên slave. Khởi động lại rồi vào root

mysql -u root -p
Enter password:

GRANT REPLICATION SLAVE ON *.* TO ’slave_user’@'%’ IDENTIFIED BY ‘<some_password>’;
FLUSH PRIVILEGES;
USE testdb;
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;

Dòng lệnh cuối cùng sẽ cho ra một cái bảng có một record. Bạn ghi lại cái record ra giấy nháp để cần thiết cho sau này.

Đến bây giờ sẽ có hai cách để master update ra slave. Trường hợp thứ nhất là dùng database dump, thứ hai là dùng lệnh LOAD DATA FROM MASTER; trên slave

mysqldump -u root -p<password> –opt testdb > testdb.sql

Chuyển file này đến slave server .
Sau cùng là unlock testdb

mysql -u root -p
Enter password:
UNLOCK TABLES;
quit;

Phần cấu hình trên master đã xong.

2. Cấu hình slave

Trước hết tạo database testdb (slave)

mysql -u root -p
Enter password:
CREATE DATABASE testdb;
quit;

Nếu bạn dùng cách thứ nhất để update thì chạy dòng lệnh sau:

mysql -u root -p<password> exampledb < /path/to/testdb.sql

Bây giờ cần nói cho mySQL của slave bít rằng nó là slave và nó cần bít cái master database của nó nữa. Thêm các dòng sau vào /etc/mysql/my.cnf

server-id=2
master-host=192.168.1.2
master-user=slave_user
master-password=secret
master-connect-retry=60
replicate-do-db= testdb

Với cách thứ hai thì bạn sử dụng dòng sau để update:

mysql -u root -p
Enter password:
LOAD DATA FROM MASTER;
quit;

Sau cùng :

mysql -u root -p
Enter password:
SLAVE STOP;
CHANGE MASTER TO MASTER_HOST=’192.168.1.2′, MASTER_USER=’slave_user’, MASTER_PASSWORD=”, MASTER_LOG_FILE=’xem note’, MASTER_LOG_POS= int;

START SLAVE;
quit;

master_host: là địa chỉ ip của server master
master_user: là user đã grant replication trên master server
master_log_file: trong bảng đã show master status
master_log_pos: trong bảng show master status phần cấu hình master

Ok xong rồi! Khi nào testdb được update trên master nó sẽ được lặp lại trên slave

Những gói của Tripod core

core:

Links, wget, m, net-tools, DHCP client, trace rout, BIND util, wireless tools,

openSSL, libpcap, ncftp

inetutil, openSSH, vsftpd, mutt, iptables, sudo

stunnel, CDrtool, DVD_rư-tool, glib

optional: Linux PAM, cracklib

Regular expression

Su dung voi bash search: grep, sed, awk

Tim tu golf hoac Golf : [gG]olf

Thay the mot ki tu voi “.” : g.lf

Tim tat ca tu bat dau voi g va ket thuc voi lf o giua duoc kep boi mot ki tu bat ki.

Thay the nhieu ki tu voi “..” : b..k

No se tim tat ca tu bat dau boi b ket thuc la k, kep o giua la nhieu ki tu bat ki.

Vi du

# grep widget.. bt.c

# ps aux | grep vs.. // ti`m nhung tien trinh dang chay co ten bat dau la vs (thuong la vsftpd)

———————————————————–

Tu dong hoa bang cron

Chương trình cron đọc một tập tin gọi là crontab. File này cấu hình job sẽ chạy. Bạn có thể truy cập file này bằng cách chạy:

# crontab -e

Crontab co 6 truong :

  1. Minute
  2. Hour
  3. Day of the month
  4. Month of the year
  5. Day of the week
  6. String to be executed by sh
# +---------------- minute (0 - 59)
# |  +------------- hour (0 - 23)
# |  |  +---------- day of month (1 - 31)
# |  |  |  +------- month (1 - 12)
# |  |  |  |  +---- day of week (0 - 7) (Sunday=0 or 7)
# |  |  |  |  |
  *  *  *  *  *  command to be executed

Vi du:

0,20,40 22-23 * 7 fri-sat /home/ian/manjob.sh

máy tính

Tôi chả biết đặt tên như thế nào. Hôm nay tôi viết bài với tâm trạng không tốt.

Những vấn đề tôi quan tâm đến kiến trúc máy tính:

  • xử lý song song, realtime
  • Ngôn ngữ máy tính: trình biên dịch, các chuẩn ngôn ngữ
  •     Hệ điều hành
  • Trình biên dịch và ngôn ng

Sử dụng QEMU

Download về : http://fabrice.bellard.free.fr/qemu/download.html

 

Cai dat:
./configure && make
make install
insmod kqemu.ko

Them dong nay vao `/etc/rc.d/rc.local'.
/sbin/modprobe kqemu

 

Tạo đĩa ảo :
# qemu-img create -f qcow uwin.img 3G
Tạo ảnh ISO :
# dd if=/dev/cdrom of=/tmp/winxp.iso

Boot để cài win :
# qemu -cdrom /tmp/winxp.iso -hda uwin.img -m 256 -boot d

Sau khi cài xong chỉ cần gõ dòng sau là vào hệ thống mới cài :
# qemu -hda uwin.img -m 256

Nếu cài chung với KQEMU thì gõ dòng sau :
# qemu -hda uwin.img -m 256 -kernel-kqemu

Giải thích parameter:
-m 256 : RAM 256 mB
-boot d : boot cdrom trước

Thêm một số parameter :

-full-screen
-vnc display
-soundhw all
-usb

init_Assembly In Linux

Khác biệt giữa Intel và AT&T sn:0

Vị trí toán hạng ngược nhau giữa cú pháp AT&T và Intel:
Intel instruction dest, source
AT&T instruction source, dest
Tiếp đầu ngữ: Intel không có tiếp đầu ngữ
Cú pháp cho AT&T sử dụng các tiếp đầu ngữ % cho các thanh ghi và $ cho các giá trị hằng, biến. Intel sử dụng h và b (đặt sau)cho biểu diễn số hex và bin ngược lại AT&T sử dụng 0x để biểu diễn số hex.

Intel

mov eax,1
mov ebx,0ffh
int 80h

AT&T

movl $1, %eax
movl $0xff, %ebx
int $0×80

Cách truy xuất bộ nhớ

Intel xài dấu ngoặc vuông[], còn AT&T xài dấu ngoặc tròn()

Intel mv eax, [ebx]
AT&T movl (%ebx), %eax

Định vị:
Intel instruction foo, segreg:[base+index+*scale+disp]
AT&T instruction %segreg:disp(base, index, scale), foo
mov eax, [ebx+20h] AT&T: movl 0×20(%ebx), %eax

Chương trình Hello world
————————first.s———————————————-

section	.text
    global _start			;must be declared for linker (ld)

_start:					;tell linker entry point

	mov	edx,len	;message length
	mov	ecx,msg	;message to write
	mov	ebx,1	;file descriptor (stdout)
	mov	eax,4	;system call number (sys_write)
	int	0x80	;call kernel

	mov	eax,1	;system call number (sys_exit)
	int	0x80	;call kernel

section	.data

msg	db	'Hello, world!',0xa	;our dear string
len	equ	$ - msg			;length of our dear string

———————-end of first.s—————————————–

gcc -c first.s
ld first.o -o first

Intel syntax
—————first.asm————————–
session .data
msg db ‘Hello world’,0xa
sesion .text
global _start
_start:
mov eax,4
mov ebx,1
mov ecx,msg
mov edx,14
int 0×80
mov eax,1
int 0×80
—————–first.asm—————————-

nasm -f elf first.asm
arch/i386/kernel/entry.S

Implement Xorg 7.1

Tui viết để khỏi mất công đọc đi đọc lại BLFS. Quá trình cài đặt đi theo tuần tự. Require cái gì thì cài cái đó trước . Chi tiet xem o BLFS

1. Protocol header : no require

2. Util : require: pkg-config-0.20, protocol header

3. Lib : require : Ed-0.2, Fontconfig-2.3.2,
protocol header

4. data/Xbitmap

5. Xorg app: xbitmap, libpng, Xorg lib

6. Xorg data: require: app

7. Xorg font

8. Luit

9. Xorg server: Xorg font

10. Xorg driver: server

11. config

Lấy Xorg

X_logo

Trước khi cài GNOME vào Tripod thì phải download X cái đã.Hôm nay tự dưng thấy X quan trọng như thế nào ấy. Không lấy về không được. Phải lấy X về cái đã còn mấy cái Library khác thì để sau.
Lên trang http://www.x.org/wiki/Releases?action=show&redirect=XorgReleases và chọn bản mới nhất 7.3. Thư mục download laf http://xorg.freedesktop.org/releases/X11R7.3/src/. Vào thư mục download của nó thấy không còn down về một gói như trước nữa. vì từ bản 7 trở đi nó chỉ release dạng module. Module nói nôm na là thư mục của nó. Xorg có 8 modules: app, data, driver, font, lib, proto, util, xserver. Nếu chọn gói nén .tar.bz2,thì tính sơ sơ cũng 288 gói không kể doc và dung lượng khoảng 60 MB. Dung lượng 60 MB mà down một gói thì chả có gì. Đằng này thì khác, tới 288 gói. Mà mỗi thư mục thì lại nhét chung hai loại nén khác nhau vô chứ. Khảo sát thấy nếu down nguyên cả thư mục thì tốn công down số gói gấp hai lần và dung lượng down gấp 2.5 lần. Vì định dạng nén gz có dung lượng lớn hơn bz2. Mà dùng công cụ download thông thường thì phải down hết hai loại file nén. Vậy thì mất công quá.

Trên FC 7 chỉ có công cụ download là wget thôi. Mình bắt đầu nghiên cứu bằng lệnh “man wget”. Và bắt đầu thử gõ :

# wget http://xorg.freedesktop.org/archive/X11R7.3/src/app

wget chỉ download về một file index.html. Bắt đầu thất vọng ! :( . Tui tưởng nó down hết mấy cái gói trong module app về chứ. dùng less để xem index.html là nó down về cái vớ vẩn gì. Chỉ là file html chứa link down về. Hí Lúc này trong đầu tui sáng lên, nghĩ ra một thứ. Khi xem manpage của wget tui có thấy nó có một option là -i file. Thế là ra rồi. Tuy nhiên file tham số của wget là file thường và chứa tên file cần download không bao gồm đường dẫn đến file đó. file đó đóng file trò như một list các file. Muốn download về tui phải xài thêm một tùy chọn đó là -B đường_dẫn_đến_file. Vậy là nó down những tập tin có tên trong option -i listfile. Tui bắt đầu tạo filelist bằng cách copy từng link cắt tên file nó ra. Nếu làm như thế thì tui phải làm khá lâu vì có tới 288 file và 8 modules.

Tui bắt đầu chán nản vì không muốn tốn công như thế. Um, phải có cách khác chứ. Tôi nhớ hồi nãy mình có vô tình down nhầm một file index.html. Tui xem kĩ link của nó thấy nó chỉ là link tương đối, nghĩa là chính tên file. Tui nghĩ rằng nếu có một lệnh nào cho dòng input là file này và đầu ra output là file chứa tập tin chứa file. Làm được thì vấn đề download Xorg kể như xong. Tui bắt đầu gõ grep .tar.bz2 index.html. Ý nghĩa của nó là lấy những dòng nào có chuỗi .tar.bz2. Thế nhưng chả hay chút nào vì nó ra luôn dòng chứa html. Tui nghĩ đến chuyện dùng lệnh cut. Nên gõ:

# grep .tar.bz2 | cut -d’ ” ‘ -f8
Bây giờ thì chỉ cần ouput ra file là xong
# grep .tar.bz2 | cut -d’ ” ‘ -f8 >> app-7.3.wget

Down hết 8 module về : app data doc driver font lib proto util xserver

wget http://xorg.freedesktop.org/releases/X11R7.3/src/<module> -O <module>.html
grep .tar.bz2 <module>.html | cut -d’”‘ -f8 >> “<module>-7.3.wget”
Download modules:
wget -B http://xorg.freedesktop.org/releases/X11R7.3/src/<module>

Tới đây coi như xong rồi. Tui cũng có ý nghĩ viết một script để download Xorg .Script này lấy tham số là version của X còn thư mục download thì cố định ở http://xorg.freedesktop.org/releases/X11R7.3/src/. Nhưng bây giờ mệt lắm rồi. Ai viết giùm tui đi.