突然需要知道某個資料匣下的 inode 數量,
一時也不知道該怎麼查,後來查了一下,原來 inode數 = 檔案數
那這個就比較清楚了,那我就計算檔案數就好了。

Ching-Wei 發表在 痞客邦 留言(0) 人氣()

# 一定要使用 root 身分才可以執行 Sync
if [ "$(id -u)" != "0" ]; then
   echo "** Error : You must run the script as root." 1>&2
   exit 1
fi


Ching-Wei 發表在 痞客邦 留言(0) 人氣()

今天在改寫之前的 Sync 程式時,需要用到 substr 的功能來截取部份字串。
因為是寫 Shell Script,都不太會,弄了好久,總算是弄好了。
str='1234567890'
取得字串長度:

Ching-Wei 發表在 痞客邦 留言(0) 人氣()

這算是我第一隻 Shell Script 吧。
但也只是簡單的將程式 Sync 到別台 Server 而以。
內容如下:
#!/bin/sh
src_folder="/root/www_src"
des_folder="/home/www"
o_webs="1 2 3 4 5"
o_cmd='rsync -rltvp -e "ssh -l root" --exclude ".svn"'
s_webs="9"
s_cmd='rsync -rltv -e "ssh -l root" --exclude ".svn"'

sync_action(){
if [ $action = 'Stage' ]; then
webs=$s_webs;
cmd=$s_cmd;
elif [ $action = 'Online' ]; then
webs=$o_webs;
cmd=$o_cmd;
fi

echo -n "** Sync to $action? [Y/N] ** : "
read yes_no
case "$yes_no" in
[yY]*)
echo "Sync to ${action}, Start ......"
echo '----------------------------------------'
for web in $webs
do
echo "Sync to www-${web}"
echo '>>>>>>>>>>>>>>>>>>>>'
eval $cmd ${src_folder}/www/ www-${web}:${des_folder}/www/
done
;;
[nN]*)
echo "Sync to ${action}, Cancel ......"
;;
*)
echo 'You should Answer Y/N'
echo 'bye~~'
;;
esac
}

# 必須要為 root 才可以使用
if [ "$(id -u)" != "0" ]; then
echo "You must run the script as root." 1>&2
exit 1
fi

# 主程式
echo -n 'Sync to -- Stage(S) Online(O) Cancel(C) -- : '
read action
case "$action" in
[sS]*)
action='Stage';
echo '========== STAGE =========='
sync_action
;;
[oO]*)
action='Online';
echo '========== online =========='
sync_action
;;
[cC]*)
echo 'bye!!'
;;
*)
echo '... bye!!'
;;
esac
exit 0

Ching-Wei 發表在 痞客邦 留言(0) 人氣()

有時候要對每一台Server下同樣的指令真的很煩,
所以寫了一個Script,可以同時對多台Server下達相同的指令。
#!/bin/sh
WEBs="1 2 3 4 5"
if [ $# -lt 1 ]; then
echo 'Err:no Param'
exit;
fi

for i in ${WEBs}; do
echo -n "${i}... "
/usr/bin/ssh user@xx.xx.xx.${i} $1
done

echo "DONE!!"

Ching-Wei 發表在 痞客邦 留言(0) 人氣()

因為Server太多了,所以常常那台當了都不知道,所以就寫了這隻Script來抓每一台Server的狀態,寫法很爛,就是wget後,再判斷有沒有抓到某個字串,有就是正常

#!/bin/sh
DATE_STR=`date +%Y%m%d`
WEBs="1 2 3 4 5"
echo ""
echo "================================================"
echo "= Server Sattus : $DATE_STR"
echo "================================================"

for i in ${WEBs}; do
wget http://xx.xx.xx.${i} -q -O "/home/log/check/${i}"
if [ -n "`cat "/home/log/check/${i}" | grep ""`" ]; then
echo "Server ${i}: Alive"
else
echo "Server ${i}: Dead **********"
fi
done

echo "================================================"
echo "= Done "
echo "================================================"
echo ""

Ching-Wei 發表在 痞客邦 留言(0) 人氣()

日期(Linux):
TODAY=`date +%Y%m%d`
YESTERDAY=`date -d'-1 day' +%Y%m%d`
LAST_MONTH=`date -d'-1 month' +%Y%m%d`

Ching-Wei 發表在 痞客邦 留言(0) 人氣()

1
Blog Stats
⚠️

成人內容提醒

本部落格內容僅限年滿十八歲者瀏覽。
若您未滿十八歲,請立即離開。

已滿十八歲者,亦請勿將內容提供給未成年人士。