亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 3761 | 回復: 3
打印 上一主題 下一主題

[原創(chuàng)] 與Solaris Volume Manager metadevice 恢復及監(jiān)測有關的幾個腳本 [復制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2006-09-30 04:08 |只看該作者 |倒序瀏覽
[原創(chuàng)]  與Solaris Volume Manager metadevice 恢復及監(jiān)測有關的幾個腳本

作者: susbin@chinaunix.net

如引用請注明出處。歡迎指教。


前不久有網(wǎng)友提出關于如何恢復metadevice/metadb 的問題,這就需要
在系統(tǒng)正常時把metadevice 及metadb的設置信息保存起來。下面的第一個
腳本md.save 就能把Sun Volume Manager的設置信息存入幾個文件里。
一般是在做好了metadevice ,或在做改動之前,及做改動之后,手工執(zhí)行
這個腳本。也可以把它加到crontab 里,每星期或每月執(zhí)行一次。
有了這些文件,當系統(tǒng)有問題時,就能比較容易的恢復metadevice/metadb。

另一個常遇到的問題是,如何定時監(jiān)測metadevice 及metadb的運行狀態(tài)。
下面的第二個腳本md.chk就能監(jiān)測,當metadevice 有問題時還能給系統(tǒng)
管理員送出email。一般是把它加到crontab 里,每一小時執(zhí)行一次。
很重要的生產(chǎn)服務器,也有每十五分鐘執(zhí)行一次的。

Sun 也有一個腳本 metacheck.sh  1.3,可惜太笨重。在網(wǎng)上搜了一下,發(fā)現(xiàn)
沒什么人用。在Solaris 9 上試了一下,報出一些錯后,停了。
http://docs.sun.com/app/docs/doc/806-6111/6jf2ve3ml?a=view


把監(jiān)測metadevice的工作交給cron去做,就要求cron 不能停下來。
下面的第三個腳本cron.chk就是檢測cron的。如果cron不在了,它能給
系統(tǒng)管理員送出email,也能自動執(zhí)行/etc/rc2.d/S75cron  來啟動cron。
可以把cron.chk加到crontab 里,每一天或幾小時執(zhí)行一次。

把這個腳本做些改動,就可以讓它檢測其他進程,比如 httpd.

第四個腳本targz.md.conf 是用來打包,壓縮第一個腳本保存下來的metadevice
及metadb的文件的。把這些文件打包,壓縮后存到兩個不同地方(硬盤),就更安全。

把這個腳本做適當改動,就可以用它來新建.tar.gz 文件。

使用腳本前請仔細閱讀,如不當使用造成系統(tǒng)損壞與本文作者無關。
以下腳本都在Solaris9 64-bit SPARC上測試通過。

1.
md.save
-------
#!/bin/ksh
# Save SDS configuration as files.
# Written by susbin@chinaunix.net

#t_stamp=`date '+%y_%m_%d-%H:%M:%S'`
t_stamp=`date '+%m_%d_%y-%H:%M:%S'`

log_dir1=/etc/lvm/recover
#log_dir2=

if [ ! -d $log_dir1 ]; then
   mkdir $log_dir1
fi

cmd_dir=/usr/sbin
#cmd_dir=/usr/opt/SUNWmd/sbin

if [ -x ${cmd_dir}/metastat ]
then
   CMD=${cmd_dir}/metastat
else
   echo "Can't find the command metastat!"
   exit 0
fi

echo " "
echo "Saving SDS configuration info to $log_dir1 ... "

/usr/bin/cat /etc/vfstab > ${log_dir1}/${t_stamp}.vfstab
/usr/bin/cat /kernel/drv/md.conf  | grep -v "#" > ${log_dir1}/${t_stamp}.kernel.md.conf
/usr/bin/sed '/^$/d' /etc/system | grep -v "*" | grep -v "set" > $log_dir1/${t_stamp}.system

$CMD -p > ${log_dir1}/${t_stamp}.metadevices
$CMD -t > ${log_dir1}/${t_stamp}.md_stat+time
${cmd_dir}/metadb > ${log_dir1}/${t_stamp}.replicas

/usr/bin/chmod 444 ${log_dir1}/${t_stamp}.*
#/usr/bin/cp -p ${log_dir1}/${t_stamp}.* $log_dir2

echo "Done. The files are at:"
echo " "
ls -l  ${log_dir1}/${t_stamp}.*
exit 0

-------

2.
md.chk
-------
#!/bin/sh
# Check metastat and send out email if problems are found.
# Written by susbin@chinaunix.net

mail_client=/usr/bin/mailx
email_1=you@abc.com
#email_2=

meta_stat=/usr/sbin/metastat
#meta_stat=/usr/opt/SUNWmd/sbin/metastat

NotOk_msg="Metastats are NOT Okay!"
InUse_msg="A hot spare is in use!"
Brk_msg="A metadevice is broken or unavailable!"

if [ -x $meta_stat ]
then
   CMD=$meta_stat
else
   echo "Can't find the command metastat!" | $mail_client -s "`uname -n` meta-Alert!" $email_1
   #echo "Can't find the command metastat!" | $mail_client -s "`uname -n` meta-Alert!" $email_2
   exit 0
fi

$CMD | grep State | grep -v Okay | grep -v Spare
if [ $? = 1 ] ; then
    sleep 1
    # echo "Metastats are Okay." | $mail_client -s "`uname -n` meta-info" $email_1
else
    echo $NotOk_msg | $mail_client -s "`uname -n` meta-Alert!" $email_1
    #echo $NotOk_msg | $mail_client -s "`uname -n` meta-Alert!" $email_2
    # echo $NotOk_msg
    echo " "
fi

$CMD | egrep "In use"
if [ $? = 0 ] ; then
    echo $InUse_msg | $mail_client -s "`uname -n` meta-Alert!" $email_1
    #echo $InUse_msg | $mail_client -s "`uname -n` meta-Alert!" $email_2
    # echo $InUse_msg
    echo " "
else
    exit 0
fi

$CMD | egrep "Broken|Unavailable"
if [ $? = 0 ] ; then
    echo $Brk_msg | $mail_client -s "`uname -n` meta-Alert!" $email_1
    #echo $Brk_msg | $mail_client -s "`uname -n` meta-Alert!" $email_2
    # echo $Brk_msg
    echo " "
else
    exit 0
fi

exit 0

-------

3.
cron.chk
--------
#!/bin/sh
# Check cron and send out email if it is down.
# Written by susbin@chinaunix.net

sc_name=cron.chk
t_stamp=`date '+%m_%d_%y-%H:%M:%S'`

mail_client=/usr/bin/mailx
email_1=you@xxx.com
#email_2=

up_msg="The cron deamon is running."
down_msg="The cron deamon is down!"

/usr/bin/ps -ef | grep cron | grep -v grep | grep -v $sc_name

if [ $? = 0 ] ; then
    echo $up_msg | $mail_client -s "`uname -n` cron-Info" $email_1
    #echo $up_msg | $mail_client -s "`uname -n` cron-Info" $email_2
    #echo $up_msg
    echo " "
else
    echo $down_msg | $mail_client -s "`uname -n` cron-Alert!" $email_1
    #echo $down_msg | $mail_client -s "`uname -n` cron-Alert!" $email_2
    #echo $down_msg
    echo " "
    # echo "Starting cron at $t_stamp "
    # /etc/rc2.d/S75cron start
fi

exit 0

-------

4.
targz.md.conf
-------
#!/bin/ksh
# tar-gz the saved files of SDS.
# Written by susbin@chinaunix.net

#t_stamp=`date '+%y_%m_%d-%H:%M:%S'`
t_stamp=`date '+%m_%d_%y-%H:%M:%S'`

# Create this directory before run the script.
dest_dir=/data/sds.saved

src_dir=/etc/lvm
log_dir1=recover

tar_file=sds.conf.tar

echo "Creating a .tar.gz file of ${src_dir}/${log_dir1}... "

/usr/sbin/tar cf ${dest_dir}/$tar_file -C $src_dir ./$log_dir1
/usr/bin/gzip ${dest_dir}/$tar_file
/usr/bin/mv ${dest_dir}/${tar_file}.gz ${dest_dir}/${t_stamp}.${tar_file}.gz

echo "It is done. Here is the files: "
echo " "
ls -l  ${dest_dir}/${t_stamp}.*
echo " "

-------

[ 本帖最后由 susbin 于 2006-9-30 04:16 編輯 ]

論壇徽章:
0
2 [報告]
發(fā)表于 2006-09-30 09:24 |只看該作者
這把說“好~~!!”

論壇徽章:
0
3 [報告]
發(fā)表于 2006-09-30 19:17 |只看該作者
原帖由 Barrfee 于 2006-9-30 09:24 發(fā)表
這把說“好~~!”


不知這一句是哪一省的方言。

論壇徽章:
0
4 [報告]
發(fā)表于 2006-10-01 02:03 |只看該作者
好!
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP