
突然需要知道某個資料匣下的 inode 數量,
一時也不知道該怎麼查,後來查了一下,原來 inode數 = 檔案數
那這個就比較清楚了,那我就計算檔案數就好了。
Ching-Wei 發表在 痞客邦 留言(0) 人氣(70)
# 一定要使用 root 身分才可以執行 Sync
if [ "$(id -u)" != "0" ]; then
echo "** Error : You must run the script as root." 1>&2
exit 1
fi
Ching-Wei 發表在 痞客邦 留言(0) 人氣(62)
今天在改寫之前的 Sync 程式時,需要用到 substr 的功能來截取部份字串。
因為是寫 Shell Script,都不太會,弄了好久,總算是弄好了。
str='1234567890'
取得字串長度:
Ching-Wei 發表在 痞客邦 留言(0) 人氣(438)
這算是我第一隻 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) 人氣(47)
有時候要對每一台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) 人氣(137)
因為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) 人氣(76)
日期(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) 人氣(100)