免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: king_819

有奖专家座谈——自动化运维案例分享讨论之二(特邀某大型网游运维总监“king_819”) [复制链接]

论坛徽章:
0
发表于 2011-12-29 15:49 |显示全部楼层
gavindev 发表于 2011-12-29 15:31
共享存储会不会有单点问题,常用的共享存储方案有哪些?


   发果集群节点不多的情况下,NFS基本够用,Drbd+HeartBeat可以解决单点的问题,如果节点比较多,可以考虑用MFS

论坛徽章:
0
发表于 2011-12-29 15:51 |显示全部楼层
回复 80# gavindev


    如果集群节点不是很多的情况下,NFS基本可以满足要求,Drbd+HeartBeat可以解决单点的问题,如果集群节点比较多,可以选用MFS


   

论坛徽章:
2
CU大牛徽章
日期:2013-04-17 11:46:28CU大牛徽章
日期:2013-04-17 11:46:39
发表于 2011-12-29 19:13 |显示全部楼层
谢谢,回头试试

论坛徽章:
0
发表于 2011-12-29 21:54 |显示全部楼层
正好昨天接到一个自动从ftp服务器上面下载更新包,自动化发布代码包的脚本需求,只写了自动下载这部分先贴出来共享下:
#!/bin/bash
#Discription:this script can download the latest EAR pre-release  packets from ftp server
#Version:V1.0
#Create by:jinni2012

#Set   env  parameters
MYDATE=`date +%F" "%T`
FTPSITE=ftp.jinni.com
USERNAME=**************
PASSWORD=*************
WAS_LOC=/washome/app/prerelease
FTP_LOC=/wasapp/prerelease
#download dir.log  from ftp server
cd $WAS_LOC
ftp -n <<EOF
open $FTPSITE
user  $USERNAME $PASSWORD
bin
prompt
hash
cd  $FTP_LOC
mdir  *.ear  dir.log
bye
EOF
if  [  -e  ./dir.log  ] ; then
        FILE_NAME=`cat ./dir.log|tail -1|awk '{print $4}'`
else
        echo        "Error:not find dir.log"       
fi
#identify if it needs to update
old_file=`ls -lt *.ear|head -1|awk '{print $9}'`
old_time=$(stat  $old_file|grep Modify|awk -F "." '{print $1}'|awk '{print $2" "$3}')
new_file=`cat ./dir.log|tail -l|awk '{print $4}'`
new_time=`cat ./dir.log|tail -l|awk '{print $1" "$2}'|sed -r 's/(.*)-(.*)-(.*) (.*)/\3-\1-\2 \4/'`
echo "$new_file is newer than $old_file"
time1=$(date  +%s  -d  "$old_time")
time2=$(date  +%s  -d  "$new_time")
comm=$(($time2-$time1))
echo ""
if  [ $comm -gt 0 ]; then
        echo "********you need update the ear packets from itocftp server*******"
        echo ""
        echo "********Begin   to  download  ear packets  now***********"
        echo ""
        echo "********$MYDATE***************"
#begin download
ftp -n <<EOF
open $FTPSITE
user  $USERNAME $PASSWORD
bin
prompt
hash
cd  $FTP_LOC
lcd $WAS_LOC
mget $FILE_NAME
bye
EOF
if [ $? -eq 0 ]; then
        echo "************Download  Successful !**********"
        echo "************$MYDATE  ***************"
else
        echo "************Download  Failed !****************"
        echo "************$MYDATE  ***************"
fi
#find out the latest ear packet and delete the outdate packet
latest_name=`ls -lt  *.ear|head -1|awk '{print $9}'`
echo "$latest_name is the newest packet"
find $WAS_LOC -type f  -name "*.ear"  -mtime +2 -exec rm -f {} \;
fi
echo ""

#######
chmod  755 /washome/app/shell/ftp.sh

crontab  -e
0 0 * * *  /bin/sh   /washome/app/shell/ftp.sh   >ftpdownload.log   2>&1
######

欢迎拍砖

论坛徽章:
0
发表于 2011-12-29 23:00 |显示全部楼层
还有个小小的脚本,类似于aix的smit工具,每次在vmware里面从模板刻录的服务器都要免不了要改主机名,配ip,mac重启网络,磁盘分区格式化什么的一大堆杂事。所以干脆写个带界面的工具偷偷懒,有兴趣的还可以往里面多加些功能:
[root@jinni ~]# cat chghostname.sh
#!/bin/bash
        file0=/etc/sysconfig/network.bak.bak
        file1=/etc/sysconfig/network.bak
        cat  $file0  >/dev/null 2>&1
        if [ $? -eq 1 ] ; then
                cp  $file1  $file0
        fi

display () {
echo "########################################"
echo " configure hostname and ipaddr program  "
echo "########################################"
echo "#                                      #"
echo "#          1-modify hostname           #"
echo "#          2-check hostname available  #"
echo "#          3-reconfigure ip address    #"
echo "#          4-restart network service   #"
echo "#          5-check network available   #"
echo "#          0-quit                      #"
echo "#                                      #"
echo "#                        by jinni tang #"
echo "########################################"
}

modifyhostname () {
        clear
        sed -e '/HOSTNAME/!d' $file1;sed -e '/GATEWAY/!d' $file1
        echo -e "\t\t\t\t"
        echo -n "Input your hostname: "
        read hostname
        echo -n "Input your gateway:"
        read gateway
        sed -i '/HOSTNAME/d' $file1
        sed -i '/GATEWAY/d'  $file1
        echo "HOSTNAME=$hostname">>$file1
        echo "GATEWAY=$gateway">>$file1
        hostname $hostname
}

netdev() {
        read -p "which network device would you like to reconfigure?(ag:eth0 or ethx):" netdev
        echo $netdev |grep eth >/dev/null 2>&1
        if [ $? -eq 1 ] ; then
                echo "invalid device name please input again "
                netdev
        fi
        file2=/etc/sysconfig/network-scripts/ifcfg-$netdev.bak
}

reconfigureip () {
        clear
        netdev
        cat $file2
        echo -e "\t\t\t\t"
        echo -n "Input your ip address:"
        read ipaddr
        sed -i '/IPADDR/d' $file2
        sed -i '/HWADDR/d' $file2
        echo "IPADDR=$ipaddr">>$file2
        mac=`ifconfig $netdev |grep HWaddr|awk '{print$5}'`
        echo "HWADDR=$mac">>$file2

###########add hostname and ipaddr to  /etc/hosts #########################
        hostname=`cat $file1 |grep HOSTNAME|awk -F '=' '{print $2}'`
        cat /etc/hosts |grep $hostname >/dev/null 2>&1
        if [ $? -eq 1 ] ; then
                echo "$ipaddr           $hostname" >>/etc/hosts
        fi
}



restartnetwork () {
        clear
        /etc/init.d/network restart
        echo -e "\t\t\t\t"
}

chkhostname () {
        clear
        echo -e "#cat $file1"
        cat $file1
        echo -e "\t\t\t\t"
        echo -e "your FQDN hostname is `hostname -f`"
        echo -e "\t\t\t\t"
}

chknetwork () {
        clear
        echo -e "#cat $file2"
        cat $file2
        echo -e "\t\t\t\t"
}

quit () {
        clear
        echo "######################"
        echo "# thank you good bye #"
        echo "######################"
        sleep 2
        clear
        exit 1
}


while true
do
display
echo -n "please input your options [0-5]: "
read options

case "$options" in
        1 ) modifyhostname ;;
        2 ) chkhostname ;;
        3 ) reconfigureip ;;
        4 ) restartnetwork ;;
        5 ) chknetwork ;;
        0 ) quit ;;
        * ) clear;echo "Only can choose the number [0-5],Please input again!";echo -e "\t\t\t\t"
esac

done

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
发表于 2011-12-30 09:56 |显示全部楼层
回复 84# jinni2012


26行简写一下:
  1. FILE_NAME=`awk 'END{print $4}' ./dir.log`
复制代码
31-34行也可以简化

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
发表于 2011-12-30 10:00 |显示全部楼层
回复 85# jinni2012


27行:
  1. sed '/HOSTNAME\|GATEWAY/!d' urfile
复制代码
33、34行:
  1. sed -i '/HOSTNAME\|GATEWAY/d' $file1
复制代码
60行:
  1. mac=`ifconfig $netdev | awk '/HWaddr/{print$5}'`
复制代码

论坛徽章:
0
发表于 2011-12-30 10:37 |显示全部楼层
来学习下,,,

论坛徽章:
0
发表于 2011-12-30 11:01 |显示全部楼层
jinni2012 发表于 2011-12-29 23:00
还有个小小的脚本,类似于aix的smit工具,每次在vmware里面从模板刻录的服务器都要免不了要改主机名,配ip, ...


自动修改网络ip、掩码、网关、DNS、主机名
  1. #!/bin/sh
  2. # BY kerry (聆听未来)
  3. # BLOG:http://kerry.blog.51cto.com

  4. # set variable
  5. ip_mod=$1
  6. mask_mod=$2
  7. gw_mod=$3
  8. dns_mod=$4
  9. hostname_mod=$5

  10. hosts=/etc/hosts
  11. ifcfg=/etc/sysconfig/network-scripts/ifcfg-eth0
  12. network=/etc/sysconfig/network
  13. resolv=/etc/resolv.conf
  14. hwaddr=`grep -i HWADDR $ifcfg|awk -F "=" '{print $2}'`

  15. # mod ip、mask、gw、dns、hostname
  16. if [ $# != 5 ];then
  17. cat << EOF
  18. +-----------------------------------------------------------------------------------+
  19. ++++++                                                                                +++++
  20. | ====   这是一个自动修改网络ip、掩码、网关、DNS、主机名的脚本                  ====|
  21. | ====   使用方法:ip_mod ip mask gw dns hostname                                ====|
  22. | ====   例:ip_mod 10.10.10.5 255.255.255.0 10.10.10.1 8.8.8.8 kerry           ====|
  23. ++++++                                                                                +++++
  24. +-----------------------------------------------------------------------------------+
  25. EOF
  26. fi

  27. if [ $# == 5 ];then
  28. /bin/hostname $hostname_modf
  29. cp -r $hosts ${hosts}.bak
  30. echo -e "$ip_mod $hostname_mod" > $hosts

  31. cp -r $ifcfg ${ifcfg}.bak
  32. echo -ne "DEVICE=eth0
  33. BOOTPROTO=static
  34. HWADDR=$hwaddr
  35. IPADDR=$ip_mod
  36. NETMASK=$mask_mod
  37. ONBOOT=yes
  38. " > $ifcfg

  39. cp -r $network ${network}.bak
  40. echo -ne "NETWORKING=yes
  41. HOSTNAME=$hostname_mod
  42. GATEWAY=$gw_mod
  43. " > $network

  44. cp -r $resolv ${resolv}.bak
  45. echo -e "nameserver $dns_mod" > $resolv

  46. # restart network
  47. service network restart

  48. echo "ip、mask、gw、dns、hostname set OK .................!!!!!!!"
  49. fi
复制代码

论坛徽章:
0
发表于 2011-12-30 21:51 |显示全部楼层
谢谢 各位大侠点播 小弟学习了 学脚本不久 摸着石头过河 多多交流 共同进步
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP