星期三, 8月 19, 2015

實用的shell script

(一)取得日期的方法
TODAY=`date +%Y%m%d`
YESTERDAY=`date -d'-1 day' +%Y%m%d`
LAST_MONTH=`date -d'-1 month' +%Y%m%d`

當然你可以搭配 單純取得年、月、日的作法
GYear=`date +%Y'
GMonth=`date +%m'
GDay=`date +%d'

取得前一天
FYDay=`date -d'-1 day' +d`

(二)Shell Script 執行SQL語法(MySQL)
#!/bin/bash
echo "INSERT INTO test (ID,NAME,DATE) VALUES ('1', 'PENNY', '2015/08/19');" | mysql -uroot -pPASSWORD DBNAME;



Reference
Shell Script 取得日期的方法
Bash script to insert values in MySQL

星期日, 8月 16, 2015

btrfs - no space left on device

最近系統更新的時候,一直出現「no space left on device」。
但是執行 df -h 檢查空間,明明空間沒有滿,但是確實無法新增檔案,連系統桌面都無法登入。

GOOGLE找了一下答案,才知道原來是因為使用了btrfs檔案格式的關係。
(我也不知道為什麼我這次會想嘗試這個檔案格式)
檔案格式各有其優缺點,這邊也不是要針對這部份去做比較去跟討論。

接著要來著手解決一下這個問題。
如果你跟我一樣使用btrfs格式,那麼請不要相信df -h。
那麼要如何察看呢?
#btrfs filesystem show
 那麼那些消失的空間哪去了呢?
#snapper list
那麼要如何刪除這些snapper檔案呢? (#表示snapper list編號,請從最舊的開始)
snapper delete root #
或是你可以一口氣刪除
# for i in `seq 1 3656`;do snapper delete $i;done
接著檢查一下snapper 設定,/etc/snapper /configs/root
有兩個比較重要的地方
NUMBER_LIMIT="10"
NUMBER_LIMIT_IMPORTANT="10"
消失的空間回來了。

Referenece
 The joys of btrfs and OpenSuSE – or “no space left on device”

星期五, 8月 07, 2015

Awstats @ CentOS

Awstats 是一個非常棒的紀錄檔分析套件

接下來記錄一下簡單安裝跟設定步驟


cd ~
wget http://prdownloads.sourceforge.net/awstats/awstats-7.4.tar.gz
tar zxvf awstats-7.4.tar.gz
mv awstats-7.4 /usr/local/awstats
ln -s /usr/local/awstats /usr/share/awstats
cd /usr/local/awstats/tools
perl awstats_configure.pl
接著回答幾個簡單的問題
#請輸入Apache Server的設定檔路徑
Config file path ('none' to skip web server setup):
> /etc/httpd/conf/httpd.conf

#是否需要產生新的設定檔
Do you want me to build a new AWStats config/profile
file (required if first install) [y/N] ?
y

#輸入你的站台名稱,但僅只是設定檔名稱,妳可以取妳喜歡名稱
Your web site, virtual server or profile name:
> www

#設定檔存放路徑
Directory path to store config file(s) (Enter for default):
#按下ENTER 預設
 接著依照提示按下ENTER完成整個設定
chmod 755 /usr/local/awstats
mkdir /var/lib/awstats
緊接著將中文化語系修改為UTF-8
cd /usr/local/awstats/wwwroot/cgi-bin/lang
iconv -f big5 -t utf-8 awstats-tw.txt -o awstats-tw-utf8.txt
vi awstats-tw-utf8.txt
將PageCode=big5,修改為PageCode=utf-8
接著修改awstats.pl 語系表
vi /usr/local/awstats/wwwroot/cgi-bin/awstats.pl
找到將 'zh-tw'=>'tw' 修改成 'zh-tw'=>'tw-utf8'
最後修改設定檔
vi  /etc/awstats/awstats.www.conf
LogFile="/var/log/httpd/mylog.log" 修改成  LogFile="/var/log/httpd/access_log"
SiteDomain="www" 修改成 SiteDomain="xxx.xxx.edu.tw"
DNSLookup=2 修改成 DNSLookup=1
Lang="auto" 修成  Lang="tw-utf8"

 #更新資料(把他寫進系統排成)
/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -config=www -update  
vi /etc/crontab
#awstats
00 */6 * * * root /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -config=www -update





如果你不希望統計資料任何人都可以存取,記得設定瀏覽權限。

 vi /etc/httpd/conf/httpd.conf

    Options None
    AllowOverride None
    Order allow,deny
   # Allow from All

Allow from ip

service httpd restart
最後打開瀏覽器觀看成果
http://ip/awstats/awstats.pl?config=www

Reference
CentOS 5 伺服器建置流程