16 進位顯示
:%! xxd
切換回正常顯示
:%! xxd -r
2010年12月28日 星期二
2010年7月19日 星期一
測試 UDP Port 狀態
FreeBSD 需由 ports 安裝 nmap
nmap -p PORT -sU -P0 IP
結果:
[root@XXX] ~# nmap -p 1812 -sU -P0 127.0.0.1
Starting Nmap 5.21 ( http://nmap.org ) at 2010-07-19 17:22 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (1.0s latency).
PORT     STATE SERVICE
1812/udp open  radius
Nmap done: 1 IP address (1 host up) scanned in 2.11 seconds
[root@XXX] ~# nmap -p 1815 -sU -P0 127.0.0.1
Starting Nmap 5.21 ( http://nmap.org ) at 2010-07-19 17:22 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00051s latency).
PORT     STATE  SERVICE
1815/udp closed unknown
Nmap done: 1 IP address (1 host up) scanned in 1.19 seconds
2010年6月28日 星期一
Perl 取代並寫回目標檔案內容
取代前 target.txt 內容
123abc
456abc
執行
perl -pi -e 's/abc$//g' target.txt
取代後 target.txt 內容
123
456
取代前 code.txt 內容
function abc()
{
echo('abc');
}
function def(){ echo('def'); }
執行
perl -pi -e 's/^(function )([a-z])/$1.uc($2)/eg' code.txt 
取代後 code.txt 內容
function Abc()
{
   echo('abc');
}
function Def(){ echo('def'); }
備註:
-p 是單行比對模式。
若需要多行比對,請增加 -0777 參數,此參數的意義為「將讀取分隔符號從 \n 變成 undef」,等同於等個檔案內容一次讀入做處理。多行比對同時需要加上 s 修飾字。
2010年6月14日 星期一
2010年6月1日 星期二
2010年5月24日 星期一
2010年4月26日 星期一
FreeBSD 找不到 Share Library 的解決方法
- 定義 LD_LIBRARY_PATH 於 環境變數中,將 Share Library 的所有可能路徑都設上去# setenv LD_LIBRARY_PATH /path/to/share/library:$LD_LIBRARY_PATH
- 以 Root 身份執行 /etc/rc.d/ldconfig restart# /etc/rc.d/ldconfig restart
- 打完收工
2010年4月21日 星期三
2010年4月13日 星期二
MySQL 設定 Replication (Master - Slave)
文章出自 johnpupu
MySQL 設定寫入 Master 後, 自動 Replication 到 Slave 去, 運作基本原理是:
INSERT/UPDATE/DELETE 語法, 自動寫入 Master 的 binlog file.
由 GRANT REPLICATION 授權的帳號, 自動將 SQL 語法 repl 到 Slave 的 DB 執行.
因而完成 Replication 的動作.
Master
1.      複制 my.cnf
甲、#cp /usr/local/share/mysql/my-large.cnf /etc/my.cnf
2.      修改my.cnf
甲、server-id               = 1
乙、log-bin=mysql-bin
丙、expire-logs-days = 7
丁、max_binlog_size = 268435456
戊、# 若是 innodb, 且有用 transaction 的話, 需再加入下面兩行
innodb_flush_log_at_trx_commit=1
sync_binlog=1
3.      # mysql -u root -p # 進入 mysql
甲、# 先假設 帳號 repl, 密碼 repl_pass, 此步驟是 設定 repl 的帳號/密碼,
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'repl_pass'; 
# 格式: 
mysql > GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'repl_pass'; 
# (Replace 
乙、# 先讓 DB 不要再寫資料進去
mysql> FLUSH TABLES WITH READ LOCK;
丙、# 這邊資料都要記好, 等一下設定 Slave 要用
mysql> SHOW MASTER STATUS;
+----------------------+------------+------------------+----------------------+
| File                        | Position  | Binlog_Do_DB              |    Binlog_Ignore_DB |
+----------------------+------------+------------------+----------------------+
| mysql-bin.000014  |      232   |                                      |                                  |
+----------------------+------------+------------------+----------------------+
4.      # 離開, 準備倒資料
mysql> quit
5.      # 倒資料 
cp –Rp /var/db/mysql /mnt/nas
6.      # dump 完資料後, 進去 mysql 解除唯讀
mysql> UNLOCK TABLES;
Slave
7.      複制 my.cnf
甲、#cp /usr/local/share/mysql/my-large.cnf /etc/my.cnf
8.      修改my.cnf
甲、server-id               = 2  # server-id 不能與其它機器相同
乙、log-bin=mysql-bin
丙、expire-logs-days = 7
丁、max_binlog_size = 268435456
戊、# 若是 innodb, 且有用 transaction 的話, 需再加入下面兩行
innodb_flush_log_at_trx_commit=1
sync_binlog=1
9.      複制mysql 資料夾過來
甲、# mv /var/db/mysql /var/db/mysql.bak
乙、# cp -Rp /mnt/nas/mysql /var/db/mysql
10.  設定slave
甲、mysql> CHANGE MASTER TO
     MASTER_HOST='MASTER_HOSTNAME',
     MASTER_USER='repl',
     MASTER_PASSWORD='repl_pass',
     MASTER_LOG_FILE='mysql-bin.000014',
     MASTER_LOG_POS=232; 
   # 這邊就要用到之前 Master 抄下來的值
乙、# 這樣子就會開始 Replication 了, 會將 LOG_POS 之後新的資料開始 sync 回來
mysql> START SLAVE;
丙、# 檢查一下設定
mysql> show master status; 
丁、# 檢查一下設定, 看是不是有異常狀況
mysql> show slave status;
測試
11.  在 master: mysql> create database test2;
12.  在 slave: mysql> show database; # 應該會看到 test2
 
