2009年3月26日

自動刪除一個月前的 LOG

自動刪除30天前的放在 /oracle/tmp下全部副檔名為log的檔案
find /oracle/tmp/*.log -mtime +30 -exec rm -rf {} \;
再把此行放在 crontab 裡面,這樣就不用常收到硬碟空間不足的告警了~

P.S 可先用 find /oracle/tmp/*.log -mtime +30 -exec ls -al {} \;
來列出要處理的檔案,再把 ls -al 改成你想要的指令就可以了

2009年3月18日

Perl 一行程式解決Email置換問題

由於公司被合併了~ 所以原本程式中發告警或報表都是採用mail的方式,所以程式中mail address也要改成新的郵件帳號,由於大家的程式一大堆,又雜在不同目錄裡,所以一定要用程式來自動修改才比較理想,在Unix下處理字串最強的程式那就是Perl了,希望能達到下一行指令就能全部搞定的目標~

舊的mail為: taiwanwolf@abc.com.tw
新的mail為: taiwanwolf@def.com.tw

大家的程式都放在 /home/個人目錄下

Perl 的一行程式簡介,當然要來個 Hello World示範~

#perl -e 'print "hello World\n"'
這樣就會印出 hello World

至於自動置換email的作法如下:

進入要改的目錄,其目錄下的檔案為修改的目標
#cd /home
執行此指令,將檔案中有 @abc.com.tw 的字串置換成 @def.com.tw
#perl -i.bak -pe 's/\@abc.com.tw/\@def.com.tw/g' *

參數說明:
-i.bak
將會修改的檔案,自動備份為 *.bak,不加.bak的話就會直接替換掉,不會備份
-e
執行 command line 一定要加
-p
loops 會不斷重複執行

終極版:如果要 /home 與裡面所有子目錄內的檔案都要改到的話,就要再加上 grep 的加持
#perl -i.bak -pe 's/\@abc.com.tw/\@def.com.tw/g' `grep -ril @abc.com.tw *`

2009年3月13日

Windows 開機自動登入

[開始] -> [執行] 然後輸入 control userpasswords2
接著會出現使用者帳戶的視窗



把打勾取消,按套用


輸入要自動登入的帳號的密碼,然後按下確定


搞定!

如何使idle的連線不會被斷線

最近公司換firewall,結果導致我們用Putty的一些SSH連線老是被斷線,原因應該是防火牆會計算連線的idle時間,超過一定的時間沒動作就會中斷,好在Putty有提供 keep alive功能,設定方法如下圖


我是設180秒,每3分鐘Putty就會送訊號跟 Server 來Keep Alive,這樣就可以保持連線不中斷了!

2009年3月12日

Windows 下用Sun VirtualBox 開機自動開啟Host OS

我是把VirtualBox灌在D槽,然後HostOS安裝時取名叫 ubuntu,所以語法如下~

-----我是分隔線-----
@ECHO OFF
"D:\Program Files\Sun\xVM VirtualBox\VirtualBox.exe" -startvm ubuntu
-----我是分隔線-----

把此檔用編輯器存成bat檔,放入程式集的[啟動]中,下次開機就會自動開啟HostOS了

2009年3月10日

讓使用者可以使用FTP,但不能SSH進來

前陣子在CentOS上灌了Proftpd這個FTP Server,已可正常運作,但他的使用者是直接採用Server上的使用者,所以如果要建FTP帳號等於就要建系統帳號,所以就有安全性上的顧慮,找了一下可以修改 /etc/passwd 裡面的內容把使用者的 shell 指定為 /sbin/nologin,範例如下:
步驟1:
vim /etc/passwd
步驟2: (例如要讓net這個使用者能夠進ftp但不能SSH進來,就把
原來
ntp:x:38:38::/etc/ntp:/sbin/nologin
net:x:503:504::/home/net:/bin/bash
改變後
ntp:x:38:38::/etc/ntp:/sbin/nologin
net:x:503:504::/home/net:/sbin/nologin
存檔之後無需 reload 就可測試了
這個小工具發生錯誤