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