Category: Linux

Perl 實現 Search & replace

一些用靜態 HTML 編寫的網站,如果要將每一頁的特定文字更新 (例如 copyright),要逐頁逐頁更改真的十分麻煩。這個問題有幾個解決方法,其中一個是在指令模式用 perl 來做替換,例如: 以上指令會將目錄下所有 .html 尾的檔案更新,用 “new_str” 替換 “src_str”。

Linux 下編譯 Apache 的 mod_rewrite

要為 Apache 加載 mod_rewrite 模組,如果 Apache 並未安裝,可以在編譯時加上 –enable-rewrite 便可以,但如果 Apache 已經安裝好,而又不想重新編譯 Apache 的話,可以用以下方法:1. 首先 cd 到 Apache 的源代碼目錄並到 mod_rewrite.c 檔案,1. 在apache的源码安装目录中寻找mod_rewrite.c文件 2. 進入 mod_rewrite.c 的目錄並用 apxs 編譯 mod_rewrite.c 3. 編譯好 …

Linux 下找出體積最大的檔案/目錄

當發現系統硬碟空間突然上升時,想知道那個檔案或目錄佔用最多空間,可以用 du + sort + head 指令完成,它們的作用分別為:du: 計算目錄所使用的空間 sort: 將輸入的資料排序 head: 將輸入資料的最開頭幾行資料輸出假如發現 /home 裡面的空間使用異常時,可以用以下指令查看 /home 裡面頭 10 個使用最多硬碟空間的檔案或目錄: # du -a /home | sort -n -r | head -n 10

Redhat / Centos 安裝 DNS 伺服器

安裝環境 Centos 5.7 1. 安裝 DNS 所需套件: 只要用 yum 指令便可以一次過想所需的套件安裝。在預設的情況下 Centos 不會建立 named.conf,要用以下方法建立: 2. 更新 root.zone到 ftp://rs.internic.net/domain/root.zone 下載最新的 root.zone 資料檔,然後放到 /var/named/var/named/ 裡面。然後就可以用 /etc/rc.d/init.d/named start 啟動 DNS Server。啟動後可以輸入以入指令測試 DNS Server 是否正常運作: …

透過 shell script 發送 email

如果想用 shell script 發送郵件,可以用 mail 實現: # echo “email content” | mail -s “email subject” you@emaildomain 以上語句會發送一封標題為 “email subject” 的電郵到 you@emaildomain,其中 “email content” 為電郵內容。以下簡單的兩行 shell script 便會將檔案系統使用量,透過電郵發送給指定的電郵信箱: #!/bin/sh /bin/df -h …

Iptables 限制每個 ip 連線數

如果在 Linux 下要限制每個 ip 的連線數,可以透過 iptables 實現。詳細指令語法如下:/sbin/iptables -A INPUT -p tcp –syn –dport 22 -m connlimit –connlimit-above 3 -j REJECT 限制每個 ip 只可以有 3 個 ssh 連線 (預設 ssh 使用 …

Linux: 列出目錄及檔案數量

用 ls 指令會列出目錄下的內容,如果想知道目錄下有多少檔案及多少目錄,可以輸入以下指令:顯示檔案數目: ls -la |grep “^-” |awk ‘END {print “Number of files: ” NR}’顯示目錄數目: ls -la |grep “^d” |awk ‘END {print “Number of directories: ” NR}’

MySQL 自動備份 Shell Script

這個是我日常用作備份 MySQL database 的 shell script,因為以前是直接將所有資料庫匯出成一個 sql 檔,當其中一個資料庫有問題時,因為沒問題的資料庫不想有改動,要復原資料很麻煩。今天改了一下,它會用 mysqldump 將所有資料庫匯出成獨立 sql 備份檔,然後用 gzip 壓縮成 .gz 檔案。程式會儲存 5 天的備份,當有新備份時,最舊的備份會自動刪除。使用方法: 修改 db_user, db_passwd 及 db_host 修改成你的 mysql 登入資料,所使用的用戶權限需要與 mysql root 相同。backup_dir 修改成你希望儲存備份的目錄。最後只要把程式加入 …

Linux 編譯客制化核心

測試環境: CentOS 4.1 核心版本: 2.3.13 文章日期: 2006/06/23在安裝好一個 Linux Distribution (e.g CentOS, Fedora, Debian) 後,系統已經內建一個經過發行商設定及編譯好的 Linux 核心 (kernels)。一般上因為發行商希望他們的發行版適用於大部份的系統,所以會編譯成較為「通用」,而自行編譯則可以根據自己的需要,將不同的選項加入核心內,所以一般上效能也會較發行版內建的為高。另外兩個自行編譯的理由,就是希望使用新版本核心才有的功能,以及有些硬件是現有核心未能支援,本文將會簡單介紹編譯核心的步驟。準備工作在編譯前先要搞清楚自己電腦內的硬件,好讓不要在編譯時選漏一些必要的項目,或者選了一大堆沒有用的,如果你確實清楚電腦內有什麼硬件,那便可以略過以下步驟。先執行以下兩個指令: # /sbin/lspci # cat /proc/cpuinfo 以上指令分別會輸出類似以下內容:如果想將以上內容儲存成檔案,只需輸入: # /sbin/lspci >> /root/hardward.conf # cat /proc/cpuinfo …